Files
plugin-hub/.github/workflows/build.yml
Max Weber 00b3acafc2 package: only download tree & blobs for the commit we want
We can't do a real shallow clone since GitHub doesn't let you fetch
arbitrary commits. Instead we fetch the whole commit graph, but not the
file trees or file blobs, which are fetched by git checkout on-demand.
2021-08-02 15:05:05 -06:00

98 lines
3.1 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
push:
pull_request:
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-20.04
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 0
- uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: package-2.0.7
- 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 }}
# 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@v2
with:
name: manifest_diff
path: /tmp/manifest_diff
retention-days: 1
upload:
if: (github.event_name != 'push' || github.repository_owner == 'runelite') && github.event_name != 'pull_request'
needs: build
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2
with:
fetch-depth: 1
- uses: actions/setup-java@v2
with:
distribution: adopt
java-version: 11
- uses: actions/cache@v2
with:
path: |
~/.gradle/caches/
~/.gradle/wrapper/
key: upload-2.0.7
- uses: actions/download-artifact@v2
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