Skip to content

Commit

Permalink
Prepare for auto publishing
Browse files Browse the repository at this point in the history
  • Loading branch information
Erdragh committed Feb 21, 2024
1 parent 2ac02b8 commit 13c04d6
Show file tree
Hide file tree
Showing 3 changed files with 157 additions and 8 deletions.
128 changes: 120 additions & 8 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: build
on:
push:
branches: [ "main", "develop" ]
branches: [ "main", "develop", "version/*" ]
pull_request:
branches: [ "main", "develop" ]
branches: [ "main", "develop", "version/*" ]

permissions:
contents: write
Expand All @@ -17,7 +17,7 @@ jobs:
17, # Current Java LTS & minimum supported by Minecraft
]
# and run on Linux
os: [ubuntu-latest]
os: [ ubuntu-latest ]

runs-on: ${{ matrix.os }}
steps:
Expand All @@ -43,15 +43,127 @@ jobs:
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@v3
uses: actions/upload-artifact@v4
with:
name: Fabric Artifacts
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@v3
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: Changelog
path: prepared_changelog.md
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: prepared_changelog.md
pattern: Changelog

- name: List build artifacts
run: ls -R fabric forge
- name: Show Changelog
run: cat prepared_changelog.md

- name: Get Version and Platform
id: properties
uses: christian-draeger/[email protected]
with:
name: Forge Artifacts
path: forge/build/libs
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.GITHUB_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: prepared_changelog.md
loaders: forge
game-versions: ${{ steps.properties.outputs.minecraftVersion }}
version-resolver: exact

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.GITHUB_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: prepared_changelog.md
loaders: fabric
game-versions: ${{ steps.properties.outputs.minecraftVersion }}
version-resolver: exact

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)
30 changes: 30 additions & 0 deletions Changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# 1.2.0
- Unlink other Discord users with permissions
- Customizable text for basically anything
- `/headpat` command
- More graceful shutdown
- `/link` as a Minecraft command for people who want to be linked but are already whitelisted by another way
- Exception handling for commands server side, resulting in less commands that don't get a response

# 1.1.0
- Management Commands:
- `/tps`
- `/usage`
- `/stop`
- `/uptime`
- Stop Minecraft usernames being formatted as Markdown on Discord
- Rework enabled commands config

# 1.0.2
- Solve Compatibility issue with [GML](https://modrinth.com/mod/gml) on Forge
- Fix empty whitelist Database handling

# 1.0.1
- Config option to disable `/unlink`
- Async bot startup
- Make `/reload` command remove no longer registered commands
- Update dependencies
- Make SQLite driver an external dependency, allowing compatibility with [Ledger](https://modrinth.com/mod/ledger)

# 1.0.0
Initial Release
7 changes: 7 additions & 0 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
import dev.architectury.plugin.ArchitectPluginExtension
import net.fabricmc.loom.api.LoomGradleExtensionAPI
import net.fabricmc.loom.task.RemapJarTask
import java.nio.charset.StandardCharsets

plugins {
// This is an Architectury repository, as such the relevant plugins are needed
Expand Down Expand Up @@ -218,4 +219,10 @@ subprojects {

kotlin {
jvmToolchain(17)
}

tasks.create("prepareChangelog") {
var changelog = File("Changelog.md").readText(StandardCharsets.UTF_8)
changelog = changelog.replace(Regex("[^^](#(#|\\n|.)+)|(^#.+)"), "")
println(changelog.trim())
}

0 comments on commit 13c04d6

Please sign in to comment.