Add KartState #1235
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
on: | |
push: | |
paths-ignore: | |
- 'tests/**' | |
- '*.md' | |
pull_request: | |
paths-ignore: | |
- 'tests/**' | |
- '*.md' | |
name: Build | |
jobs: | |
build_windows: | |
runs-on: windows-2022 | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-python@v4 | |
with: | |
python-version: '3.10.4' | |
architecture: 'x64' | |
- uses: syphar/restore-virtualenv@v1 | |
id: cache-virtualenv | |
with: | |
requirement_files: requirements.txt | |
- uses: syphar/restore-pip-download-cache@v1 | |
if: steps.cache-virtualenv.outputs.cache-hit != 'true' | |
- run: pip install -r requirements.txt | |
if: steps.cache-virtualenv.outputs.cache-hit != 'true' | |
- name: Install Ninja | |
run: choco install -y ninja | |
- name: Extract tooling | |
env: | |
TOOLS_URL: 'https://www.dropbox.com/s/4b0hwciadfk8yuo/tools.zip?dl=1' | |
run: | | |
# Download tooling | |
Invoke-WebRequest "$Env:TOOLS_URL" -OutFile .\tools.zip | |
$hash = (Get-FileHash '.\tools.zip').Hash | |
if ($hash -ne '40cbee5ce207d8ca71b6611f8f7560e6f135562c25e8fa303f916011e99517ca') | |
{ | |
echo "Invalid hash: $hash" | |
exit 1 | |
} | |
# Extract | |
Expand-Archive tools.zip | |
# Fix paths (tools/tools => tools) | |
Move-Item '.\tools' '.\tools2' | |
Move-Item '.\tools2\tools' '.\tools' | |
# Move blobs | |
Move-Item '.\tools\blobs\main.dol' '.\artifacts\orig\pal\main.dol' | |
Move-Item '.\tools\blobs\StaticR.rel' '.\artifacts\orig\pal\StaticR.rel' | |
# Clean up | |
Remove-Item '.\tools.zip' | |
Remove-Item -LiteralPath 'tools2' -Force -Recurse | |
- name: Configure mkw | |
shell: bash | |
run: python configure.py --regen_asm | |
- name: Build mkw | |
shell: bash | |
run: ninja | |
- name: Make docs folder | |
run: md out/website -ea 0 | |
- name: Run graphic.py | |
# outputs to /out/website | |
run: python -m mkwutil.progress.graphic --silent | |
- name: Get DOL progress | |
run: python -m mkwutil.progress.percent_decompiled --svg --part DOL > ./out/website/dol.svg | |
- name: Get REL progress | |
run: python -m mkwutil.progress.percent_decompiled --svg --part REL > ./out/website/rel.svg | |
- name: Get all progress | |
run: python -m mkwutil.progress.percent_decompiled --svg > ./out/website/total.svg | |
- name: Upload Website Artifacts | |
uses: actions/upload-artifact@v3 | |
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' | |
with: | |
name: website | |
path: out/website | |
- name: Lint inline ASM | |
run: python -m mkwutil.tools.lint_inline_asm --pretty ./source/**/*.c* | |
- name: Upload frogress | |
run: python -m mkwutil.progress.percent_decompiled --frogress -a ${{secrets.PROGRESS_API_KEY}} | |
publish: | |
runs-on: ubuntu-latest | |
needs: build_windows | |
if: github.ref == 'refs/heads/master' || github.ref == 'refs/heads/main' | |
permissions: | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Download Website Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: website | |
path: out/website | |
- name: Create doxygen dir | |
run: mkdir -p out/website/docs | |
- uses: mattnotmitt/doxygen-action@v1 | |
- name: Upload Pages artifact | |
uses: actions/upload-pages-artifact@v2 | |
with: | |
path: out/website/ | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v2 |