diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml new file mode 100644 index 0000000..8df85ea --- /dev/null +++ b/.github/workflows/auto-update.yml @@ -0,0 +1,71 @@ +name: Automatically update Paper commit hash + +on: + workflow_dispatch: + schedule: + - cron: "0 0 * * *" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout Gale repository + uses: actions/checkout@main + with: + path: 'Gale' + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Checkout Paper repository + uses: actions/checkout@main + with: + path: 'Paper' + repository: "PaperMC/Paper" + token: ${{ secrets.GITHUB_TOKEN }} + + - name: Get Gale latest commit Hash + id: paperRef + run: | + ls + cd Paper + echo "::set-output name=paperRef::$(git rev-parse HEAD)" + cd .. + + - name: Update paperRef in Gale + run: | + cd Gale + sed -i "s/\(paperRef\s*=\s*\).*/\1$PAPER_REF/" gradle.properties + env: + PAPER_REF: ${{ steps.paperRef.outputs.paperRef }} + + - name: Grant execute permission for gradlew + run: | + git config --global user.name "github-actions" + git config --global user.email no-reply@github.com + cd Gale + chmod +x gradlew + + - uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: 21 + + - name: Running tests before push + run: | + cd Gale + if ! git diff --quiet; then + echo "Running tests...." + ./gradlew applyPatches + ./gradlew createMojmapPaperclipJar + fi + + - name: Check for changes and write to repository + run: | + cd Gale + if ! git diff --quiet; then + echo "Writing to repo....." + git add . + git commit -m "Updated Upstream (Paper)" + git push + else + echo "No changes to commit." + fi