feat: dynamic unit #77
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: Pogues Back Office snapshot | |
# This action is triggered when the 'deploy-snapshot' tag is put in a pull request. | |
on: | |
pull_request: | |
types: [labeled] | |
jobs: | |
remove-deploy-label: | |
if: ${{ contains(github.event.pull_request.labels.*.name, 'deploy-snapshot') }} | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions-ecosystem/action-remove-labels@v1 | |
with: | |
labels: 'deploy-snapshot' | |
pogues-model: | |
name: Check Pogues-Model lib version exists | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.get-version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Pogues-Model Version | |
id: get-version | |
run: echo "version=$(mvn help:evaluate -Dexpression='pogues-model.version' -q -DforceStdout)" >> $GITHUB_OUTPUT | |
- name: Check Pogues-Model lib tag ${{ steps.get-version.outputs.version }} existence | |
id: check-tag-exists | |
uses: mukunku/[email protected] | |
with: | |
repo: InseeFr/Pogues-Model | |
tag: ${{ steps.get-version.outputs.version }} | |
- name: Pogues-Model lib tag verification | |
id: check-tag | |
run: | | |
if [[ "${{ steps.check-tag-exists.outputs.exists }}" == "false" ]]; then | |
echo "The tag v${{ steps.get-version.outputs.version }} doesn't exist in Eno lib repo." | |
exit 1 | |
fi | |
check-version: | |
needs: remove-deploy-label | |
runs-on: ubuntu-latest | |
outputs: | |
snapshot-version: ${{ steps.version-step.outputs.version }} | |
steps: | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Checkout Pogues-Back-Office repo | |
uses: actions/checkout@v4 | |
- name: Get Version | |
id: version-step | |
run: echo "version=$(mvn -f pom.xml help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT | |
- name: Print Version | |
run: echo ${{ steps.version-step.outputs.version }} | |
- uses: mukunku/[email protected] | |
name: Check tag existence | |
id: check-tag-exists | |
with: | |
tag: ${{ steps.version-step.outputs.version }} | |
- name: Tag verification | |
id: check-tag | |
run: | | |
if [[ "${{ steps.check-tag-exists.outputs.exists }}" == "true" ]]; then | |
echo "Nothing to tag/release, the tag ${{ steps.version-step.outputs.version }} already exists" | |
exit 1 | |
fi | |
if ! [[ "${{ steps.version-step.outputs.version }}" =~ ^[0-9]+.[0-9]+.[0-9]+-SNAPSHOT.?[0-9]*$ ]]; then | |
echo "Nothing to tag/release, the tag ${{ steps.version-step.outputs.version }} is not in correct format X.Y.Z-SNAPSHOT" | |
exit 1 | |
fi | |
build-sources: | |
needs: [check-version, pogues-model] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: '21' | |
- name: Checkout Pogues-Model lib repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
ref: ${{ needs.pogues-model.outputs.version }} | |
repository: InseeFr/Pogues-Model | |
path: Pogues-Model | |
- name: Build Pogues-Model lib | |
working-directory: ./Pogues-Model | |
run: mvn install --no-transfer-progress -DskipTests=true -Dmaven.javadoc.skip=true | |
- uses: actions/checkout@v4 | |
- name: Build Pogues-Back-Office with Maven | |
run: mvn package -B -V --file pom.xml --no-transfer-progress | |
- name: Upload jar | |
uses: actions/upload-artifact@v4 | |
with: | |
name: jar | |
path: target/pogues-bo.jar | |
create-tag: | |
needs: [ check-version, build-sources ] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create tag | |
uses: actions/github-script@v7 | |
with: | |
script: | | |
github.rest.git.createRef({ | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
ref: 'refs/tags/${{ needs.check-version.outputs.snapshot-version }}', | |
sha: context.sha | |
}) | |
publish-docker: | |
needs: [ check-version, create-tag ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Download jar | |
id: download | |
uses: actions/download-artifact@v4 | |
with: | |
name: jar | |
path: target/ | |
- name: Publish to Docker Hub | |
uses: elgohr/Publish-Docker-Github-Action@v5 | |
with: | |
name: inseefr/pogues-back-office | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
default_branch: ${{ github.ref }} | |
tags: ${{ needs.check-version.outputs.snapshot-version }} | |
write-comment: | |
needs: [ check-version, publish-docker ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/github-script@v7 | |
with: | |
script: | | |
github.rest.issues.createComment({ | |
issue_number: context.issue.number, | |
owner: context.repo.owner, | |
repo: context.repo.repo, | |
body: '👋 Version ${{ needs.check-version.outputs.snapshot-version }} deployed on docker hub' | |
}) |