# Release a gradle project # Publish to maven, and create/update name: 🐘 Gradle | Publish Project on: push: tags: - 'plugins/*/v*.*.*' jobs: determine_values: name: 🔎 Determine Values runs-on: ubuntu-22.04 outputs: category: ${{ steps.determine_values.outputs.category }} version: ${{ steps.determine_values.outputs.version }} project: ${{ steps.determine_values.outputs.project }} steps: - name: 🔎 Determine Project Values id: determine_values env: TAG: ${{ github.ref_name }} run: | category=${TAG%%/*} echo "category=${category}" echo "category=${category}" >> $GITHUB_OUTPUT version=${TAG##*/} echo "version=${version}" echo "version=${version}" >> $GITHUB_OUTPUT project=${TAG#*/} project=${project%/*} echo "project=${project}" echo "project=${project}" >> $GITHUB_OUTPUT publish_gradle: name: 🐘 Publish Gradle runs-on: ubuntu-22.04 needs: determine_values permissions: contents: write packages: write steps: - name: 🚩 Checkout Repo uses: actions/checkout@v4 - name: ☕ Setup Java uses: actions/setup-java@v3 with: java-version: '21' distribution: 'temurin' - name: 🐘 Setup Gradle uses: gradle/actions/setup-gradle@v3 # TODO: Bump version if not already done - name: 🐘 Gradle Build run: CI=true ./gradlew ${{needs.determine_values.outputs.category}}:${{needs.determine_values.outputs.project}}:build --scan - name: 🗃️ Create/Update Release uses: softprops/action-gh-release@v1 with: tag_name: ${{ needs.determine_values.outputs.category }}/${{ needs.determine_values.outputs.project }}/${{ needs.determine_values.outputs.version }} files: '${{needs.determine_values.outputs.category}}/${{needs.determine_values.outputs.project}}/build/libs/*' - name: 🐘 Gradle Publish run: CI=true GITHUB_TOKEN=${{secrets.GITHUB_TOKEN}} ./gradlew ${{needs.determine_values.outputs.category}}:${{needs.determine_values.outputs.project}}:publish --scan