2.6.2.Final #58
Workflow file for this run
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
name: Release Images | |
on: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'Release tag name' | |
required: true | |
release: | |
types: [released, prereleased] | |
env: | |
# The values are extracted from the github.event context, | |
# which is only availble when the workflow gets triggered by a release event. | |
RELEASE_VERSION: ${{ github.event.release.name }} | |
BRANCH: ${{ github.event.release.target_commitish }} | |
jobs: | |
release-images: | |
if: github.repository_owner == 'Apicurio' | |
runs-on: ubuntu-20.04 | |
timeout-minutes: 120 | |
env: | |
RELEASE_TYPE: release | |
steps: | |
- name: Check Prerequisites | |
if: github.event_name != 'workflow_dispatch' && !startsWith(github.event.release.tag_name, '2.6.') | |
run: | | |
exit 1 | |
- name: View Disk Usage | |
run: df -h | |
# https://github.com/marketplace/actions/free-disk-space-ubuntu | |
- name: Free Disk Space (Ubuntu) | |
uses: jlumbroso/free-disk-space@76866dbe54312617f00798d1762df7f43def6e5c | |
with: | |
android: true | |
dotnet: true | |
haskell: true | |
swap-storage: true | |
large-packages: false | |
# this might remove tools that are actually needed, but frees about 6 GB | |
tool-cache: false | |
- name: View Disk Usage | |
run: df -h | |
# Open-Source Machine emulator that allows you to emulate multiple CPU architectures on your machine | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v1 | |
# Docker CLI plugin for extended build capabilities with BuildKit | |
- name: Set up Docker Buildx | |
id: buildx | |
uses: docker/setup-buildx-action@v1 | |
- name: Inspect builder | |
run: | | |
echo "Name: ${{ steps.buildx.outputs.name }}" | |
echo "Endpoint: ${{ steps.buildx.outputs.endpoint }}" | |
echo "Status: ${{ steps.buildx.outputs.status }}" | |
echo "Flags: ${{ steps.buildx.outputs.flags }}" | |
echo "Platforms: ${{ steps.buildx.outputs.platforms }}" | |
- name: Fetch Release Details | |
if: github.event_name == 'workflow_dispatch' | |
run: | | |
touch release.json && curl https://api.github.com/repos/${GITHUB_REPOSITORY}/releases/tags/${{ github.event.inputs.tag }} > release.json | |
echo "RELEASE_VERSION=$(cat release.json | jq -r '.name')" >> $GITHUB_ENV | |
echo "BRANCH=$(cat release.json | jq -r '.target_commitish')" >> $GITHUB_ENV | |
- name: Determine Release Type | |
if: "contains(env.RELEASE_VERSION, 'RC')" | |
run: | | |
echo "This is a pre-release. Setting 'RELEASE_TYPE' to 'pre-release'" | |
echo "RELEASE_TYPE=pre-release" >> $GITHUB_ENV | |
- name: Download Source Code | |
run: git clone --branch $RELEASE_VERSION --single-branch ${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}.git registry | |
# We have faced issues in the past where a github release was created from a wrong commit | |
# This step will ensure that the release was created from the right commit | |
- name: Verify Project Version | |
run: | | |
cd registry | |
PROJECT_VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) | |
if [[ $PROJECT_VERSION != $RELEASE_VERSION ]] | |
then | |
echo "ERROR: Project Version '${PROJECT_VERSION}' does not match with Released Version '${RELEASE_VERSION}'" | |
exit 1 | |
fi | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
- name: Build Project | |
run: cd registry && make SKIP_TESTS=true BUILD_FLAGS='-Dmaven.wagon.httpconnectionManager.maxTotal=30 -Dmaven.wagon.http.retryHandler.count=5' build-all | |
- name: Login to DockerHub Registry | |
run: echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin | |
- name: Build and Push Multi-arch Images to Docker.io | |
run: cd registry && ./.github/scripts/build-and-push-multiarch-images.sh ${BRANCH} docker.io multiarch-registry-images ${RELEASE_TYPE} ${RELEASE_VERSION} | |
- name: Login to Quay.io Registry | |
run: docker login -u "${{ secrets.QUAY_USERNAME }}" -p "${{ secrets.QUAY_PASSWORD }}" quay.io | |
- name: Build and Push Multi-arch Images to Quay.io | |
run: cd registry && ./.github/scripts/build-and-push-multiarch-images.sh ${BRANCH} quay.io multiarch-registry-images ${RELEASE_TYPE} ${RELEASE_VERSION} | |
- name: Google Chat Notification | |
if: ${{ failure() }} | |
uses: Co-qn/google-chat-notification@b9227d9daa4638c9782a5bd16c4abb86268127a1 | |
with: | |
name: ${{ github.job }} | |
url: ${{ secrets.GOOGLE_CHAT_WEBHOOK }} | |
status: ${{ job.status }} |