mirror of
https://github.com/runelite/plugin-hub.git
synced 2026-05-29 19:08:39 -04:00
127 lines
4.3 KiB
YAML
127 lines
4.3 KiB
YAML
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:
|
|
permissions:
|
|
contents: read
|
|
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-24.04
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
with:
|
|
fetch-depth: 0
|
|
path: plugin-hub
|
|
persist-credentials: false
|
|
- uses: actions/setup-java@v5
|
|
with:
|
|
distribution: adopt
|
|
java-version: 11
|
|
- name: fetch packager
|
|
env:
|
|
PACKAGER_URL: "https://github.com/runelite/plugin-hub-tooling/releases/download/v1/bundle.tar.zst"
|
|
run: |
|
|
set -exu
|
|
curl --location --fail --retry 4 --max-time 30 --output bundle.tar.zst "$PACKAGER_URL"
|
|
sha256sum bundle.tar.zst
|
|
tar xf bundle.tar.zst
|
|
- uses: actions/cache/restore@v5
|
|
id: restore-cache
|
|
with:
|
|
path: |
|
|
~/.gradle/caches/
|
|
api/
|
|
key: deps-${{ hashFiles('plugin-hub/runelite.version', 'bundle.tar.zst') }}
|
|
- name: prepare
|
|
if: steps.restore-cache.outputs.cache-hit != 'true'
|
|
run: ./prepare.sh
|
|
- uses: actions/cache/save@v5
|
|
if: steps.restore-cache.outputs.cache-hit != 'true'
|
|
with:
|
|
path: ~/.gradle/caches/
|
|
key: ${{ steps.restore-cache.outputs.cache-primary-key }}
|
|
|
|
- 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.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: 4
|
|
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@v6
|
|
with:
|
|
fetch-depth: 1
|
|
path: plugin-hub
|
|
persist-credentials: false
|
|
- name: fetch packager
|
|
env:
|
|
PACKAGER_URL: "https://github.com/runelite/plugin-hub-tooling/releases/download/v1/bundle.tar.zst"
|
|
run: |
|
|
set -exu
|
|
curl --location --fail --retry 4 --max-time 30 --output bundle.tar.zst "$PACKAGER_URL"
|
|
sha256sum bundle.tar.zst
|
|
tar xf bundle.tar.zst
|
|
- uses: actions/setup-java@v5
|
|
with:
|
|
distribution: adopt
|
|
java-version: 11
|
|
- 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: |
|
|
exec java -XX:+UseParallelGC -cp upload.jar net.runelite.pluginhub.uploader.Uploader |