name: Release on: # enable running the workflow manually workflow_dispatch: inputs: revision: description: 'Release version' default: '0-SNAPSHOT' jobs: release: runs-on: ubuntu-latest permissions: contents: write services: rabbitmq: image: rabbitmq:3-management-alpine env: RABBITMQ_DEFAULT_VHOST: / RABBITMQ_DEFAULT_USER: guest RABBITMQ_DEFAULT_PASS: guest ports: - 15672:15672 - 5672:5672 steps: - uses: actions/checkout@v4 - name: Set up JDK & Maven Central credentials uses: actions/setup-java@v4 with: distribution: 'temurin' java-version: 21 cache: 'maven' server-id: central server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }} gpg-passphrase: MAVEN_GPG_PASSPHRASE - name: Cache local Maven repository uses: actions/cache@v4 with: path: ~/.m2/repository key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} restore-keys: | ${{ runner.os }}-maven- - name: Check file license headers run: mvn clean license:check -Plicense --batch-mode - name: Check dependency licenses with dash tool run: | if [ "${REVISION}" = "0-SNAPSHOT" ]; then DASH_FAIL=false else DASH_FAIL=true fi mvn install -DskipTests -DskipJavadoc --batch-mode mvn license-tool:license-check -Plicense -Ddash.fail=${DASH_FAIL} -Ddash.iplab.token=${GITLAB_API_TOKEN} --projects '!org.eclipse.hawkbit:hawkbit-repository-test,!org.eclipse.hawkbit:hawkbit-dmf-rabbitmq-test' --batch-mode env: REVISION: ${{ github.event.inputs.revision }} GITLAB_API_TOKEN: ${{ secrets.GITLAB_API_TOKEN }} - name: Run build javadoc, verify (test) run: mvn verify javadoc:jar -Dadditionalparam=-Xdoclint:none -Drevision=${REVISION} --batch-mode env: REVISION: ${{ github.event.inputs.revision }} - name: Deploy run: mvn deploy -Ppublish -DskipTests -DskipJavadoc -Drevision=${REVISION} -B --batch-mode env: REVISION: ${{ github.event.inputs.revision }} MAVEN_USERNAME: ${{ secrets.CENTRAL_SONATYPE_TOKEN_USERNAME }} MAVEN_PASSWORD: ${{ secrets.CENTRAL_SONATYPE_TOKEN_PASSWORD }} MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} - name: Tag release run: | if [ "${REVISION}" != "0-SNAPSHOT" ]; then git config --global user.email "release_manager@hawkbit.eclipse.org" git config --global user.name "Eclipse Hawkbit (Release Manager)" git tag -a ${REVISION} -m "Release version ${REVISION}" git push origin ${REVISION} fi env: REVISION: ${{ github.event.inputs.revision }}