Skip to content

Test Tools Data

Test Tools Data #177

Workflow file for this run

name: Test Tools Data
on:
schedule:
# At 03:07 on Saturday (because why not)
- cron: "7 3 * * 6"
workflow_dispatch:
env:
JAVA_VERSION: 17
NATIVE_VERSION: 22.3.2
GRAALVM_DIST: graalvm-community
JAVA_DISTRO: temurin
FAIL_ISSUE: 140
permissions: read-all
jobs:
cache-setup:
runs-on: ubuntu-latest
outputs:
cache_key: ${{ steps.test-data-key.outputs.cache_key }}
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1
- name: Tools release cache key
id: test-data-key
run: |
LATEST_VERSION="v1.209.3"
echo "🔹 Use $LATEST_VERSION"
echo "tools_version=${LATEST_VERSION}" >> $GITHUB_OUTPUT
echo "cache_key=Data-5etools-${LATEST_VERSION}" >> $GITHUB_OUTPUT
- name: Check Cache Data
id: test-data-check
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: sources
key: ${{ steps.test-data-key.outputs.cache_key }}
lookup-only: true
enableCrossOsArchive: true
- name: Download Test Data
id: test-data-download
if: steps.test-data-check.outputs.cache-hit != 'true'
env:
LATEST_VERSION: ${{ steps.test-data-key.outputs.tools_version }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
mkdir -p sources
# echo "🔹 Download $LATEST_VERSION"
# ARTIFACT_URL="https://github.com/5etools-mirror-2/5etools-mirror-2.github.io/archive/refs/tags/$LATEST_VERSION.tar.gz"
# VER=$(echo $LATEST_VERSION | cut -c 2-)
# ROOT="5etools-mirror-2.github.io-$VER"
# curl -LsS -o 5etools.tar.gz $ARTIFACT_URL
# tar xzf 5etools.tar.gz ${ROOT}/data
# mv ${ROOT} sources/5etools-mirror-2.github.io
# gh repo clone 5etools-mirror-2/5etools-img sources/5etools-img -- --depth=1
# gh repo clone TheGiddyLimit/unearthed-arcana sources/5e-unearthed-arcana -- --depth=1
# gh repo clone TheGiddyLimit/homebrew sources/5e-homebrew -- --depth=1
# # Remove image contents. We just need the files to exist (linking)
# find sources -type f -type f \
# \( -iname \*.jpg -o -iname \*.png -o -iname \*.webp \) \
# | while read FILE; do echo > "$FILE"; done
ls -al sources
test-with-data:
name: Test with data
needs: cache-setup
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1
- uses: actions/cache/restore@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
id: cache
with:
path: sources
key: ${{ needs.cache-setup.outputs.cache_key }}
fail-on-cache-miss: true
- name: Set up JDK ${{ env.JAVA_VERSION }}
uses: actions/setup-java@8df1039502a15bceb9433410b1a100fbe190c53b # v4.5.0
with:
java-version: ${{ env.JAVA_VERSION }}
distribution: ${{ env.JAVA_DISTRO }}
cache: maven
- name: Build with Maven
id: mvn-build
run: |
ls -al sources
./mvnw -B -ntp -DskipFormat verify
native-test-with-data:
name: Test on ${{ matrix.os }}
needs: [cache-setup, test-with-data]
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
max-parallel: 1
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1
- uses: actions/cache/restore@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
id: cache
with:
path: sources
key: ${{ needs.cache-setup.outputs.cache_key }}
fail-on-cache-miss: true
enableCrossOsArchive: true
- uses: graalvm/setup-graalvm@557ffcf459751b4d92319ee255bf3bec9b73964c # v1.2.5
with:
distribution: ${{ env.GRAALVM_DIST }}
java-version: ${{ env.JAVA_VERSION }}
github-token: ${{ secrets.GITHUB_TOKEN }}
version: ${{ env.NATIVE_VERSION }}
cache: 'maven'
- name: Build and run
id: mvn-build
run: |
./mvnw -B -ntp -DskipFormat -DargLine="-Xmx6g" verify
- if: runner.os == 'Windows'
name: clean before native build
shell: cmd
run: |
./mvnw -B -ntp -DskipFormat clean
- name: Build and run in native mode
id: mvn-native-build
run: |
./mvnw -B -ntp -Dnative -DskipTests -DskipFormat verify
report-native-build:
name: Report errors
runs-on: ubuntu-latest
if: ${{ failure() }}
needs: [test-with-data, native-test-with-data]
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
fetch-depth: 1
- id: gh-issue
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh issue comment ${{ env.FAIL_ISSUE }} --body "[Maven build failed: ${{ github.run_id }}](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})"
gh issue reopen ${{ env.FAIL_ISSUE }}