Skip to content

Publish AvM Staff Mod #32

Publish AvM Staff Mod

Publish AvM Staff Mod #32

Workflow file for this run

name: Publish Staff Mod
on:
push:
tags:
- "*"
jobs:
build:
name: Build Staff Mod
uses: ./.github/workflows/build.yml
with:
build-project: true
build-docs: true
upload-output: true
fast: true
publish:
name: Publish Staff Mod
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout repository
uses: actions/[email protected]
- name: Download Fabric jars
uses: actions/[email protected]
with:
name: fabric-jars
path: dist/fabric
- name: Download NeoForge jars
uses: actions/[email protected]
with:
name: neoforge-jars
path: dist/neoforge
- name: Fetch release tag
run: git fetch origin $GITHUB_REF:$GITHUB_REF -f
- name: Generate changelog
run: git for-each-ref $GITHUB_REF --format '%(contents)' > CHANGELOG.g.md
- name: Load java version
id: load-java-version
uses: SebRollen/[email protected]
with:
file: gradle/libs.versions.toml
field: versions.java
- name: Load mod version
id: load-mod-version
uses: SebRollen/[email protected]
with:
file: gradle/libs.versions.toml
field: versions.staff-mod
- name: Ensure git tag and mod version match
if: steps.load-mod-version.outputs.value != github.ref_name
run: |
echo "git tag '$GITHUB_REF_NAME' doesn't match mod version '${{ steps.load-mod-version.outputs.value }}'"
exit 1
- name: Publish Fabric mod to Modrinth and CurseForge
uses: Kir-Antipov/[email protected]
with:
modrinth-id: ${{ vars.MODRINTH_ID }}
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
modrinth-featured: false
curseforge-id: ${{ vars.CURSEFORGE_ID }}
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
name: Staff Mod ${{ github.ref_name }} for Fabric
version: ${{ github.ref_name }}+fabric
files: |
dist/fabric/!(*-@(dev|dev-shadow|sources|javadoc)).jar
dist/fabric/*-@(dev|dev-shadow|sources|javadoc).jar
changelog-file: CHANGELOG.g.md
game-version-filter: releases
java: ${{ steps.load-java-version.outputs.value }}
- name: Publish NeoForge mod to Modrinth and CurseForge
uses: Kir-Antipov/[email protected]
with:
modrinth-id: ${{ vars.MODRINTH_ID }}
modrinth-token: ${{ secrets.MODRINTH_TOKEN }}
modrinth-featured: false
curseforge-id: ${{ vars.CURSEFORGE_ID }}
curseforge-token: ${{ secrets.CURSEFORGE_TOKEN }}
name: Staff Mod ${{ github.ref_name }} for NeoForge
version: ${{ github.ref_name }}+neoforge
files: |
dist/neoforge/!(*-@(dev|dev-shadow|sources|javadoc)).jar
dist/neoforge/*-@(dev|dev-shadow|sources|javadoc).jar
changelog-file: CHANGELOG.g.md
game-version-filter: releases
java: ${{ steps.load-java-version.outputs.value }}
- name: Publish mods to GitHub
uses: Kir-Antipov/[email protected]
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
name: Staff Mod ${{ github.ref_name }}
files: |
dist/fabric/!(*-@(dev|sources|javadoc)).jar
dist/fabric/*-@(dev|sources|javadoc).jar
dist/neoforge/!(*-@(dev|sources|javadoc)).jar
dist/neoforge/*-@(dev|sources|javadoc).jar
changelog-file: CHANGELOG.g.md
- name: Delete build output
uses: geekyeggo/[email protected]
with:
name: |
fabric-jars
neoforge-jars
useGlob: false
failOnError: false
push-docs:
name: Push documentation
runs-on: ubuntu-latest
needs: build
env:
VERSION: ${{ github.ref_name }}
steps:
- name: Checkout repository
uses: actions/[email protected]
with:
fetch-depth: 0
ref: docs
- name: Configure git
run: |
git config user.email "[email protected]"
git config user.name "github-actions[bot]"
- name: Download Kotlin documentation
uses: actions/[email protected]
with:
name: kdoc
path: docs/kdoc/${{ github.ref_name }}
- name: Download Java documentation
uses: actions/[email protected]
with:
name: javadoc
path: docs/javadoc/${{ github.ref_name }}
- name: Update latest documentation folder (Kotlin)
run: |
cd docs/kdoc
unlink latest
ln -s $VERSION latest
- name: Update latest documentation folder (Java)
run: |
cd docs/javadoc
unlink latest
ln -s $VERSION latest
- name: Update links
run: |
sed -i "s|#CI_KDOC_PLACEHOLDER|#CI_KDOC_PLACEHOLDER\n - $VERSION: kdoc/$VERSION|g" mkdocs.yml
sed -i "s|#CI_JAVADOC_PLACEHOLDER|#CI_JAVADOC_PLACEHOLDER\n - $VERSION: javadoc/$VERSION|g" mkdocs.yml
- name: Commit documentation
run: |
git add docs
git commit -a -m "Add documentation for $VERSION"
- name: Push documentation
uses: ad-m/[email protected]
with:
branch: docs
- name: Delete documentation artifacts
uses: geekyeggo/[email protected]
with:
name: |
kdoc
javadoc
useGlob: false
failOnError: false
publish-docs:
name: Publish documentation
runs-on: ubuntu-latest
needs: push-docs
steps:
- name: Checkout repository
uses: actions/[email protected]
with:
ref: docs
- name: Configure git
run: |
git config user.email "[email protected]"
git config user.name "github-actions[bot]"
- name: Publish documentation
uses: mhausenblas/[email protected]
env:
GITHUB_TOKEN: ${{ github.token }}
REQUIREMENTS: requirements.txt