on: workflow_dispatch: push: branches: - master name: release-please jobs: release-please: runs-on: ubuntu-latest outputs: release_created: ${{ steps.release.outputs.release_created }} upload_url: ${{ steps.release.outputs.upload_url }} # https://github.com/google-github-actions/release-please-action in case more config is needed steps: - uses: google-github-actions/release-please-action@v3 id: release with: command: manifest token: ${{ secrets.PAT }} # See how to configure file https://github.com/googleapis/release-please/blob/main/docs/manifest-releaser.md # See output info at https://github.com/google-github-actions/release-please-action#configuration for variables # Possibly optimise this by building and then passing the folder across to these stages release: strategy: fail-fast: false matrix: release-task: [curseforge, discordupload, modrinth] needs: release-please runs-on: ubuntu-latest if: ${{ needs.release-please.outputs.release_created }} steps: - uses: actions/checkout@v3 - name: Cache Gradle packages uses: actions/cache@v3 with: path: ~/.gradle/caches key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} restore-keys: ${{ runner.os }}-gradle - name: Set up JDK 17 uses: actions/setup-java@v3 with: distribution: zulu java-version: 17 - name: Download MC assets run: ./gradlew downloadAssets || ./gradlew downloadAssets || (sleep 30s && ./gradlew downloadAssets) - name: Run DataGen run: ./gradlew runData - name: Build and publish (release) env: CURSE_API: ${{ secrets.CURSE_API }} DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} IS_RELEASE: true run: | # Build ./gradlew build ${{ matrix.release-task }}