Skip to content

Build Nightly

Build Nightly #123

Workflow file for this run

name: Build Nightly
on:
schedule:
- cron: "0 22 * * *"
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout KasugaLib Repository
uses: actions/checkout@v4
with:
repository: 'KasugaLibGroup/KasugaLib'
ref: '1.19.2-create'
path: 'kasugalib'
submodules: true
- name: Checkout KuaYue Repository
uses: actions/checkout@v4
with:
repository: 'KasugaLibGroup/NeoKuaYue'
ref: 'master'
path: 'kuayue'
submodules: true
- name: Setup Java
uses: actions/[email protected]
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0
with:
gradle-version: "7.5.1"
- name: Setup Node.js environment
uses: actions/[email protected]
with:
node-version: "22.x"
- name: Set UTC+8 Asia/Shanghai TimeZone
run: |
TIME="$(TZ='Asia/Shanghai' date +'%Y-%m-%d %H:%M:%S')"
echo "Build At: $TIME" >> $GITHUB_STEP_SUMMARY
- name: Build KasugaLib Javascript Runtime
run: |
cd ./kasugalib
git submodule update --remote --recursive
rm ./src/generated/resources/script/ -r -f
yarn
yarn build
cd ..
- name: Build KuaYue Javascript Code Pack
run: |
cd ./kuayue
git submodule update --remote --recursive
rm ./src/generated/resources/script/ -r -f
corepack enable
cd ./scripts/
yarn install
yarn tsx ./build.ts
corepack disable
cd ..
- name: Build
env:
KUAYUE_TEAM_GITEA_ACCESS_TOKEN: ${{ secrets.KUAYUE_TEAM_GITEA_ACCESS_TOKEN }}
run: |
rm -r -f ./artifacts 2> /dev/null
mkdir ./artifacts/
DATE_NUMBER="$(TZ='Asia/Shanghai' date +'%y%m%d')"
KASUGA_COMMIT=$(git --git-dir ./kasugalib/.git rev-parse HEAD)
KUAYUE_COMMIT=$(git --git-dir ./kuayue/.git rev-parse --short HEAD)
KASUGA_VERSION=1.19.2-nightly-create-${DATE_NUMBER}-$(git --git-dir ./kasugalib/.git rev-parse --short HEAD)
KUAYUE_VERSION=1.19.2-nightly-create-${DATE_NUMBER}-$(git --git-dir ./kuayue/.git rev-parse --short HEAD)
KASUGA_RELEASE="./kasugalib/build/libs/kasuga_lib-${KASUGA_VERSION}.jar"
KASUGA_RELEASE_LIB="./kuayue/libs/kasuga_lib-${KASUGA_VERSION}.jar"
KUAYUE_RELEASE="./kuayue/build/libs/kuayue-${KUAYUE_VERSION}.jar"
echo "## Output Versions: " >> $GITHUB_STEP_SUMMARY
echo "KuaYue: $KUAYUE_VERSION @ $KUAYUE_COMMIT" >> $GITHUB_STEP_SUMMARY
echo "KasugaLib: $KASUGA_VERSION @ $KASUGA_COMMIT" >> $GITHUB_STEP_SUMMARY
cd ./kasugalib
./gradlew build -Pmod_version="$KASUGA_VERSION" -PjarVersion="$KASUGA_VERSION" -Pnightly=true
./gradlew publishAllPublicationsToGradleCIMavenRepository -Pmod_version="$KASUGA_VERSION" -PjarVersion="$KASUGA_VERSION" -Pnightly=true -PkuaYueTeamGradleCiToken="$KUAYUE_TEAM_GITEA_ACCESS_TOKEN"
cd ..
cp $KASUGA_RELEASE "./artifacts/"
cp $KASUGA_RELEASE $KASUGA_RELEASE_LIB
cd ./kuayue
./gradlew build -Pmod_version="$KUAYUE_VERSION" -PjarVersion="$KUAYUE_VERSION" -Pkasuga_lib_version="$KASUGA_VERSION" -Pnightly=true
./gradlew publishAllPublicationsToGradleCIMavenRepository -Pmod_version="$KUAYUE_VERSION" -PjarVersion="$KUAYUE_VERSION" -Pkasuga_lib_version="$KASUGA_VERSION" -Pnightly=true -PkuaYueTeamGradleCiToken="$KUAYUE_TEAM_GITEA_ACCESS_TOKEN"
cd ..
cp $KUAYUE_RELEASE "./artifacts/"
NIGHTLY_VERSIONS='{"kasugalib":{"version":"'${KASUGA_VERSION}'","download":"/artifacts/nightly/kasuga_lib-'${KASUGA_VERSION}'.jar","commit":"'${KASUGA_COMMIT}'"},"kuayue":{"version":"'${KUAYUE_VERSION}'","download":"/artifacts/nightly/kuayue-'${KUAYUE_VERSION}'.jar","commit":"'${KUAYUE_COMMIT}'"}}'
echo $NIGHTLY_VERSIONS >> ./artifacts/build-info.json
- name: Upload Artifact to FTP Server
uses: SamKirkland/[email protected]
with:
server: ${{ secrets.KUAYUE_UPLOAD_SERVER }}
username: uploader
password: ${{ secrets.KUAYUE_UPLOAD_PASSWORD }}
local-dir: ./artifacts/
server-dir: ./nightly/