diff --git a/.github/workflows/build-upstream.yml b/.github/workflows/build-upstream.yml deleted file mode 100644 index df66e97..0000000 --- a/.github/workflows/build-upstream.yml +++ /dev/null @@ -1,129 +0,0 @@ -name: build - -on: - workflow_dispatch: - push: - tags: - - 'v[0-9]+\.[0-9]+\.[0-9]+' - - 'v[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+' - -concurrency: - group: ${{ github.workflow }}-${{ github.ref }} - cancel-in-progress: true - -permissions: - id-token: write - contents: read - packages: write - -jobs: - build: - name: "Build Images" - strategy: - fail-fast: false - matrix: - os: - - linux - arch: - - amd64 - - arm64 - runs-on: burnt-labs-${{ matrix.arch }} - - steps: - - name: Check out code - uses: actions/checkout@v4 - with: - repository: goreleaser/goreleaser-cross - ref: ${{ github.ref }} - - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Set up docker buildx - uses: docker/setup-buildx-action@v3 - - - name: Metadata for container - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=sha - type=semver,pattern={{version}},enable=${{ github.event_name == 'push' }} - type=raw,value=latest,enable={{is_default_branch}} - - - name: Build and push by digest - id: build - uses: docker/build-push-action@v5 - with: - cache-from: type=gha,scope=${{ github.ref_name }}/${{ matrix.os }}/${{ matrix.arch }} - cache-to: type=gha,mode=max,scope=${{ github.ref_name }}/${{ matrix.os }}/${{ matrix.arch }} - labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ matrix.os }}/${{ matrix.arch }} - outputs: type=image,name=ghcr.io/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true - - - name: Export digest - id: digest - run: | - digest="${{ steps.build.outputs.digest }}" - echo "digest=${digest#sha256:}" >> $GITHUB_OUTPUT - - - name: Create digest file - run: | - mkdir -p ${{ runner.temp }}/${{ matrix.os }}/${{ matrix.arch }} - touch ${{ runner.temp }}/${{ matrix.os }}/${{ matrix.arch }}/${{ steps.digest.outputs.digest }} - - - name: Upload digest - uses: actions/upload-artifact@v4 - with: - name: ${{ steps.digest.outputs.digest }} - path: ${{ runner.temp }}/${{ matrix.os }}/${{ matrix.arch }}/${{ steps.digest.outputs.digest }} - if-no-files-found: error - retention-days: 3 - - push: - name: "Push Images" - needs: build - runs-on: ubuntu-latest - - steps: - - name: Login to GitHub Container Registry - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Download digests - uses: actions/download-artifact@v4 - with: - path: ${{ runner.temp }}/digests - merge-multiple: true - - - name: Metadata for container - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository }} - tags: | - type=sha - type=semver,pattern={{version}},enable=${{ github.event_name == 'push' }} - type=raw,value=latest,enable={{is_default_branch}} - - - name: Create manifest list and push - working-directory: ${{ runner.temp }}/digests - run: | - docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \ - $(printf 'ghcr.io/${{ github.repository }}@sha256:%s ' *) - - - name: Inspect merged image - run: | - jq -cr '.tags | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON" | \ - xargs -n1 docker buildx imagetools inspect diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1ad1e5f..df66e97 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,9 +2,6 @@ name: build on: workflow_dispatch: - pull_request: - branches: - - main push: tags: - 'v[0-9]+\.[0-9]+\.[0-9]+' @@ -25,16 +22,19 @@ jobs: strategy: fail-fast: false matrix: - runner: - - selector: burnt-labs-amd64 - platform: linux/amd64 - - selector: burnt-labs-arm64 - platform: linux/arm64 - runs-on: ${{ matrix.runner.selector }} + os: + - linux + arch: + - amd64 + - arm64 + runs-on: burnt-labs-${{ matrix.arch }} steps: - name: Check out code uses: actions/checkout@v4 + with: + repository: goreleaser/goreleaser-cross + ref: ${{ github.ref }} - name: Login to GitHub Container Registry uses: docker/login-action@v3 @@ -63,10 +63,10 @@ jobs: id: build uses: docker/build-push-action@v5 with: - cache-from: type=gha,scope=${{ github.ref_name }}/${{ matrix.runner.platform }} - cache-to: type=gha,mode=max,scope=${{ github.ref_name }}/${{ matrix.runner.platform }} + cache-from: type=gha,scope=${{ github.ref_name }}/${{ matrix.os }}/${{ matrix.arch }} + cache-to: type=gha,mode=max,scope=${{ github.ref_name }}/${{ matrix.os }}/${{ matrix.arch }} labels: ${{ steps.meta.outputs.labels }} - platforms: ${{ matrix.runner.platform }} + platforms: ${{ matrix.os }}/${{ matrix.arch }} outputs: type=image,name=ghcr.io/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true - name: Export digest @@ -77,14 +77,14 @@ jobs: - name: Create digest file run: | - mkdir -p ${{ runner.temp }}/${{ matrix.runner.platform }} - touch ${{ runner.temp }}/${{ matrix.runner.platform }}/${{ steps.digest.outputs.digest }} + mkdir -p ${{ runner.temp }}/${{ matrix.os }}/${{ matrix.arch }} + touch ${{ runner.temp }}/${{ matrix.os }}/${{ matrix.arch }}/${{ steps.digest.outputs.digest }} - name: Upload digest uses: actions/upload-artifact@v4 with: name: ${{ steps.digest.outputs.digest }} - path: ${{ runner.temp }}/${{ matrix.runner.platform }}/${{ steps.digest.outputs.digest }} + path: ${{ runner.temp }}/${{ matrix.os }}/${{ matrix.arch }}/${{ steps.digest.outputs.digest }} if-no-files-found: error retention-days: 3