Create Release #17
This file contains hidden or 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: Create Release | |
on: | |
workflow_dispatch: | |
jobs: | |
verify-release-branch: | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Success" | |
if: ${{ startsWith(github.ref_name, 'release/') }} | |
run: | | |
echo "Creating a release for branch '${{ github.ref_name }}'" | |
exit 0 | |
- name: "Error" | |
if: ${{ !startsWith(github.ref_name, 'release/') }} | |
run: | | |
echo "::error::Cannot create release from branch '${{ github.ref_name }}' since it does not start with 'release/'" | |
exit 1 | |
create-release-docker: | |
needs: verify-release-branch | |
runs-on: ubuntu-latest | |
timeout-minutes: 10 | |
outputs: | |
checksum: ${{ steps.get-checksum.outputs.checksum }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get images | |
id: get-images | |
uses: trifork/cheetah-infrastructure-utils/.github/actions/docker/get-images@main | |
with: | |
image-name: cheetah-infrastructure-utils-kafka | |
TRIFORK_GITHUB_PAT: ${{ secrets.WRITE_PACKAGE_PAT }} | |
KAMSTRUP_GITLAB_PAT: ${{ secrets.KAMSTRUP_GITLAB_PAT }} | |
KAMSTRUP_AZURE_PAT: ${{ secrets.KAMSTRUP_ACR_SECRET }} | |
- name: Get version | |
id: get-version | |
run: echo version=$(grep -oP 'LABEL version="\K[^"]*' Dockerfile) >> $GITHUB_OUTPUT | |
- name: Extract metadata (tags, labels) for Docker | |
id: metadata | |
uses: docker/metadata-action@879dcbb708d40f8b8679d4f7941b938a086e23a7 | |
with: | |
images: ${{ steps.get-images.outputs.images }} | |
labels: | | |
org.opencontainers.image.vendor=Trifork | |
org.opencontainers.image.source=${{ github.server_url }}/${{ github.repository }} | |
tags: ${{ steps.get-version.outputs.version }} | |
flavor: latest=true | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@f95db51fddba0c2d1ec667646a06c2ce06100226 # v3 | |
- name: Build and push Docker image | |
id: build-image | |
uses: docker/build-push-action@31159d49c0d4756269a0940a750801a1ea5d7003 # v6 | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 | |
tags: ${{ steps.metadata.outputs.tags }} | |
labels: ${{ steps.metadata.outputs.labels }} | |
push: true | |
- name: Get checksum | |
id: get-checksum | |
run: echo checksum=${{ steps.build-image.outputs.digest }} >> $GITHUB_OUTPUT | |
create-release-maven: | |
needs: verify-release-branch | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
outputs: | |
checksum: ${{ steps.get-checksum.outputs.checksum }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: "17" | |
distribution: "temurin" | |
cache: maven | |
- name: Publish Maven package | |
shell: bash | |
run: mvn deploy -P trifork -s settings.xml | |
env: | |
GITHUB_TOKEN: ${{ secrets.WRITE_PACKAGE_PAT }} | |
- name: Get checksum | |
id: get-checksum | |
run: echo checksum=${{ hashFiles('./target/*.jar') }} >> $GITHUB_OUTPUT | |
create-github-release: | |
needs: [create-release-docker, create-release-maven] | |
runs-on: ubuntu-latest | |
timeout-minutes: 5 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Get version | |
id: get-version | |
run: echo version=$(grep -oP 'LABEL version="\K[^"]*' Dockerfile) >> $GITHUB_OUTPUT | |
- name: Create checksum files | |
run: | | |
echo ${{ needs.create-release-docker.outputs.checksum }} >> image-checksum.txt | |
echo ${{ needs.create-release-maven.outputs.checksum }} >> jar-checksum.txt | |
- name: Create release | |
uses: softprops/action-gh-release@v2 | |
with: | |
generate_release_notes: true | |
tag_name: ${{ steps.get-version.outputs.version }} | |
files: | | |
image-checksum.txt | |
jar-checksum.txt |