diff options
| author | Fabian Mastenbroek <mail.fabianm@gmail.com> | 2023-01-09 22:04:46 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-01-09 22:04:46 +0100 |
| commit | b68af696cc6a10df356dee6b347d1b607707035a (patch) | |
| tree | 54f52705ee9c6d56e7c190be70a74a7eb4a54f5b /.github/workflows/publish.yml | |
| parent | 3542350909b1213240e5097a1793a7c0733f6196 (diff) | |
| parent | 8d94287bdc5af03485ed85fee1aab7809dc53566 (diff) | |
merge: Update GitHub Actions workflows (#123)
This pull request updates the GitHub Actions workflows used in the OpenDC repository,
addressing (impending) deprecations, broken caching and publishing steps.
## Implementation Notes :hammer_and_pick:
* Fix GH Actions workflow for publishing Docker images
* Enable Gradle caching on master branch
* Pin version of GitHub Actions runner images
* Publish to Maven Central in publish workflow
* Upload distributions after CI build
Diffstat (limited to '.github/workflows/publish.yml')
| -rw-r--r-- | .github/workflows/publish.yml | 76 |
1 files changed, 51 insertions, 25 deletions
diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 4f4357d0..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,19 +7,18 @@ on: jobs: push-simulator: - name: Push Simulator - runs-on: ubuntu-latest + 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 - TAGS="${DOCKER_IMAGE}:${VERSION}" - echo ::set-output name=tags::${TAGS} + echo "tags=${DOCKER_IMAGE}:${VERSION}" >> $GITHUB_OUTPUT - name: Login to DockerHub uses: docker/login-action@v2 with: @@ -32,19 +32,18 @@ jobs: repository: atlargeresearch/opendc tags: ${{ steps.prep.outputs.tags }} push-api: - name: Push API - runs-on: ubuntu-latest + 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 - TAGS="${DOCKER_IMAGE}:${VERSION}" - echo ::set-output name=tags::${TAGS} + echo "tags=${DOCKER_IMAGE}:${VERSION}" >> $GITHUB_OUTPUT - name: Login to DockerHub uses: docker/login-action@v2 with: @@ -54,23 +53,21 @@ jobs: uses: docker/build-push-action@v3 with: push: true - file: opendc-web/opendc-web-api/Dockerfile - repository: atlargeresearch/opendc-web-api + file: opendc-web/opendc-web-server/Dockerfile tags: ${{ steps.prep.outputs.tags }} push-ui: - name: Push UI - runs-on: ubuntu-latest + 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 - TAGS="${DOCKER_IMAGE}:${VERSION}" - echo ::set-output name=tags::${TAGS} + echo "tags=${DOCKER_IMAGE}:${VERSION}" >> $GITHUB_OUTPUT - name: Login to DockerHub uses: docker/login-action@v2 with: @@ -81,5 +78,34 @@ jobs: with: push: true context: opendc-web/opendc-web-ui - repository: atlargeresearch/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 }} |
