Skip to content

Add KartState

Add KartState #1235

Workflow file for this run

---
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