summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authorFabian Mastenbroek <fmastenbroek@meta.com>2023-01-06 15:05:06 +0100
committerFabian Mastenbroek <mail.fabianm@gmail.com>2023-01-07 21:55:56 +0000
commit7e97b34f96cbaab14466d73a8179a5e6d98449d5 (patch)
treec2202c9fcfe3238c637025001dd0c91facfc5000 /.github/workflows
parent0c0a823fec1e67be6f9e72c0c790636f364f8b23 (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')
-rw-r--r--.github/workflows/publish.yml57
-rw-r--r--.github/workflows/release.yml8
2 files changed, 46 insertions, 19 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 }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d8492262..711a0685 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,3 +1,4 @@
+# Workflow for creating a draft release once a new tag is pushed to GitHub
name: Release
on:
@@ -21,12 +22,7 @@ jobs:
- name: Publish with Gradle
uses: gradle/gradle-build-action@v2
with:
- arguments: publish
- 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 }}
+ arguments: assembleDist
- name: Create Release
uses: softprops/action-gh-release@v1
with: