Skip to content

better action

better action #59

Workflow file for this run

name: Build Image
on:
push:
branches: [ "development" ]
pull_request:
branches: [ "development" ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Java
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'liberica'
cache: maven
- name: Test with Maven
run: mvn --batch-mode --update-snapshots verify
build:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
needs:
- test
permissions:
contents: read
packages: write
attestations: write
id-token: write
strategy:
fail-fast: false
matrix:
platform:
- amd64
- arm64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Test
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'liberica'
cache: maven
- name: Run the Maven verify phase
run: mvn --batch-mode --update-snapshots verify
# - name: Extract metadata (tags, labels) for Docker
# id: meta
# if: github.event_name != 'pull_request'
# uses: docker/metadata-action@v5
# with:
# images: ghcr.io/ictu/pseudoniemenservice
- name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io/ictu/pseudoniemenservice
username: ictu
password: ${{ secrets.GITHUB_TOKEN }}
- name: Set up QEMU
if: github.event_name != 'pull_request'
uses: docker/setup-qemu-action@v3
- name: Set up Pack
if: github.event_name != 'pull_request'
uses: buildpacks/github-actions/[email protected]
with:
pack-version: 0.35.1
- name: Docker meta
id: meta
if: github.event_name != 'pull_request'
uses: docker/metadata-action@v5
with:
images: ghcr.io/ictu/pseudoniemenservice-${{ matrix.platform }}
- name: Build and publish OCI image
if: github.event_name != 'pull_request'
run: |
pack build ghcr.io/ictu/pseudoniemenservice-${{ matrix.platform }} \
--builder docker.io/paketobuildpacks/builder-jammy-buildpackless-tiny \
--buildpack gcr.io/paketo-buildpacks/java \
--path . \
--platform linux/${{ matrix.platform }} \
--report-output-dir ./report.toml \
--publish
#
# - name: Set up JDK
# uses: actions/setup-java@v4
# with:
# java-version: '21'
# distribution: "liberica"
# cache: maven
# - name: Build Native with Maven
# if: github.event_name != 'pull_request'
# run: mvn -ntp -B clean install spring-boot:build-image -Dspring-boot.build-image.imageName=ghcr.io/ictu/pseudoniemenservice:latest
#
# - name: Build with Maven
# if: github.event_name == 'pull_request'
# run: mvn -ntp -B clean install
#
# - name: Push docker image
# if: github.event_name != 'pull_request'
# run: |
# docker push --platform ${{ matrix.platform }} ghcr.io/ictu/pseudoniemenservice:lates
merge:
runs-on: ubuntu-latest
if: github.event_name != 'pull_request'
needs:
- build
steps:
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/ictu/pseudoniemenservice
- name: Login to GHCR
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ghcr.io/ictu/pseudoniemenservice
username: ictu
password: ${{ secrets.GITHUB_TOKEN }}
- name: Create manifest list and push
run: |
docker buildx imagetools create --tag ghcr.io/ictu/pseudoniemenservice ghcr.io/ictu/pseudoniemenservice-amd64 ghcr.io/ictu/pseudoniemenservice-arm64