Skip to content

feat: ensure better api format alignments to official specs again (#26) #13

feat: ensure better api format alignments to official specs again (#26)

feat: ensure better api format alignments to official specs again (#26) #13

name: aam-backend-service-release
on:
push:
branches:
- main
paths:
- '.github/workflows/aam-backend-service-release.yml'
- '.github/workflows/aam-backend-build-and-publish.yml'
- 'application/aam-backend-service/**'
jobs:
verify:
name: Verify aam-backend-service
runs-on: ubuntu-latest
defaults:
run:
working-directory: application/aam-backend-service
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up Java
uses: actions/setup-java@v4
with:
distribution: 'corretto'
java-version: 17
cache: 'gradle'
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GHCR_PULL_SECRET }}
- name: Run Tests and generate Jacoco Test Report
env:
JACOCO_SOURCE_PATH: application/aam-backend-service/src/main/kotlin
run: |
./gradlew jacocoTestReport --no-daemon
- name: Publish code coverage to code climate
uses: paambaati/[email protected]
env:
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
JACOCO_SOURCE_PATH: application/aam-backend-service/src/main/kotlin
with:
coverageLocations: application/aam-backend-service/build/reports/jacoco/test/jacocoTestReport.xml:jacoco
publish:
name: Publish aam-backend-service Release
runs-on: ubuntu-latest
needs:
- verify
permissions:
contents: write # to be able to publish a GitHub release
issues: write # to be able to comment on released issues
pull-requests: write # to be able to comment on released pull requests
defaults:
run:
working-directory: application/aam-backend-service
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
fetch-tags: true
- name: Install Rust toolchain
run: rustup update --no-self-update
- name: Install conventional_commits_next_version
run: cargo install conventional_commits_next_version --version ^6
- name: Set current tag and version
run: |
CURRENT_TAG=$(git describe --abbrev=0 --tags --match 'aam-backend-service/v*')
CURRENT_VERSION=$(echo $CURRENT_TAG | cut -d'/' -f2)
echo "CURRENT_TAG=$CURRENT_TAG" >> $GITHUB_ENV
echo "CURRENT_VERSION=$CURRENT_VERSION" >> $GITHUB_ENV
- name: Set from commit hash
run: |
FROM_COMMIT_HASH=$(git rev-list -n 1 ${{ env.CURRENT_TAG }})
echo "FROM_COMMIT_HASH=$FROM_COMMIT_HASH" >> $GITHUB_ENV
- name: Calculate next version
run: |
NEXT_VERSION=v$(conventional_commits_next_version \
--calculation-mode "Batch" \
--from-commit-hash ${{ env.FROM_COMMIT_HASH }} \
--from-version ${{ env.CURRENT_VERSION }} \
--monorepo application/aam-backend-service)
echo "NEXT_VERSION=$NEXT_VERSION" >> $GITHUB_ENV
- name: Create Release
if: env.CURRENT_VERSION != env.NEXT_VERSION
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: |
TAG_NAME=aam-backend-service/${{ env.NEXT_VERSION }}
gh api \
--method POST \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/Aam-Digital/aam-services/releases \
-f "tag_name=$TAG_NAME" \
-f "target_commitish=main" \
-f "name=$TAG_NAME" \
-F "draft=false" \
-F "prerelease=false" \
-F "generate_release_notes=true"