Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OMMC - 0.6 #41

Open
wants to merge 29 commits into
base: nyan-work/dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
29 commits
Select commit Hold shift + click to select a range
27a432b
Support MC 1.20.6 & 1.21
SkyDynamic Jul 21, 2024
2cd4adc
dump to 0.6
SkyDynamic Jul 21, 2024
91c0633
fix some problem
SkyDynamic Jul 22, 2024
12f9d09
fix preprocess code
SkyDynamic Jul 22, 2024
4ec8ce5
fix highlightWaypoint throw "Already building"
SkyDynamic Jul 22, 2024
9951397
Make boolean config can bind hotkey
SkyDynamic Jul 23, 2024
111d065
Rewrite highlightWaypoint render logic
Hendrix-Shen Jul 24, 2024
3cce42d
Use gradle-all
Hendrix-Shen Jul 24, 2024
8be5c41
Update buildscripts
Hendrix-Shen Jul 24, 2024
b5f15e2
Move ModMenuImpl
Hendrix-Shen Jul 31, 2024
ae069f0
Fix buildscripts
Hendrix-Shen Jul 31, 2024
cc0c33f
Code style
Hendrix-Shen Aug 6, 2024
9e6d80a
Disable AccessWideners & interfaceInjection transitive
Hendrix-Shen Aug 9, 2024
280e59b
MagicLib 0.8.593+
Hendrix-Shen Aug 9, 2024
aa67a05
Add missing InitializationHandler
Hendrix-Shen Aug 9, 2024
03bb794
fix mismatched Operation for @WrapOperation in magiclib
wendavid552 Sep 19, 2024
9bc5e62
fix incompatibility with lithium at client side.
wendavid552 Sep 19, 2024
340c84b
fix sortInventory crashes the client due to null tag from data compon…
wendavid552 Sep 22, 2024
b278522
update java version for CI build
wendavid552 Sep 22, 2024
3a81cda
fix wrong release files patterns
wendavid552 Sep 22, 2024
7850c3f
Merge pull request #2 from wendavid552/exp/0.6
SkyDynamic Sep 24, 2024
26017dc
fix sort data is null
SkyDynamic Sep 24, 2024
35f9424
Gradle 8.10.2
Hendrix-Shen Oct 22, 2024
eef02b3
MC 1.21 -> 1.12.1
Hendrix-Shen Oct 26, 2024
17b552c
Fix render issue with sodium
Hendrix-Shen Oct 29, 2024
c4dc36d
Compat sodium 0.6
Hendrix-Shen Oct 29, 2024
f96151b
Use public ver of MagicLib
Hendrix-Shen Oct 29, 2024
8deb42e
Clean up
Hendrix-Shen Oct 30, 2024
c35a67a
Rewrite CI
Hendrix-Shen Oct 30, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
235 changes: 158 additions & 77 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
@@ -1,89 +1,170 @@
name: CI
# release: <default> (release title)
# dispatch (all): Manual release for $target_release_tag
# dispatch (specified): Manual release for $target_release_tag (subproject: $target_subproject)
run-name: |-
${{ github.event_name == 'workflow_dispatch' && format('Manual release for {0}{1}', inputs.target_release_tag, inputs.target_subproject && format(' (subproject: {0})', inputs.target_subproject) || '') || '' }}
on:
push:
branches:
- 'nyan-work/dev'

