ppc2cpp integration; use ppcdis for dol disasm #1234
Workflow file for this run
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: Get DOL progress | |
run: python -m mkwutil.progress.percent_decompiled --short --part DOL > badge_dol_progress.txt | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: badge_dol_progress | |
path: badge_dol_progress.txt | |
- name: Get REL progress | |
run: python -m mkwutil.progress.percent_decompiled --short --part REL > badge_rel_progress.txt | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: badge_rel_progress | |
path: badge_rel_progress.txt | |
- name: Make docs folder | |
run: md out/website -ea 0 | |
- name: Run graphic.py | |
run: python -m mkwutil.progress.graphic --silent | |
- 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* | |
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 |