Files
llamamod/.gitea/workflows/release.yml
T

62 lines
2.1 KiB
YAML

# Builds and publishes a release when a version tag is pushed:
# git tag v0.2.1 && git push origin v0.2.1
# The release gets the four packages (full/launcher x Windows/Linux), SHA256SUMS.txt and the
# matching CHANGELOG.md section as its text. Tests that need the game CD skip themselves here.
#
# Needs: Gitea Actions enabled and a runner with the label "ubuntu-latest" (act_runner).
# The built-in token is used; if it may not create releases on your instance, add a repository
# secret RELEASE_TOKEN (a token with write access to the repository).
name: release
on:
push:
tags:
- 'v*'
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: JDK 25 (toolchain) and 21 (runs Gradle)
uses: actions/setup-java@v4
with:
distribution: temurin
java-version: |
25
21
- name: Version from the tag
run: |
V="${GITHUB_REF_NAME#v}"
echo "VERSION=$V" >> "$GITHUB_ENV"
python3 tools/release/changelog_section.py "$V" > release-notes.md
echo "Release $V"; head -5 release-notes.md
- name: Build, test and package
run: |
./gradlew --no-daemon \
-Porg.gradle.java.installations.fromEnv=JAVA_HOME_25_X64 \
-Porg.gradle.java.installations.auto-download=false \
-PreleaseVersion="$VERSION" \
build packageAll
- name: Checksums
run: |
cd build/dist
ls -la
sha256sum LlamaMod-"$VERSION"-*.zip LlamaMod-"$VERSION"-*.tar.gz > SHA256SUMS.txt
cat SHA256SUMS.txt
- name: Publish
env:
GITEA_URL: ${{ github.server_url }}
GITEA_REPO: ${{ github.repository }}
GITEA_TOKEN: ${{ secrets.RELEASE_TOKEN || github.token }}
run: |
python3 tools/release/publish_gitea.py \
--tag "$GITHUB_REF_NAME" --title "LlamaMod $VERSION" --notes release-notes.md \
build/dist/LlamaMod-"$VERSION"-*.zip build/dist/LlamaMod-"$VERSION"-*.tar.gz \
build/dist/SHA256SUMS.txt