diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d303dc368..2387cb3bf 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,13 +15,18 @@ jobs: uses: actions/setup-java@v1 with: java-version: 17 - - name: Grant execute permission for gradlew - run: chmod +x gradlew - - name: Use gradle cache for faster builds - uses: actions/cache@v4 + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v4 with: - path: ~/.gradle/caches - key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }} + gradle-home-cache-excludes: | + caches/neoformruntime/assets + - name: Restore cached Minecraft assets + uses: actions/cache/restore@v4 + with: + path: | + ~/.gradle/caches/neoformruntime/assets + key: mc-assets-does-not-exist + restore-keys: mc-assets- - name: Build with Gradle run: ./gradlew build env: @@ -34,3 +39,15 @@ jobs: with: name: Modern Industrialization ${{ steps.var.outputs.commit_hash }} path: build/libs + - name: Hash Minecraft assets + id: hash-assets + run: | + find ~/.gradle/caches/neoformruntime/assets -type f -exec sha256sum {} + | sort | sha256sum | cut -d ' ' -f 1 > assets-hash.txt + echo "assets_hash=$(cat assets-hash.txt)" >> $GITHUB_ENV + echo "::set-output name=assets_hash::$(cat assets-hash.txt)" + - name: Cache Minecraft assets + uses: actions/cache/save@v4 + with: + path: | + ~/.gradle/caches/neoformruntime/assets + key: mc-assets-${{ steps.hash-assets.outputs.assets_hash }}