Add authentication #27
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
jobs: | |
build-push: | |
runs-on: 'ubuntu-latest' | |
steps: | |
- uses: 'actions/checkout@v4' | |
- id: 'metadata' | |
uses: 'docker/metadata-action@v5' | |
with: | |
images: 'econialabs/emojicoin-dot-fun-indexer-processor' | |
tags: | | |
type=match,pattern=emojicoin-processor-v(.*),group=1 | |
- uses: 'docker/setup-qemu-action@v3' | |
- uses: 'docker/setup-buildx-action@v3' | |
- uses: 'docker/login-action@v3' | |
with: | |
password: '${{ secrets.DOCKERHUB_TOKEN }}' | |
username: '${{ secrets.DOCKERHUB_USERNAME }}' | |
- name: 'Build AMD image, push to Docker Hub, and store locally' | |
uses: 'docker/build-push-action@v6' | |
with: | |
cache-from: 'type=gha' | |
cache-to: 'type=gha,mode=max' | |
context: 'rust' | |
file: 'rust/Dockerfile' | |
outputs: 'type=docker,dest=/tmp/amd64.tar' | |
platforms: 'linux/amd64' | |
push: 'true' | |
tags: '${{ steps.metadata.outputs.tags }}' | |
- name: 'Clear Docker cache to free up space for ARM build' | |
run: 'docker system prune -af' | |
- name: 'Build ARM image and store locally' | |
uses: 'docker/build-push-action@v6' | |
with: | |
cache-from: 'type=gha' | |
cache-to: 'type=gha,mode=max' | |
context: 'rust' | |
file: 'rust/Dockerfile' | |
outputs: 'type=docker,dest=/tmp/arm64.tar' | |
platforms: 'linux/arm64' | |
push: 'false' | |
tags: '${{ steps.metadata.outputs.tags }}' | |
- name: 'Push multi-platform image to Docker Hub' | |
run: | | |
docker system prune -af | |
docker load --input /tmp/amd64.tar | |
docker load --input /tmp/arm64.tar | |
IMAGE_REFS=$(docker images -q | xargs -I {} echo "--amend {}") | |
docker login \ | |
-u ${{ secrets.DOCKERHUB_USERNAME }} -p ${{ secrets.DOCKERHUB_TOKEN }} | |
echo "${{ steps.metadata.outputs.tags }}" | while read -r tag; do | |
if [ ! -z "$tag" ]; then | |
docker manifest create $tag $IMAGE_REFS && docker manifest push $tag | |
fi | |
done | |
timeout-minutes: 360 | |
name: 'Push multi-platform processor image to Docker Hub' | |
'on': | |
push: | |
tags: | |
- 'emojicoin-processor-v*' | |
... |