add ping to notify people if a new build is available #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Publish Release | |
env: | |
NEXT_BUILD_NUMBER: ${{ vars.NEXT_BUILD_NUMBER }} | |
BUILD_INITIAL_VALUE: 1 | |
on: | |
push: | |
branches: | |
- main | |
workflow_dispatch: | |
inputs: | |
logLevel: | |
description: 'Log Level' | |
required: false | |
default: 'warning' | |
jobs: | |
publish: | |
runs-on: ubuntu-latest | |
if: "!contains(github.event.commits[0].message, '[ci-skip]')" | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Validate Gradle Wrapper | |
uses: gradle/actions/wrapper-validation@v3 | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'temurin' | |
java-version: 21 | |
check-latest: true | |
- name: Import Gradle Version Catalog | |
uses: SebRollen/toml-action@v1.2.0 | |
id: minecraft_version | |
with: | |
file: gradle/libs.versions.toml | |
field: versions.minecraft | |
- uses: actions/github-script@v6 | |
name: Prepare build number if it doesn't exist | |
with: | |
debug: true | |
github-token: ${{ secrets.GH_TOKEN }} | |
script: | | |
const { owner, repo } = context.repo; | |
if (process.env.NEXT_BUILD_NUMBER === undefined || process.env.NEXT_BUILD_NUMBER === "") { | |
core.info(`Could not find a NEXT_BUILD_NUMBER env variable. Creating a new one with value ${process.env.BUILD_INITIAL_VALUE}.`); | |
const { status, data } = await github.request('POST /repos/{owner}/{repo}/actions/variables', { | |
owner: owner, | |
repo: repo, | |
name: "NEXT_BUILD_NUMBER", | |
value: process.env.BUILD_INITIAL_VALUE, | |
headers: { | |
'X-GitHub-Api-Version': '2022-11-28' | |
} | |
}).catch(err => err.response); | |
//const { status, data } = await github.rest.actions.createRepoVariable(owner, repo, "NEXT_BUILD_NUMBER", process.env.BUILD_INITIAL_VALUE); | |
core.debug(JSON.stringify(data, null, 2)); | |
if (data?.message != undefined) { | |
return core.setFailed(`Failed to update configuration variable NEXT_BUILD_NUMBER with new value of '${process.env.BUILD_INITIAL_VALUE}' for reason ${data.message}`); | |
} | |
return core.exportVariable("NEXT_BUILD_NUMBER", process.env.BUILD_INITIAL_VALUE); | |
} else if (process.env.NEXT_BUILD_NUMBER.split('.').length > 1 || Number.isNaN(Number.parseInt(process.env.NEXT_BUILD_NUMBER))) { | |
return core.setFailed(`NEXT_BUILD_NUMBER variable has invalid value "${process.env.NEXT_BUILD_NUMBER}", failing build.`); | |
} | |
return core.exportVariable("NEXT_BUILD_NUMBER", process.env.NEXT_BUILD_NUMBER); | |
- name: Import gradle properties | |
id: properties | |
shell: bash | |
run: cat gradle.properties >> $GITHUB_ENV | |
- name: Make gradlew executable | |
run: chmod +x ./gradlew | |
- name: Assemble | |
run: | |
./gradlew assemble --stacktrace | |
- name: Publish | |
env: | |
HANGAR_KEY: ${{ secrets.HANGAR_KEY }} | |
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }} | |
run: ./gradlew modrinth --stacktrace | |
- name: Notify Discord | |
uses: granny/actions-status-discord@v1.14.0.pre-0 | |
if: success() | |
with: | |
webhook: ${{ secrets.CHATMANAGER_WEBHOOK }} | |
noprefix: true | |
title: New build of ChatManager is ready! | |
content: "<@&888222546573537280>" | |
description: | | |
Version ${{ steps.minecraft_version.outputs.value }} build ${{ env.NEXT_BUILD_NUMBER }} | |
Click [here](https://modrinth.com/plugin/chatmanager/version/${{ steps.minecraft_version.outputs.value }}-${{ env.NEXT_BUILD_NUMBER }}) to download! | |
- name: Notify Discord | |
uses: granny/actions-status-discord@v1.14.0.pre-0 | |
if: ${{ failure() }} | |
with: | |
webhook: ${{ secrets.CHATMANAGER_WEBHOOK }} | |
noprefix: true | |
title: Build Failure! | |
color: 0xff0000 | |
description: | | |
Version ${{ steps.minecraft_version.outputs.value }} build ${{ env.NEXT_BUILD_NUMBER }} | |
Click [here](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}) to view the run! | |
- uses: actions/github-script@v6 | |
name: Increment Build Number | |
if: success() | |
with: | |
debug: true | |
github-token: ${{ secrets.GH_TOKEN }} | |
script: | | |
const { owner, repo } = context.repo; | |
const value = '' + (${{ env.NEXT_BUILD_NUMBER }} + 1); | |
core.info(`attempting to update variable 'NEXT_BUILD_NUMBER' to '${value}'.`); | |
const { status, data } = await github.request('PATCH /repos/{owner}/{repo}/actions/variables/{name}', { | |
owner: owner, | |
repo: repo, | |
name: "NEXT_BUILD_NUMBER", | |
value: value, | |
headers: { | |
'X-GitHub-Api-Version': '2022-11-28' | |
} | |
}).catch(err => err.response); | |
//const { data } = await github.rest.actions.updateRepoVariable(owner, repo, "NEXT_BUILD_NUMBER", value) | |
core.debug(JSON.stringify(data, null, 2)); | |
if (data?.message != undefined) { | |
return core.setFailed(`Failed to update configuration variable NEXT_BUILD_NUMBER with new value of '${value}'`); | |
} |