Skip to content

Update amd64/Dockerfile and arm64/Dockerfile #28

Update amd64/Dockerfile and arm64/Dockerfile

Update amd64/Dockerfile and arm64/Dockerfile #28

Workflow file for this run

name: Create and publish a Docker image
on:
push:
branches: ['master', 'build-push-to-artifact-registry']
tags: ['v*']
env:
GITHUB_REGISTRY: ghcr.io
GAR_PROJECT_ID: ${{ vars.GAR_PROJECT_ID }}
GAR_REGISTRY: ${{ vars.GAR_LOCATION }}-docker.pkg.dev
IMAGE_NAME: ${{ github.repository }}
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }}
CHANNEL_ID: ${{ vars.SLACK_CHANNEL_ID }}
jobs:
build-and-push-image:
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
items:
- file: docker/5.9/amd64/Dockerfile
arch: amd64
platform: linux/amd64
- file: docker/5.9/arm64/Dockerfile
arch: arm64
platform: linux/arm64
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ${{ env.GITHUB_REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Log in to Google Artifact Registry
uses: docker/login-action@v3
with:
registry: ${{ env.GAR_REGISTRY }}
username: _json_key
password: ${{ secrets.GAR_JSON_KEY }}
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}
${{ env.GAR_REGISTRY }}/${{ env.GAR_PROJECT_ID }}/${{ env.IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
type=ref,event=branch
type=raw,value=latest,enable={{is_default_branch}}
- name: Build and push Docker image
id: build_and_push_docker_image
uses: docker/build-push-action@v5
with:
context: .
platforms: ${{ matrix.items.platform }}
file: ${{ matrix.items.file }}
push: true
tags: ${{ steps.meta.outputs.tags }}-${{ matrix.items.arch }}
labels: ${{ steps.meta.outputs.labels }}
- name: Send a message on Slack channel
id: slack
uses: slackapi/[email protected]
with:
channel-id: ${{ env.CHANNEL_ID }}
payload: |
{
"text": "New Docker image 🤖",
"attachments": [
{
"pretext": "Images in ${{ github.repository }} were built and pushed",
"color": "28a745",
"fields": [
{
"value": "See <https://github.com/Golface/SwagGen/actions/runs/${{ github.run_id }}|GitHub Actions log> in Golface/SwagGen"
},
{
"title": "Status",
"short": true,
"value": "Completed"
}
],
"footer": "Ref name: ${{ github.ref_name }}"
}
]
}
- name: Send a failure message on Slack channel
id: slack_failure
if: ${{ failure() }}
uses: slackapi/[email protected]
with:
channel-id: ${{ env.CHANNEL_ID }}
payload: |
{
"text": "Failed to build Docker image :bangbang:",
"attachments": [
{
"pretext": "Failed to build ${{ github.repository }} image",
"color": "a72828",
"fields": [
{
"value": "See <https://github.com/Golface/SwagGen/actions/runs/${{ github.run_id }}|GitHub Actions log> in Golface/SwagGen"
},
{
"title": "Status",
"short": true,
"value": "Failed"
}
],
"footer": "Ref name: ${{ github.ref_name }}"
}
]
}