Merge pull request #496 from perftools/0.22.x-merge-up-into-0.23.x_Uv… #178
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
# This workflow uses actions that are not certified by GitHub. | |
# They are provided by a third-party and are governed by | |
# separate terms of service, privacy policy, and support | |
# documentation. | |
name: Publish Docker image | |
on: | |
# Runs your workflow when you push a commit or tag. | |
# https://docs.github.com/en/actions/learn-github-actions/events-that-trigger-workflows#push | |
# Note: An event will not be created when you push more than three tags at once. | |
push: | |
branches: | |
- "*.*.x" | |
# Runs your workflow when a release or draft of a release is published on GitHub. | |
# https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#release | |
release: | |
types: [published] | |
env: | |
REGISTRY: docker.io | |
IMAGE_NAME: xhgui/xhgui | |
TEST_IMAGE: xhgui | |
PLATFORMS: linux/amd64,linux/arm64,linux/arm/v7 | |
jobs: | |
build-and-push-image: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
packages: write | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v1 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Log in to the Container registry | |
uses: docker/login-action@v1 | |
with: | |
# For docker.io tokens, see | |
# https://docs.docker.com/docker-hub/access-tokens/ | |
# https://github.com/perftools/xhgui/settings/secrets/actions | |
registry: ${{ env.REGISTRY }} | |
username: ${{ secrets.DOCKER_LOGIN }} | |
password: ${{ secrets.DOCKER_TOKEN }} | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v3.5.0 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/0.') }} | |
- name: Build and export to Docker (linux/amd64) | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
platforms: linux/amd64 | |
load: true | |
tags: ${{ env.TEST_IMAGE }}:amd64 | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Build and export to Docker (linux/arm64) | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
platforms: linux/arm64 | |
load: true | |
tags: ${{ env.TEST_IMAGE }}:arm64 | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Build and export to Docker (linux/arm/v7) | |
uses: docker/build-push-action@v2 | |
with: | |
context: . | |
platforms: linux/arm/v7 | |
load: true | |
tags: ${{ env.TEST_IMAGE }}:armv7 | |
cache-from: type=gha | |
cache-to: type=gha,mode=max | |
- name: Test Docker images | |
run: | | |
docker run --rm ${{ env.TEST_IMAGE }}:amd64 php --version | |
docker run --rm ${{ env.TEST_IMAGE }}:arm64 php --version | |
docker run --rm ${{ env.TEST_IMAGE }}:armv7 php --version | |
- name: Build and push Docker image | |
uses: docker/build-push-action@v2.7.0 | |
with: | |
context: . | |
platforms: ${{ env.PLATFORMS }} | |
push: true | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
# vim:ft=yaml:et:ts=2:sw=2 |