Skip to content

Publish amd64/arm64 to docker Hub #18

Publish amd64/arm64 to docker Hub

Publish amd64/arm64 to docker Hub #18

# Ce workflow utilise des actions qui ne sont pas certifiées par GitHub.
# Elles sont fournies par un tiers et régies par
# des conditions d’utilisation du service, une politique de confidentialité et un support distincts.
# documentation en ligne.
# GitHub recommande d’épingler les actions à un SHA de commit.
# Pour obtenir une version plus récente, vous devez mettre à jour le SHA.
# Vous pouvez également référencer une balise ou une branche, mais l’action peut changer sans avertissement.
name: Publish amd64/arm64 to docker Hub
on:
release:
types: [published]
workflow_dispatch:
jobs:
push_to_registry:
name: Push Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v3.4.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v2.1.0
with:
platforms: 'arm64'
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2.5.0
- name: Log in to Docker Hub
uses: docker/login-action@v2.1.0
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4.4.0
with:
images: highcanfly/cloudflare-workerd
- name: Get latest release tag
id: get_latest_tag
run: |
TAG=$(curl --silent "https://api.github.com/repos/cloudflare/workerd/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
echo "Latest release tag: $TAG"
echo "::set-output name=tag::$TAG"
- name: Build and push Docker image
uses: docker/build-push-action@v4.0.0
env:
REMOTE_CACHE_URL: ${{ secrets.REMOTE_CACHE_URL_SECRET }}
with:
context: .
build-args: |
REMOTE_CACHE_URL=${{ secrets.REMOTE_CACHE_URL_SECRET }}
cache-from: type=gha
cache-to: type=gha,mode=max
platforms: linux/arm64, linux/amd64
push: true
tags: highcanfly/cloudflare-workerd:${{ steps.get_latest_tag.outputs.tag }},highcanfly/cloudflare-workerd:latest
labels: ${{ steps.meta.outputs.labels }}