From f129e2afa5015e7e335aa03de8c3f75505a66f58 Mon Sep 17 00:00:00 2001 From: Ellie Huxtable Date: Mon, 16 Mar 2026 13:52:46 -0700 Subject: chore(ci): use depot to build docker images too (#3281) ## Checks - [ ] I am happy for maintainers to push small adjustments to this PR, to speed up the review cycle - [ ] I have checked that there are no existing pull requests for the same thing --- .github/workflows/docker.yaml | 103 ++++-------------------------------------- depot.json | 1 + 2 files changed, 10 insertions(+), 94 deletions(-) create mode 100644 depot.json diff --git a/.github/workflows/docker.yaml b/.github/workflows/docker.yaml index e7b3da6a..68a1ad5c 100644 --- a/.github/workflows/docker.yaml +++ b/.github/workflows/docker.yaml @@ -5,72 +5,23 @@ on: branches: [main] jobs: - publish_x86: + publish: concurrency: - group: ${{ github.ref }}-x86 + group: ${{ github.ref }}-docker cancel-in-progress: true permissions: packages: write - runs-on: ubuntu-latest + runs-on: depot-ubuntu-24.04 steps: - uses: actions/checkout@v6 - with: - repository: atuinsh/atuin - path: "./" - name: Get Repo Owner id: get_repo_owner run: echo "REPO_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" > $GITHUB_ENV - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - name: Login to container Registry - uses: docker/login-action@v3 - with: - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - registry: ghcr.io - - - name: Get short sha - id: shortsha - run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: Release build - id: release_build - uses: docker/build-push-action@v6 - with: - outputs: "type=registry,push=true" - platforms: linux/amd64 - file: ./Dockerfile - context: . - provenance: false - build-args: | - Version=dev - GitCommit=${{ steps.shortsha.outputs.short_sha }} - tags: | - ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }}-amd64 - - publish_aarch64: - concurrency: - group: ${{ github.ref }}-aarch64 - cancel-in-progress: true - permissions: - packages: write - - runs-on: ubuntu-24.04-arm - steps: - - uses: actions/checkout@v6 - with: - repository: atuinsh/atuin - path: "./" - - - name: Get Repo Owner - id: get_repo_owner - run: echo "REPO_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" > $GITHUB_ENV + - uses: depot/setup-action@v1 - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - name: Login to container Registry uses: docker/login-action@v3 with: @@ -82,12 +33,11 @@ jobs: id: shortsha run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - name: Release build - id: release_build - uses: docker/build-push-action@v6 + - name: Build and push + uses: depot/build-push-action@v1 with: - outputs: "type=registry,push=true" - platforms: linux/arm64 + push: true + platforms: linux/amd64,linux/arm64 file: ./Dockerfile context: . provenance: false @@ -95,39 +45,4 @@ jobs: Version=dev GitCommit=${{ steps.shortsha.outputs.short_sha }} tags: | - ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }}-aarch64 - - publish_manifest: - runs-on: ubuntu-latest - needs: [publish_x86, publish_aarch64] - steps: - - uses: actions/checkout@v6 - with: - repository: atuinsh/atuin - path: "./" - - - name: Get Repo Owner - id: get_repo_owner - run: echo "REPO_OWNER=$(echo ${{ github.repository_owner }} | tr '[:upper:]' '[:lower:]')" > $GITHUB_ENV - - - name: Login to container Registry - uses: docker/login-action@v3 - with: - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - registry: ghcr.io - - - name: Get short sha - id: shortsha - run: echo "short_sha=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT - - - name: Create manifest - run: | - docker manifest create ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }} \ - --amend ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }}-amd64 \ - --amend ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }}-aarch64 - docker manifest annotate --arch amd64 --os linux ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }} ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }}-amd64 - docker manifest annotate --arch arm64 --os linux ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }} ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }}-aarch64 - docker manifest inspect ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }} - - docker manifest push ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }} + ghcr.io/${{ env.REPO_OWNER }}/atuin:${{ steps.shortsha.outputs.short_sha }} diff --git a/depot.json b/depot.json new file mode 100644 index 00000000..e51895a6 --- /dev/null +++ b/depot.json @@ -0,0 +1 @@ +{"id":"v6vqpk6559"} -- cgit v1.3.1