62 lines
2.1 KiB
YAML
62 lines
2.1 KiB
YAML
name: "Build Docker image"
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- "main"
|
|
|
|
permissions:
|
|
contents: "read"
|
|
packages: "write"
|
|
|
|
env:
|
|
REGISTRY: "ghcr.io"
|
|
|
|
jobs:
|
|
build-docker-image:
|
|
runs-on: "ubuntu-24.04"
|
|
steps:
|
|
- name: "Checkout repository"
|
|
uses: "actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd" # v6.0.2
|
|
with:
|
|
persist-credentials: false
|
|
- name: "Set up Gradle"
|
|
uses: "gradle/actions/setup-gradle@f29f5a9d7b09a7c6b29859002d29d24e1674c884" # v5.0.1
|
|
- name: "Set up Java 25"
|
|
uses: "actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654" # v5.2.0
|
|
with:
|
|
distribution: "temurin"
|
|
java-version: 25
|
|
check-latest: true
|
|
- name: "Build with Gradle"
|
|
run: "./gradlew build"
|
|
- name: Set up QEMU
|
|
uses: docker/setup-qemu-action@c7c53464625b32c7a7e944ae62b3e17d2b600130 # v3.7.0
|
|
- name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3.12.0
|
|
- name: Log into registry ${{ env.REGISTRY }}
|
|
uses: docker/login-action@c94ce9fb468520275223c153574b00df6fe4bcc9 # v3.7.0
|
|
with:
|
|
registry: ${{ env.REGISTRY }}
|
|
username: ${{ github.actor }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
- name: Extract Docker metadata
|
|
id: meta
|
|
uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 # v5.10.0
|
|
with:
|
|
tags: |
|
|
type=raw,value=latest
|
|
type=raw,value=${{ github.ref_name }}
|
|
type=semver,pattern={{version}}
|
|
images: ${{ env.REGISTRY }}/${{ github.repository }}
|
|
- name: Build and push Docker image
|
|
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
|
with:
|
|
context: .
|
|
platforms: linux/amd64,linux/arm64
|
|
push: true
|
|
provenance: false
|
|
tags: ${{ steps.meta.outputs.tags }}
|
|
labels: ${{ steps.meta.outputs.labels }}
|
|
cache-from: type=gha
|
|
cache-to: type=gha,mode=max
|