Skip to content

Fetch PaperMC

Fetch PaperMC #809

Workflow file for this run

name: Fetch PaperMC
on:
workflow_dispatch:
schedule:
- cron: "0 2 * * *"
jobs:
build-spigot:
strategy:
matrix:
version:
[
1.17,
1.17.1,
# 1.18, Has Only experimental channel. Let's dont use it, until someone really wants it
1.18.1,
1.18.2,
1.19,
1.19.1,
1.19.2,
1.19.3,
1.19.4,
1.20.1,
1.20.2,
1.20.4,
1.20.6,
1.21.1,
1.21.3,
1.21.4,
1.21.5,
1.21.6,
1.21.7,
]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Fetch latest builds
run: wget -O builds.json https://api.papermc.io/v2/projects/paper/versions/${{ matrix.version }}/builds
- name: Fetch latest stable
run: |
build=$(jq -c '[.builds[] | select(.channel == "STABLE")] | sort_by(.build) | .[-1] | select(. != null) | {number: .build, name: .downloads.application.name}' builds.json)
if [ -z "$build" ] || [ "$build" = "null" ]; then
build=$(jq -c '[.builds[] | select(.channel == "ALPHA" or .channel == "EXPERIMENTAL")] | sort_by(.build) | .[-1] | select(. != null) | {number: .build, name: .downloads.application.name}' builds.json)
fi
if [ -z "$build" ] || [ "$build" = "null" ]; then
echo "No PaperMC build found for ${{ matrix.version }}" >&2
exit 1
fi
echo "BUILD_NUMBER=$(echo "$build" | jq -r '.number')" >> $GITHUB_ENV
echo "BUILD_NAME=$(echo "$build" | jq -r '.name')" >> $GITHUB_ENV
- run: wget -O paper-${{ matrix.version }}.jar https://api.papermc.io/v2/projects/paper/versions/${{ matrix.version }}/builds/${{ env.BUILD_NUMBER }}/downloads/${{ env.BUILD_NAME }}
- run: mkdir -p papermc && mv paper-${{ matrix.version }}.jar papermc/paper-${{ matrix.version }}.jar
- uses: jakejarvis/s3-sync-action@master
env:
AWS_S3_BUCKET: ${{ secrets.PRESIGN_BUCKET_NAME }}
AWS_ACCESS_KEY_ID: ${{ secrets.PRESIGN_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.PRESIGN_SECRET_KEY }}
AWS_S3_ENDPOINT: http://${{ secrets.PRESIGN_S3_ENDPOINT }}
AWS_REGION: "fsn1"
SOURCE_DIR: papermc
DEST_DIR: minecraft/papermc