objective categorical abstract machine language personal data server

Build amd64 and arm64 images on same-arch hosts

futur.blue 28d5cf23 604d88cd

verified
+43 -14
+43 -14
.github/workflows/build.yml
··· 6 6 - main 7 7 8 8 jobs: 9 - docker: 9 + build-amd64: 10 10 runs-on: ubuntu-latest 11 11 permissions: 12 12 packages: write 13 13 steps: 14 - - name: Log in to GitHub Container Registry 15 - uses: docker/login-action@v3 14 + - uses: docker/login-action@v3 16 15 with: 17 16 registry: ghcr.io 18 17 username: ${{ github.actor }} 19 18 password: ${{ secrets.GITHUB_TOKEN }} 20 19 21 - - name: Set up Docker Buildx 22 - uses: docker/setup-buildx-action@v3 20 + - uses: docker/setup-buildx-action@v3 23 21 24 22 - uses: actions/checkout@v6 23 + 24 + - name: Build and push 25 + uses: docker/build-push-action@v6 25 26 with: 26 - sparse-checkout: | 27 - .git 27 + push: true 28 + tags: ghcr.io/futurgh/pegasus:${{ github.sha }}-amd64 29 + build-args: GIT_REV=${{ github.sha }} 30 + 31 + build-arm64: 32 + runs-on: ubuntu-24.04-arm 33 + permissions: 34 + packages: write 35 + steps: 36 + - uses: docker/login-action@v3 37 + with: 38 + registry: ghcr.io 39 + username: ${{ github.actor }} 40 + password: ${{ secrets.GITHUB_TOKEN }} 41 + 42 + - uses: docker/setup-buildx-action@v3 28 43 29 - - name: Set short git commit SHA 30 - run: | 31 - short_sha=$(git rev-parse --short ${{ github.sha }}) 32 - echo "COMMIT_SHORT_SHA=$short_sha" >> $GITHUB_ENV 44 + - uses: actions/checkout@v6 33 45 34 46 - name: Build and push 35 47 uses: docker/build-push-action@v6 36 48 with: 37 - platforms: linux/amd64,linux/arm64 38 49 push: true 39 - tags: ghcr.io/futurgh/pegasus:latest 40 - build-args: GIT_REV=$GIT_REV 50 + tags: ghcr.io/futurgh/pegasus:${{ github.sha }}-arm64 51 + build-args: GIT_REV=${{ github.sha }} 52 + 53 + merge: 54 + runs-on: ubuntu-latest 55 + needs: [build-amd64, build-arm64] 56 + permissions: 57 + packages: write 58 + steps: 59 + - uses: docker/login-action@v3 60 + with: 61 + registry: ghcr.io 62 + username: ${{ github.actor }} 63 + password: ${{ secrets.GITHUB_TOKEN }} 64 + 65 + - name: Create multi-arch manifest 66 + run: | 67 + docker buildx imagetools create -t ghcr.io/futurgh/pegasus:latest \ 68 + ghcr.io/futurgh/pegasus:${{ github.sha }}-amd64 \ 69 + ghcr.io/futurgh/pegasus:${{ github.sha }}-arm64