on: workflow_dispatch: inputs: FORCE_BUILD: description: "List of plugins to build, or 'ALL'" required: false COMMIT_RANGE: description: "Commit range to build 1234abc..5689def" required: false API_FILES_VERSION: description: "RuneLite version to use .api files from" required: false push: pull_request: env: CACHE_VERSION: 2.4.0 jobs: build: # any forks that predate this repo having an action will have actions # enabled by default, which will fail in a lot of cases because the branch # is new, which makes the differential build fail if: github.event_name != 'push' || github.repository_owner == 'runelite' runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-java@v4 with: distribution: adopt java-version: 11 - uses: actions/cache@v4 with: path: | ~/.gradle/caches/ ~/.gradle/wrapper/ key: package-${{ env.CACHE_VERSION }}-${{ hashFiles('runelite.version') }} restore-keys: | package-${{ env.CACHE_VERSION }}- - name: prepare run: | pushd package ./gradlew --build-cache prep ./gradlew --build-cache --project-dir verification-template :verifyCore popd - name: build env: REPO_CREDS: ${{ secrets.REPO_CREDS }} REPO_ROOT: ${{ secrets.REPO_ROOT }} # workflow_dispatch FORCE_BUILD: ${{ github.event.inputs.FORCE_BUILD }} COMMIT_RANGE: ${{ github.event.inputs.COMMIT_RANGE }} API_FILES_VERSION: ${{ github.event.inputs.API_FILES_VERSION }} # push COMMIT_BEFORE: ${{ github.event.before }} COMMIT_AFTER: ${{ github.event.after }} # pull_request PR_BEFORE: ${{ github.event.pull_request.base.sha }} PR_AFTER: ${{ github.event.pull_request.head.sha }} PACKAGE_IS_PR: ${{ github.event_name == 'pull_request' }} run: | COMMAND_SECRET="$(openssl rand -hex 32)" echo "::add-mask::$COMMAND_SECRET" echo "::stop-commands::$COMMAND_SECRET" if $PACKAGE_IS_PR; then export PACKAGE_COMMIT_RANGE="$PR_BEFORE...$PR_AFTER" else export PACKAGE_COMMIT_RANGE="${COMMIT_RANGE:-${COMMIT_BEFORE:+$COMMIT_BEFORE...$COMMIT_AFTER}}" fi exec java -XX:+UseParallelGC -cp package/package/build/libs/package.jar net.runelite.pluginhub.packager.Packager - uses: actions/upload-artifact@v4 with: name: manifest_diff path: /tmp/manifest_diff retention-days: 1 - uses: actions/upload-artifact@v4 if: ${{ github.event_name == 'pull_request' }} with: name: jars path: /tmp/jars retention-days: 1 upload: if: (github.event_name != 'push' || github.repository_owner == 'runelite') && github.event_name != 'pull_request' needs: build concurrency: upload runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v4 with: fetch-depth: 1 - uses: actions/setup-java@v4 with: distribution: adopt java-version: 11 - uses: actions/cache@v4 with: path: | ~/.gradle/caches/ ~/.gradle/wrapper/ key: upload-${{ env.CACHE_VERSION }} - uses: actions/download-artifact@v4 with: name: manifest_diff path: /tmp - name: upload env: REPO_CREDS: ${{ secrets.REPO_CREDS }} REPO_ROOT: ${{ secrets.REPO_ROOT }} SIGNING_KEY: ${{ secrets.SIGNING_KEY }} run: | pushd package ./gradlew :upload:run popd