From 27bbfd36f13c93635c1b02187f3d4ee64876aef7 Mon Sep 17 00:00:00 2001 From: Johannes Wienke Date: Wed, 17 Jan 2024 11:15:21 +0100 Subject: [PATCH] ci: test the publish workflow in PRs if changed --- .github/workflows/publish.yml | 51 +++++++++++++++++++++++------------ 1 file changed, 34 insertions(+), 17 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 732cea669a..7b91562153 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -5,6 +5,10 @@ on: tags: - '[0-9]+.[0-9]+.[0-9]+*' workflow_dispatch: + # Test this workflow in PRs in case it changed + pull_request: + paths: + - .github/workflows/publish.yml jobs: newRelease: @@ -27,15 +31,21 @@ jobs: - name: Set up Gradle uses: gradle/gradle-build-action@v2 - name: Use tag as version + # Set a production version only when running on tags + if: ${{ github.event_name != 'pull_request' }} run: echo "${GITHUB_REF#refs/*/}" > version.txt + - name: Use dummy version for PR + # Set a dummy version that doesn't hurt if accidentally released + if: ${{ github.event_name == 'pull_request' }} + run: echo "0.0.1-SNAPSHOT" > version.txt # Perform the build in a separate call to avoid trying to publish # something where the build already failed partially. This could happen # due to the use of the --continue flag in the publish step. - - name: Build - run: >- - ./gradlew --build-cache build - --info - -PciBuild=true + # - name: Build + # run: >- + # ./gradlew --build-cache build + # --info + # -PciBuild=true - name: Publish # We run gradle with --info to debug the ongoing random publishing # issues. Gradle would log upload retries on info level: @@ -46,20 +56,24 @@ jobs: # Usually, the artifact that cannot be uploaded is strangely already # in the repo. As the result, by ignoring the exception, we should end # up with a working release in most cases. - run: >- - ./gradlew --build-cache publish - --continue - --info - -PciBuild=true - -Partifacts.itemis.cloud.user=${{ secrets.ARTIFACTS_ITEMIS_CLOUD_USER }} - -Partifacts.itemis.cloud.pw=${{ secrets.ARTIFACTS_ITEMIS_CLOUD_PW }} - -Pgpr.user=${{ github.actor }} - -Pgpr.key=${{ secrets.GITHUB_TOKEN }} - -Pgpr.universalkey=${{ secrets.GHP_UNIVERSAL_PUBLISH_TOKEN }} - -Porg.gradle.internal.http.connectionTimeout=180000 - -Porg.gradle.internal.http.socketTimeout=180000 + run: |- + if [[ "$IS_PR" = 'false' ]]; then + TARGET=publish + fi + echo ./gradlew --build-cache $TARGET \ + --continue \ + --info \ + -PciBuild=true \ + -Partifacts.itemis.cloud.user=${{ secrets.ARTIFACTS_ITEMIS_CLOUD_USER }} \ + -Partifacts.itemis.cloud.pw=${{ secrets.ARTIFACTS_ITEMIS_CLOUD_PW }} \ + -Pgpr.user=${{ github.actor }} \ + -Pgpr.key=${{ secrets.GITHUB_TOKEN }} \ + -Pgpr.universalkey=${{ secrets.GHP_UNIVERSAL_PUBLISH_TOKEN }} \ + -Porg.gradle.internal.http.connectionTimeout=180000 \ + -Porg.gradle.internal.http.socketTimeout=180000 env: NODE_AUTH_TOKEN: ${{ secrets.ARTIFACTS_ITEMIS_CLOUD_NPM_TOKEN }} + IS_PR: ${{ github.event_name == 'pull_request' }} - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx @@ -67,6 +81,9 @@ jobs: with: platforms: linux/amd64,linux/arm64 - name: Build and Publish Docker + # As publishing is currently baked into the scripts, we can't test this + # in PRs + if: ${{ github.event_name != 'pull_request' }} env: DOCKER_HUB_USER: ${{ secrets.DOCKER_HUB_USER }} DOCKER_HUB_KEY: ${{ secrets.DOCKER_HUB_KEY }}