Skip to content

Commit

Permalink
refactor: Simplify CI/CD (#69)
Browse files Browse the repository at this point in the history
* ci: Refactor CI to use composites

* ci: Update composite

* fix: I need the full hash

* ci: I hate YAML

* fix: Double quote

* fix: Tilde moment

* refactor: Use more composite

* fix: ls -1 doesn't want to do one-line

* fix: Don't include mainProject

* ci: To quote or not to quote?

* ci: Debugging

* ci: It works

* ci: Skip gradle setup for neoforge kits

We already did it for the whole project in previous step

* ci: Release

* ci: Caching

* ci: Debugging

* fix: Broken composite

* fix: Typo

* ci: Debug cache

* ci: What if...

* ci: More debugging

* ci: Even more debugging

* ci: Turn off cache for neoforge

* ci: TODO

* ci: Remove NeoForge Kits compiler

We should do this outside of this repo, this messing up the CI too much
  • Loading branch information
null2264 authored Apr 24, 2024
1 parent c43de2b commit c9ed662
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 59 deletions.
45 changes: 16 additions & 29 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,40 +6,27 @@ jobs:
name: Build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: NeoForge Kits Cache
uses: actions/cache@v4
- name: Checkout
uses: actions/checkout@v4

- name: Setup Gradle
uses: null2264/actions/gradle-setup@6712f98d592b126629afd27dc4870c93b53426b4
with:
path: ~/Kits
key: ${{ runner.os }}-Kits-${{ hashFiles('snapshot_version') }}
restore-keys: |
${{ runner.os }}-Kits-${{ hashFiles('snapshot_version') }}
- name: Compile NeoForge snapshot
run: |
./.scripts/compile_kits.sh
- name: Setup JDK21
run: |
# REF: https://github.com/actions/runner-images/blob/07d23cf/images/ubuntu/Ubuntu2204-Readme.md#java
echo "JAVA_HOME=$(echo $JAVA_HOME_21_X64)" >> "$GITHUB_ENV"
- name: Setup build environment
java: 21

- name: Get mod versions
id: get-mod-versions
run: |
chmod +x ./gradlew
echo "org.gradle.java.installations.fromEnv=JAVA_HOME_8_X64,JAVA_HOME_17_X64,JAVA_HOME_21_X64" >> gradle.properties
echo "org.gradle.jvmargs=-Xmx6G" >> gradle.properties
echo "org.gradle.cache.cleanup=false" >> gradle.properties
echo "org.gradle.daemon=false" >> gradle.properties
- name: Gradle Cache
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', 'gradle.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
echo "versions=$(ls versions | grep -e '.\.' | tr '\n' ' ')" >> $GITHUB_OUTPUT
- name: Build with Gradle
run: ./.scripts/compile.sh
uses: null2264/actions/replaymod-preprocessor-compile@6712f98d592b126629afd27dc4870c93b53426b4
with:
versions: ${{ steps.get-mod-versions.outputs.versions }}

- name: Archive build results
run: tar -I zstd -cf build.tar.zst versions/*/build/libs

- name: Upload build folder
uses: actions/upload-artifact@v4
with:
Expand Down
50 changes: 20 additions & 30 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,47 +8,35 @@ jobs:
name: Build and Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2
- name: NeoForge Kits Cache
uses: actions/cache@v4
- name: Checkout
uses: actions/checkout@v4

- name: Setup Gradle
uses: null2264/actions/gradle-setup@1cc44b9be27b8914ca577a0905288e99c67df067
with:
path: ~/Kits
key: ${{ runner.os }}-Kits-${{ hashFiles('snapshot_version') }}
restore-keys: |
${{ runner.os }}-Kits-${{ hashFiles('snapshot_version') }}
- name: Compile NeoForge snapshot
run: |
./.scripts/compile_kits.sh
- name: Setup JDK21
java: 21

- name: Get mod versions
id: get-mod-versions
run: |
# REF: https://github.com/actions/runner-images/blob/07d23cf/images/ubuntu/Ubuntu2204-Readme.md#java
echo "JAVA_HOME=$(echo $JAVA_HOME_21_X64)" >> "$GITHUB_ENV"
- name: Setup build environment
run:
chmod +x ./gradlew
echo "org.gradle.java.installations.fromEnv=JAVA_HOME_8_X64,JAVA_HOME_17_X64,JAVA_HOME_21_X64" >> gradle.properties
echo "org.gradle.jvmargs=-Xmx6G" >> gradle.properties
echo "org.gradle.cache.cleanup=false" >> gradle.properties
echo "org.gradle.daemon=false" >> gradle.properties
- name: Gradle Cache
uses: actions/cache@v4
with:
path: ~/.gradle/caches
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', 'gradle.properties') }}
restore-keys: |
${{ runner.os }}-gradle-
echo "versions=$(ls versions | grep -e '.\.' | tr '\n' ' ')" >> $GITHUB_OUTPUT
- name: Build with Gradle
run: ./.scripts/compile.sh
uses: null2264/actions/replaymod-preprocessor-compile@1cc44b9be27b8914ca577a0905288e99c67df067
with:
versions: ${{ steps.get-mod-versions.outputs.versions }}

- name: Archive build results
run: tar -I zstd -cf build.tar.zst versions/*/build/libs
- name: Upload build and gradle folders

- name: Upload build folders
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: build.tar.zst
if-no-files-found: error
retention-days: 3

- name: Upload to CurseForge and Modrinth
run: ./gradlew publishMods --stacktrace --no-daemon --max-workers 1
env:
Expand All @@ -65,8 +53,10 @@ jobs:
uses: actions/download-artifact@v4
with:
name: build-artifacts

- name: Unpack build artifact
run: tar axf build.tar.zst

- name: Upload Release Artifact
uses: softprops/action-gh-release@v1
env:
Expand Down

0 comments on commit c9ed662

Please sign in to comment.