diff options
| author | Fabian Mastenbroek <fmastenbroek@meta.com> | 2023-01-06 15:05:06 +0100 |
|---|---|---|
| committer | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2023-01-07 21:55:56 +0000 |
| commit | 7e97b34f96cbaab14466d73a8179a5e6d98449d5 (patch) | |
| tree | c2202c9fcfe3238c637025001dd0c91facfc5000 /.github/workflows/publish.yml | |
| parent | 0c0a823fec1e67be6f9e72c0c790636f364f8b23 (diff) | |
ci: Publish to Maven Central in publish workflow
This change updates the release and publish workflows in GitHub Actions
to ensure that we only publish the artifacts to Maven Central once the
release on GitHub is published.
When a version tag is pushed to GitHub, only a draft release will be
created containing the right artifacts.
Diffstat (limited to '.github/workflows/publish.yml')
| -rw-r--r-- | .github/workflows/publish.yml | 57 |
1 files changed, 44 insertions, 13 deletions
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4a0f6cde..ce25802f 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,4 +1,5 @@ -name: Publish Docker image +# Workflow for publishing the artifacts once a GitHub release is published +name: Publish on: release: @@ -6,16 +7,16 @@ on: jobs: push-simulator: - name: Push Simulator + name: Push Simulator to DockerHub runs-on: ubuntu-22.04 steps: - name: Prepare id: prep run: | DOCKER_IMAGE=atlargeresearch/opendc - VERSION=edge - if [[ $GITHUB_REF == refs/tags/* ]]; then - VERSION=${GITHUB_REF#refs/tags/} + VERSION=3.0-SNAPSHOT + if [[ $GITHUB_REF == refs/tags/v* ]]; then + VERSION=${GITHUB_REF#refs/tags/v} fi echo "tags=${DOCKER_IMAGE}:${VERSION}" >> $GITHUB_OUTPUT - name: Login to DockerHub @@ -31,16 +32,16 @@ jobs: repository: atlargeresearch/opendc tags: ${{ steps.prep.outputs.tags }} push-api: - name: Push API + name: Push API to DockerHub runs-on: ubuntu-22.04 steps: - name: Prepare id: prep run: | DOCKER_IMAGE=atlargeresearch/opendc-web-api - VERSION=edge - if [[ $GITHUB_REF == refs/tags/* ]]; then - VERSION=${GITHUB_REF#refs/tags/} + VERSION=3.0-SNAPSHOT + if [[ $GITHUB_REF == refs/tags/v* ]]; then + VERSION=${GITHUB_REF#refs/tags/v} fi echo "tags=${DOCKER_IMAGE}:${VERSION}" >> $GITHUB_OUTPUT - name: Login to DockerHub @@ -55,16 +56,16 @@ jobs: file: opendc-web/opendc-web-server/Dockerfile tags: ${{ steps.prep.outputs.tags }} push-ui: - name: Push UI + name: Push UI to DockerHub runs-on: ubuntu-22.04 steps: - name: Prepare id: prep run: | DOCKER_IMAGE=atlargeresearch/opendc-web-ui - VERSION=edge - if [[ $GITHUB_REF == refs/tags/* ]]; then - VERSION=${GITHUB_REF#refs/tags/} + VERSION=3.0-SNAPSHOT + if [[ $GITHUB_REF == refs/tags/v* ]]; then + VERSION=${GITHUB_REF#refs/tags/v} fi echo "tags=${DOCKER_IMAGE}:${VERSION}" >> $GITHUB_OUTPUT - name: Login to DockerHub @@ -78,3 +79,33 @@ jobs: push: true context: opendc-web/opendc-web-ui tags: ${{ steps.prep.outputs.tags }} + publish-maven-central: + name: Publish to Maven Central + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - name: Validate Gradle wrapper + uses: gradle/wrapper-validation-action@v1 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'zulu' + java-version: 17 + - name: Prepare + id: prep + run: | + VERSION=3.0-SNAPSHOT + if [[ $GITHUB_REF == refs/tags/v* ]]; then + VERSION=${GITHUB_REF#refs/tags/v} + fi + echo "version=${VERSION}" >> $GITHUB_OUTPUT + - name: Publish with Gradle + uses: gradle/gradle-build-action@v2 + with: + arguments: publish -Pversion="${{ steps.prep.outputs.version }}" + env: + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.GPG_PRIVATE_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.GPG_PASSPHRASE }} + ORG_GRADLE_PROJECT_ossrhUsername: ${{ secrets.OSSRH_USERNAME }} + ORG_GRADLE_PROJECT_ossrhPassword: ${{ secrets.OSSRH_PASSWORD }} |
