Skip to content

Use GH_TOKEN

Use GH_TOKEN #94

Workflow file for this run

name: build
on:
push:
branches: [ "main", "develop", "version/*" ]
pull_request:
branches: [ "main", "develop", "version/*" ]
workflow_dispatch:
inputs:
publish:
description: Publish to Modrinth and CurseForge
required: true
default: "false"
permissions:
contents: write
jobs:
build:
strategy:
matrix:
# Use these Java versions
java: [
17, # Current Java LTS & minimum supported by Minecraft
]
# and run on Linux
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: setup jdk ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
- name: Build with Gradle and generate dependency Graph
if: ${{github.ref == 'refs/heads/main' && github.event_name != 'pull_request'}}
uses: gradle/gradle-build-action@v2
with:
arguments: build
dependency-graph: 'generate-and-submit'
- name: Build with Gradle
if: ${{github.ref != 'refs/heads/main' || github.event_name == 'pull_request'}}
uses: gradle/gradle-build-action@v2
with:
arguments: build
- name: Prepare Changelog
run: ./gradlew -q prepareChangelog > prepared_changelog.md
- name: Capture Fabric Artifacts
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v4
with:
name: build-fabric
path: fabric/build/libs
- name: Capture Forge Artifacts
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v4
with:
name: build-forge
path: forge/build/libs
- name: Capture Changelog
if: ${{ runner.os == 'Linux' && matrix.java == '17' }} # Only upload artifacts built from latest java on one OS
uses: actions/upload-artifact@v4
with:
name: build-changelog
path: prepared_changelog.md
publish:
if: ${{ github.event.inputs.publish }}
needs:
- build
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Download Fabric artifacts
uses: actions/download-artifact@v4
with:
path: build/fabric
pattern: build-fabric
merge-multiple: true
- name: Download Forge artifacts
uses: actions/download-artifact@v4
with:
path: build/forge
pattern: build-forge
merge-multiple: true
- name: Download Changelog
uses: actions/download-artifact@v4
with:
path: .
pattern: build-changelog
- name: List build artifacts
run: ls -R build
- name: Show Changelog
run: cat build-changelog/prepared_changelog.md
- name: Get Version and Platform
id: properties
uses: christian-draeger/[email protected]
with:
path: "./gradle.properties"
properties: "version enabledPlatforms minecraftVersion"
- name: Upload Forge Releases (Curse/Modrinth/Github)
id: forge_release
if: contains(steps.properties.outputs.enabledPlatforms, 'forge')
uses: Kir-Antipov/[email protected]
with:
curseforge-id: ${{ vars.CURSE_ID }}
curseforge-token: ${{ secrets.CURSE_TOKEN }}
modrinth-id: ${{ vars.MODRINTH_ID }}
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
github-tag: "mc${{ steps.properties.outputs.minecraftVersion }}-${{ steps.properties.output.version }}"
github-commitish: "version/${{ steps.properties.outputs.minecraftVersion }}"
github-token: ${{ secrets.GH_TOKEN }}
files: ./build/forge/!(*-@(dev|sources|dev-shadow)).jar
name: "AstralBot ${{ steps.properties.outputs.version }} Forge ${{ steps.properties.output.minecraftVersion }}"
version: ${{ steps.properties.outputs.version }}
version-type: release
changelog-file: build-changelog/prepared_changelog.md
loaders: forge
game-versions: ${{ steps.properties.outputs.minecraftVersion }}
curseforge-dependencies: |
sqlite-jdbc(optional)
kotlin-for-forge(required)
modrinth-dependencies: |
sqlite-jdbc(optional)
kotlin-for-forge(required)
- name: Upload Fabric Releases (Curse/Modrinth/Github)
id: fabric_release
if: contains(steps.properties.outputs.enabledPlatforms, 'fabric')
uses: Kir-Antipov/[email protected]
with:
curseforge-id: ${{ vars.CURSE_ID }}
curseforge-token: ${{ secrets.CURSE_TOKEN }}
modrinth-id: ${{ vars.MODRINTH_ID }}
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
github-tag: "mc${{ steps.properties.outputs.minecraftVersion }}-${{ steps.properties.output.version }}"
github-commitish: "version/${{ steps.properties.outputs.minecraftVersion }}"
github-token: ${{ secrets.GH_TOKEN }}
files: ./build/fabric/!(*-@(dev|sources|dev-shadow)).jar
name: "AstralBot ${{ steps.properties.outputs.version }} Fabric ${{ steps.properties.output.minecraftVersion }}"
version: ${{ steps.properties.outputs.version }}
version-type: release
changelog-file: build-changelog/prepared_changelog.md
loaders: fabric
game-versions: ${{ steps.properties.outputs.minecraftVersion }}
curseforge-dependencies: |
fabric-api(required)
fabric-language-kotlin(required)
sqlite-jdbc(optional)
ledger(optional)
modrinth-dependencies: |
fabric-api(required)
fabric-language-kotlin(required)
sqlite-jdbc(optional)
ledger(optional)