Fix/eno xml wrong zip name #5
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: Create Eno-WS XML snapshot | |
on: | |
pull_request: | |
types: [labeled] | |
env: | |
JAVA_VERSION: '17' | |
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 | |
eno-lib: | |
needs: remove-deploy-label | |
name: Check Eno lib version exists | |
runs-on: ubuntu-latest | |
outputs: | |
version: ${{ steps.get-version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get Eno Version | |
id: get-version | |
run: echo "version=$(mvn help:evaluate -Dexpression=eno.version -q -DforceStdout)" >> $GITHUB_OUTPUT | |
- name: Check Eno lib tag v${{ steps.get-version.outputs.version }} existence | |
id: check-tag-exists | |
uses: mukunku/[email protected] | |
with: | |
repo: InseeFr/Eno | |
tag: "v${{ steps.get-version.outputs.version }}" | |
- name: Eno 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: eno-lib | |
runs-on: ubuntu-latest | |
outputs: | |
snapshot-version: ${{ steps.version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get version | |
id: version | |
run: echo "version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)" >> $GITHUB_OUTPUT | |
- name: Check Eno WS tag ${{ steps.version.outputs.version }} existence | |
id: check-tag-exists | |
uses: mukunku/[email protected] | |
with: | |
tag: ${{ steps.version.outputs.version }} | |
- name: Eno WS tag verification | |
id: check-tag | |
run: | | |
if ! [[ "${{ steps.version.outputs.version }}" =~ ^2.[0-9]+.[0-9]+-SNAPSHOT.?[0-9]*$ ]]; then | |
echo "Version on v2-main ${{ steps.version.outputs.version }} branch does not match the format 2.Y.Z-SNAPSHOT" | |
exit 1 | |
fi | |
if [[ "${{ steps.check-tag-exists.outputs.exists }}" == "true" ]]; then | |
echo "Nothing to tag/release, the tag ${{ steps.version.outputs.version }} already exists" | |
exit 1 | |
fi | |
publish-docker: | |
needs: [ eno-lib, check-version ] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Java | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: ${{ env.JAVA_VERSION }} | |
- name: Checkout Eno lib repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 1 | |
ref: "v${{ needs.eno-lib.outputs.version }}" | |
repository: InseeFr/Eno | |
path: Eno | |
- name: Build Eno lib | |
working-directory: ./Eno | |
run: mvn --batch-mode clean process-classes install --no-transfer-progress -DskipTests=true -Dmaven.javadoc.skip=true | |
- name: Build Eno-WS | |
run: mvn --batch-mode clean package --no-transfer-progress -DskipTests=true | |
- name: Publish to Registry | |
uses: elgohr/Publish-Docker-Github-Action@v5 | |
with: | |
name: inseefr/eno-ws | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
tags: ${{ needs.check-version.outputs.snapshot-version }} | |
create-tag: | |
needs: [ check-version, publish-docker ] | |
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 | |
}) | |
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' | |
}) |