name: maven-release on: push: branches: - master paths-ignore: - '*.md' - '.gitignore' jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: java-version: 11 distribution: corretto cache: maven server-id: ossrh # Value of distributionManagement.repository.id field of pom.xml server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD settings-path: ${{ github.workspace }} # Location for settings.xml file gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} gpg-passphrase: GPG_PASSPHRASE - name: Publish with Maven deploy run: > mvn --batch-mode --activate-profiles deploy --settings $GITHUB_WORKSPACE/settings.xml -Pcoverage clean deploy env: MAVEN_USERNAME: ${{ secrets.NEXUS_USERNAME }} MAVEN_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - name: Upload coverage to Codecov uses: codecov/codecov-action@v3 with: token: ${{ secrets.CODECOV_TOKEN }} get-tag-of-current-sha: needs: build runs-on: ubuntu-latest outputs: tag: ${{ steps.tag-retriever.outputs.tag }} # Var is empty if command to retrieve tag fails (e.g. if current SHA has no tag associated) steps: - name: Clone repo with complete history and tags uses: actions/checkout@v4 with: fetch-depth: 0 - name: Store tag of SHA if present id: tag-retriever run: | echo "tag=$(git describe --exact-match ${{ github.sha }})" >> "$GITHUB_OUTPUT" trigger-github-release: needs: get-tag-of-current-sha name: Trigger GitHub release workflow if: needs.get-tag-of-current-sha.outputs.tag # Runs job only if tag is present. uses: ./.github/workflows/release-on-github.yml with: tag: ${{ needs.get-tag-of-current-sha.outputs.tag }}