gitea-actions/.github/workflows/maven-publish.yml
2025-03-20 14:04:30 +01:00

85 lines
3.0 KiB
YAML

# This workflow will build a package using Maven and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#apache-maven-with-a-settings-path
name: Maven Publish
on:
workflow_call:
secrets:
AWS_CA_TOKEN:
required: true
MVN_SETTINGS_XML:
required: true
JAVA_VERSION:
required: true
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- uses: actions/checkout@v4
- name: Set up Maven
uses: stCarolas/setup-maven@v5
with:
maven-version: '3.9.9'
- name: Print branch
run: |
echo "Running on branch: $BRANCH"
env:
BRANCH: ${{ github.ref }}
- name: Set up JDK 21
if: github.ref == 'refs/heads/feature/T2900-java21' || github.ref == 'refs/heads/feature/T2900-java-21'
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'corretto'
- name: Set up JDK from ENV
if: github.ref != 'refs/heads/feature/T2900-java21' && github.ref != 'refs/heads/feature/T2900-java-21'
uses: actions/setup-java@v4
with:
java-version: '${{ secrets.JAVA_VERSION }}'
distribution: 'corretto'
- name: Create Maven settings
run: |
echo -e "$SETTINGS_XML" > ~/.m2/settings.xml
env:
SETTINGS_XML: ${{ secrets.MVN_SETTINGS_XML }}
- name: Build with Maven
run: |
mvn -B -U clean package --file pom.xml
- name: Deploy artifacts
run: |
mvn deploy -U --file pom.xml -DrepositoryId=pravila--pravila-maven
env:
GITHUB_TOKEN: ${{ github.token }}
CODEARTIFACT_AUTH_TOKEN: ${{ secrets.AWS_CA_TOKEN }}
- name: Upload snapshot to nexus
if: github.ref != 'refs/heads/feature/T2900-java21'
run: |
GROUP_ID=$(mvn help:evaluate -Dexpression="project.groupId" -q -DforceStdout)
ARTIFACT_ID=$(mvn help:evaluate -Dexpression="project.artifactId" -q -DforceStdout)
VERSION=$(mvn help:evaluate -Dexpression="project.version" -q -DforceStdout)
echo "Uploading artifact for $GROUP_ID:$ARTIFACT_ID:$VERSION"
mvn deploy:deploy-file \
-Durl=https://devops.pravilanovait.hr/nexus/service/rest/v1/repositories/maven/proxy/amazon-codeartifact \
-Dpackaging=jar -DgroupId=$GROUP_ID -DartifactId=$ARTIFACT_ID \
-Dversion=$VERSION -DrepositoryId=local-nexus \
-Dfile=target/$ARTIFACT_ID-$VERSION.jar
# curl --request DELETE --user "admin:$NEXUS_ADMIN_PASSWORD" https://devops.pravilanovait.hr/nexus/service/rest/v1/repositories/maven/proxy/amazon-codeartifact/content/$GROUP_ID/$ARTIFACT_ID/$VERSION/$ARTIFACT_ID-$VERSION.jar
# curl --request POST --user "admin:$NEXUS_ADMIN_PASSWORD" https://devops.pravilanovait.hr/nexus/service/rest/v1/repositories/maven/proxy/amazon-codeartifact/invalidate-cache
env:
NEXUS_ADMIN_PASSWORD: ${{ secrets.NEXUS_ADMIN_PASSWORD }}