name: Pull Request on: pull_request: types: [labeled, opened, synchronize, reopened] concurrency: group: pull-requests-${{ github.workflow }}-${{ github.event.pull_request.number }} cancel-in-progress: true jobs: build: name: Build runs-on: [self-hosted] permissions: contents: read packages: write # Never run when the PR carries the "release" label. if: | !contains(github.event.pull_request.labels.*.name, 'release') steps: - name: Checkout code uses: actions/checkout@v4 with: fetch-depth: 0 fetch-tags: true - name: Set up Docker config run: cp -r ~/.docker ${{ runner.temp }}/.docker - name: Login to GitHub Container Registry uses: docker/login-action@v3 with: username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} registry: ghcr.io env: DOCKER_CONFIG: ${{ runner.temp }}/.docker - name: Build run: make build env: DOCKER_CONFIG: ${{ runner.temp }}/.docker - name: Build Talos image run: make -C packages/core/installer talos-nocloud - name: Upload installer uses: actions/upload-artifact@v4 with: name: cozystack-installer path: _out/assets/cozystack-installer.yaml - name: Upload Talos image uses: actions/upload-artifact@v4 with: name: talos-image path: _out/assets/nocloud-amd64.raw.xz test: name: Test runs-on: [self-hosted] needs: build # Never run when the PR carries the "release" label. if: | !contains(github.event.pull_request.labels.*.name, 'release') steps: - name: Download installer uses: actions/download-artifact@v4 with: name: cozystack-installer path: _out/assets/ - name: Download Talos image uses: actions/download-artifact@v4 with: name: talos-image path: _out/assets/ - name: Test run: make test