paths:
- "*.gradle"
- "gradle.properties"
- "src/**"
- "versions/**"
- ".github/**"
release:
types:
- published
pull_request:
workflow_dispatch:
inputs:
target_subproject:
description: |-
The subproject name(s) of the specified Minecraft version to be released, seperated with ",".
By default all subprojects will be released.
type: string
required: false
default: ''
target_release_tag:
description: |-
The tag of the release you want to append the artifact to.
type: string
required: true
jobs:
build:
if: ${{ github.event_name == 'push' && !startsWith(github.event.ref, 'refs/tags/') && contains(github.event.head_commit.message, '[build skip]') == false }}
strategy:
matrix:
java: [ 17 ]
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
show_action_parameters:
runs-on: ubuntu-latest
steps:
- name: Show action parameters
run: |
cat <<EOF > $GITHUB_STEP_SUMMARY
## Action Parameters
- target_subproject: \`${{ inputs.target_subproject }}\`
- target_release_tag: \`${{ inputs.target_release_tag }}\`
EOF
generate_matrix:
if: ${{ github.event_name != 'pull_request' }}
uses: ./.github/workflows/generate_matrix.yml
with:
target_subproject: ${{ inputs.target_subproject }}
validate_target_subproject:
runs-on: ubuntu-latest
steps:
- name: Checkout the sources
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v3
with:
distribution: 'adopt'
java-version: ${{ matrix.java }}

- name: Cache Gradle packages
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
./.gradle/loom-caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}

- name: Get short commit sha
id: get_short_sha
run: |
short_sha=$(echo ${GITHUB_SHA} | cut -c1-7)
echo "short_sha=$short_sha" >> $GITHUB_OUTPUT

- name: Get commit count
id: get_commit_count
run: |
commit_count=$(git log | grep -e 'commit [a-zA-Z0-9]*' | wc -l)
echo "commit_count=$commit_count" >> $GITHUB_OUTPUT

- name: Read Properties mod info
id: mod_info
uses: christian-draeger/[email protected]
with:
path: gradle.properties
properties: 'mod_name mod_version'

- name: Grant execute permission for gradlew
run: chmod +x gradlew

- name: Preprocess sources
- name: Validate target subproject
if: ${{ github.event_name == 'workflow_dispatch' }}
# ubuntu-22.04 uses Python 3.10.6
run: python3 .github/workflows/scripts/validate_subproject.py
env:
BUILD_TYPE: "BETA"
run: ./gradlew preprocessResources --stacktrace

- name: Publish Maven with Gradle
TARGET_SUBPROJECT: ${{ inputs.target_subproject }}
# Ensure the input release tag is valid.
validate_release:
runs-on: ubuntu-latest
steps:
- name: Get github release information
if: ${{ github.event_name == 'workflow_dispatch' }}
uses: cardinalby/[email protected]
env:
BUILD_TYPE: "BETA"
run: ./gradlew build --stacktrace

- name: Upload assets to GitHub Action
uses: actions/upload-artifact@v3
GITHUB_TOKEN: ${{ github.token }}
with:
name: "${{ steps.mod_info.outputs.mod_name }} ${{ steps.mod_info.outputs.mod_version }}.${{ steps.get_commit_count.outputs.commit_count }}+${{ steps.get_short_sha.outputs.short_sha }}"
path: |
LICENSE
fabricWrapper/build/libs/*.jar
fabricWrapper/build/tmp/submods/META-INF/jars/*.jar

- name: Create Github release
if: contains(github.event.head_commit.message, '[publish skip]') == false && contains(github.event.ref, 'refs/heads/exp') == false
uses: softprops/action-gh-release@v1
tag: ${{ inputs.target_release_tag }}
prepare_build_info:
if: ${{ !startsWith(github.event.ref, 'refs/tags/') }}
runs-on: ubuntu-latest
outputs:
build_publish: ${{ steps.build_info.outputs.build_publish }}
build_target_subprojects: ${{ steps.subprojects.outputs.subprojects }}
build_version_type: ${{ steps.build_info.outputs.build_version_type }}
publish_channel: ${{ steps.build_info.outputs.publish_channel }}
publish_target_release_tag: ${{ steps.build_info.outputs.publish_target_release_tag }}
steps:
- name: Checkout the sources
uses: actions/checkout@v4
with:
prerelease: true
files: |
LICENSE
fabricWrapper/build/libs/*.jar
fabricWrapper/build/tmp/submods/META-INF/jars/*.jar
name: "[CI#${{ github.run_number }}]${{ steps.mod_info.outputs.mod_name }} ${{ steps.mod_info.outputs.mod_version }}.${{ steps.get_commit_count.outputs.commit_count }}+${{ steps.get_short_sha.outputs.short_sha }}"
tag_name: "${{ github.ref_name }}.${{ github.run_number }}"
target_commitish: ${{ github.event.ref }}
generate_release_notes: true
fetch-depth: 0
- name: Determining build info
id: build_info
run: |
if [ ${{ github.event_name }} == 'push' ]
then
build_publish=true
build_version_type=BETA
publish_channel=dev
elif [ ${{ github.event_name }} == 'release' ]
then
build_publish=true
build_version_type=RELEASE
publish_channel=stable
publish_target_release_tag=${{ github.event.ref }}
elif [ ${{ github.event_name }} == 'pull_request' ]
then
build_publish=false
build_version_type=PULL_REQUEST
elif [ ${{ github.event_name }} == 'workflow_dispatch' ]
then
build_publish=true
build_version_type=RELEASE
publish_channel=stable
publish_target_release_tag=${{ inputs.target_release_tag }}
else
echo Unknown github event name $GITHUB_EVENT_NAME
exit 1
fi

echo "build_publish=$build_publish" >> $GITHUB_OUTPUT
echo "build_version_type=$build_version_type" >> $GITHUB_OUTPUT
echo "publish_channel=$publish_channel" >> $GITHUB_OUTPUT
echo "publish_target_release_tag=$publish_target_release_tag" >> $GITHUB_OUTPUT

cat <<EOF > $GITHUB_STEP_SUMMARY
## Determining build info
- build_publish: \`$build_publish\`
- build_version_type: \`$build_version_type\`
- publish_channel: \`$publish_channel\`
- publish_target_release_tag: \`$publish_target_release_tag\`
EOF
- name: Determining subprojects
id: subprojects
run: python3 .github/workflows/scripts/determining_subproject.py
env:
TARGET_SUBPROJECT: ${{ github.event.inputs.target_subproject }}
prepare_publish_info:
if: ${{ needs.prepare_build_info.outputs.build_publish == 'true' }}
runs-on: ubuntu-latest
needs:
- prepare_build_info
outputs:
publish_channel: ${{ needs.prepare_build_info.outputs.publish_channel }}
publish_target_release_tag: ${{ needs.prepare_build_info.outputs.publish_target_release_tag }}
steps:
- name: Checkout the sources
uses: actions/checkout@v4
build:
if: ${{ contains(github.event.head_commit.message, '[build skip]') == false }}
needs:
- prepare_build_info
- validate_target_subproject
- validate_release
uses: ./.github/workflows/build.yml
secrets: inherit
with:
build_publish: ${{ needs.prepare_build_info.outputs.build_publish }}
build_version_type: ${{ needs.prepare_build_info.outputs.build_version_type }}
target_subproject: ${{ needs.prepare_build_info.outputs.build_target_subprojects }}
publish:
if: ${{ github.event_name != 'pull_request' }}
strategy:
matrix: ${{ fromJson(needs.generate_matrix.outputs.matrix) }}
needs:
- build
- generate_matrix
- prepare_publish_info
uses: ./.github/workflows/publish.yml
secrets: inherit
with:
publish_channel: ${{ needs.prepare_publish_info.outputs.publish_channel }}
publish_mc_ver: ${{ matrix.mc_ver }}
publish_platform: ${{ matrix.platform }}
publish_target_release_tag: ${{ needs.prepare_publish_info.outputs.publish_target_release_tag }}
74 changes: 74 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
name: step.build
on:
workflow_call:
inputs:
build_publish:
type: string
required: true
build_version_type:
type: string
required: true
target_subproject:
description: see CI.yml, leave it empty to build all
type: string
required: false
default: ''
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout the sources
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 21
- name: Cache gradle files
if: ${{ inputs.build_version_type != 'PULL_REQUEST' }}
uses: actions/cache@v4
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
./.gradle/loom-cache
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle', '**/gradle.properties', '**/*.accesswidener', 'settings.json') }}
restore-keys: |
${{ runner.os }}-gradle-
- name: Build with gradle
run: |
chmod +x gradlew
if [ -z "${{ inputs.target_subproject }}" ]; then
echo "Building all subprojects"
./gradlew build
else
args=$(echo "${{ inputs.target_subproject }}" | tr ',' '\n' | sed 's/$/:build/' | paste -sd ' ')
echo "Building with arguments=$args"
./gradlew $args
fi
env:
BUILD_TYPE: ${{ inputs.build_version_type }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: versions/*/build/libs/
summary:
runs-on: ubuntu-22.04
needs:
- build
steps:
- name: Checkout the sources
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Download build artifacts
uses: actions/download-artifact@v4
with:
name: build-artifacts
path: build-artifacts
- name: Make build summary
# ubuntu-22.04 uses Python 3.10.6
run: python3 .github/workflows/scripts/summary.py
29 changes: 29 additions & 0 deletions .github/workflows/generate_matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: step.generate_matrix
on:
workflow_call:
inputs:
target_subproject:
description: see CI.yml, for generating matrix entries
type: string
required: false
default: ''
outputs:
matrix:
description: The generated run matrix
value: ${{ jobs.generate_matrix.outputs.matrix }}
jobs:
generate_matrix:
runs-on: ubuntu-22.04
steps:
- name: Checkout the sources
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Generate matrix
id: generate_matrix
# ubuntu-22.04 uses Python 3.10.6
run: python3 .github/workflows/scripts/matrix.py
env:
TARGET_SUBPROJECT: ${{ inputs.target_subproject }}
outputs:
matrix: ${{ steps.generate_matrix.outputs.matrix }}
Loading