TeaCon 甲辰 | Guide Me To | To boldly go #2
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: 'TeaCon 甲辰 | Guide Me To | To boldly go' | |
on: | |
push: | |
paths: | |
- '.github/workflows/mod-team-guide-me-to.yaml' | |
- 'mods/team-guide-me-to/HEAD' | |
workflow_dispatch: | |
jobs: | |
publish: | |
name: 'Build Guide Me To' | |
environment: Build | |
runs-on: ubuntu-22.04 | |
env: | |
BILUOCHUN_URL: https://biluochun.teacon.cn | |
CONTEST_SEQ: '3' | |
CONTEST_TITLE: 'TeaCon 甲辰' | |
TEAM_ID: 'guide-me-to' | |
TEAM_SEQ: '334' | |
steps: | |
- name: Checkout Build Environment | |
uses: actions/checkout@v4 | |
# Setup Microsoft JDK build. This should be the one used by official Minecraft Launcher. | |
- name: Setup JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'microsoft' | |
java-version: '21' | |
- name: Apply Cache | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches | |
~/.gradle/wrapper | |
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }} | |
restore-keys: | |
${{ runner.os }}-gradle- | |
# We cannot use action/checkout@v2 because it does not support non-GitHub repositroy. | |
# The clone logic used here is adapted from https://stackoverflow.com/a/3489576 for | |
# sake of a faster build. | |
- name: 'Checkout Repository for Build Guide Me To' | |
shell: bash | |
run: | | |
mkdir -p build/repo | |
cd build/repo | |
git init | |
git remote add origin `cat ../../mods/team-guide-me-to/remote` | |
git fetch --depth=1 origin `cat ../../mods/team-guide-me-to/HEAD` | |
git reset --hard `cat ../../mods/team-guide-me-to/HEAD` | |
git submodule init | |
git submodule update | |
[ -f build.gradle ] || [ -f build.gradle.kts ] || { echo '::error::Git 仓库检出疑似失败,请检查碧螺春中分支名是否正确!'; exit 1; } | |
- name: Validate Gradle Wrapper | |
id: gradle_wrapper_check | |
continue-on-error: true | |
uses: gradle/actions/wrapper-validation@v3 | |
with: | |
min-wrapper-count: 1 | |
- name: Artifact Building | |
id: building | |
shell: bash | |
env: | |
GRADLE_WRAPPER_CHECK: ${{ steps.gradle_wrapper_check.outcome == 'success' }} | |
GITHUB_USERNAME: 'teacon-bot[bot]' | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
run: cd build && ./build.sh | |
# We need at least Python 3.11 to ensure existence of tomllib (see PEP 680) | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.11' | |
- name: Mod Description File Validation | |
id: description | |
shell: bash | |
run: ./build/mods_toml.py | |
- name: Prepare for Dedicated Server Launching Test | |
id: dedicated_server_launching_setup | |
shell: bash | |
run: cd build && ./pre-server-test.sh | |
- name: Dedicated Server Launching Test | |
id: dedicated_server_launching | |
uses: teaconmc/dedicated-launch-test@1.21-neoforge | |
with: | |
extra: build/all-deps.json | |
mod: ${{ steps.building.outputs.artifact }} | |
- name: Publish | |
id: publication | |
shell: bash | |
env: | |
CONTEST_ID: JC | |
BILUOCHUN_TOKEN: ${{ secrets.BILUOCHUN_TOKEN }} | |
S3_ENDPOINT: ${{ secrets.S3_ENDPOINT }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.S3_ACCESS_KEY }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.S3_SECRET_KEY }} | |
# https://github.com/aws/aws-cli/issues/5623 | |
AWS_EC2_METADATA_DISABLED: 'true' | |
run: cd build && ./publish.sh | |
- name: Failure notification | |
id: failure_notification | |
if: failure() | |
shell: bash | |
env: | |
BILUOCHUN_TOKEN: ${{ secrets.BILUOCHUN_TOKEN }} | |
run: cd build && ./failure-callback.sh | |
# Change this counter to trigger all mod rebuild |