diff --git a/.github/workflows/build-test-deploy.yml b/.github/workflows/build-test-deploy.yml index f0177145..5d63e20d 100644 --- a/.github/workflows/build-test-deploy.yml +++ b/.github/workflows/build-test-deploy.yml @@ -37,6 +37,22 @@ jobs: uses: gradle/gradle-build-action@v2 with: arguments: assemble --scan + - name: Upload miner jar file + uses: actions/upload-artifact@v3 + with: + name: miner-jar + path: | + miner/build/libs/miner-shaded.jar + if-no-files-found: error + retention-days: 14 + - name: Upload viewer jar file + uses: actions/upload-artifact@v3 + with: + name: viewer-jar + path: | + viewer/build/libs/viewer-*.jar + if-no-files-found: error + retention-days: 14 test-miner: name: Run miner tests @@ -176,9 +192,6 @@ jobs: run: chmod +x gradlew - name: Push branch/tag on Docker Hub run: ./gradlew :miner:jib -PdockerUsername=${{ secrets.DOCKER_USERNAME }} -PdockerPassword=${{ secrets.DOCKER_TOKEN }} -Djib.to.image="${DOCKER_MINER_IMAGE_NAME}:${GITHUB_REF##*/}" - - name: Push latest on Docker Hub - if: success() && github.ref == 'refs/heads/main' - run: ./gradlew :miner:jib -PdockerUsername=${{ secrets.DOCKER_USERNAME }} -PdockerPassword=${{ secrets.DOCKER_TOKEN }} -Djib.to.image="${DOCKER_MINER_IMAGE_NAME}:latest" publish-viewer: name: Publish Viewer on DockerHub @@ -200,6 +213,3 @@ jobs: run: chmod +x gradlew - name: Push branch/tag on Docker Hub run: ./gradlew :viewer:jib -PdockerUsername=${{ secrets.DOCKER_USERNAME }} -PdockerPassword=${{ secrets.DOCKER_TOKEN }} -Djib.to.image="${DOCKER_VIEWER_IMAGE_NAME}:${GITHUB_REF##*/}" - - name: Push latest on Docker Hub - if: success() && github.ref == 'refs/heads/main' - run: ./gradlew :viewer:jib -PdockerUsername=${{ secrets.DOCKER_USERNAME }} -PdockerPassword=${{ secrets.DOCKER_TOKEN }} -Djib.to.image="${DOCKER_VIEWER_IMAGE_NAME}:latest" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..4723eae4 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,75 @@ +name: Release + +on: + push: + tags: + - "*.*.*" + +env: + APP_JAVA_VERSION: 17 + DOCKER_MINER_IMAGE_NAME: mrcraftcod/channel-points-miner + DOCKER_VIEWER_IMAGE_NAME: mrcraftcod/channel-points-miner-viewer + +jobs: + publish-docker-miner: + name: Publish Miner on DockerHub + runs-on: ubuntu-latest + concurrency: miner_docker + steps: + - name: Checkout source + uses: actions/checkout@v3 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ env.APP_JAVA_VERSION }} + - name: Set gradle permissions + run: chmod +x gradlew + - name: Push latest on Docker Hub + run: ./gradlew :miner:jib -PdockerUsername=${{ secrets.DOCKER_USERNAME }} -PdockerPassword=${{ secrets.DOCKER_TOKEN }} -Djib.to.image="${DOCKER_MINER_IMAGE_NAME}:latest" + + publish-docker-viewer: + name: Publish Viewer on DockerHub + runs-on: ubuntu-latest + concurrency: viewer_docker + steps: + - name: Checkout source + uses: actions/checkout@v3 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ env.APP_JAVA_VERSION }} + - name: Set gradle permissions + run: chmod +x gradlew + - name: Push latest on Docker Hub + run: ./gradlew :viewer:jib -PdockerUsername=${{ secrets.DOCKER_USERNAME }} -PdockerPassword=${{ secrets.DOCKER_TOKEN }} -Djib.to.image="${DOCKER_VIEWER_IMAGE_NAME}:latest" + + publish-release: + name: Publish Miner on DockerHub + runs-on: ubuntu-latest + concurrency: miner_docker + permissions: + contents: write + steps: + - name: Checkout source + uses: actions/checkout@v3 + - name: Set up JDK + uses: actions/setup-java@v3 + with: + distribution: 'temurin' + java-version: ${{ env.APP_JAVA_VERSION }} + - name: Set gradle permissions + run: chmod +x gradlew + - name: Build project + uses: gradle/gradle-build-action@v2 + with: + arguments: assemble --scan + - name: Release + uses: softprops/action-gh-release@v1 + with: + fail_on_unmatched_files: false + generate_release_notes: true + files: | + miner/build/libs/*-shaded.jar + viewer/build/libs/viewer-*.jar