Skip to content

Add *Defense of the Middle Kingdom* to B4DS-Debug DSiWare whitelist #3035

Add *Defense of the Middle Kingdom* to B4DS-Debug DSiWare whitelist

Add *Defense of the Middle Kingdom* to B4DS-Debug DSiWare whitelist #3035

Workflow file for this run

name: Build TWiLight Menu++ Nightly
on:
push:
branches: ["*"]
paths-ignore:
- 'README.md'
- '.github/ISSUE_TEMPLATE/*'
pull_request:
branches: ["*"]
paths-ignore:
- 'README.md'
- '.github/ISSUE_TEMPLATE/*'
jobs:
build:
runs-on: ubuntu-latest
container: devkitpro/devkitarm
name: Build with Docker using devkitARM
outputs:
commit_tag: ${{ steps.make-cias.outputs.commit_tag }}
commit_hash: ${{ steps.make-cias.outputs.commit_hash }}
author_name: ${{ steps.make-cias.outputs.author_name }}
committer_name: ${{ steps.make-cias.outputs.committer_name }}
commit_subject: ${{ steps.make-cias.outputs.commit_subject }}
steps:
- name: Checkout repo
uses: actions/checkout@v3
with:
submodules: recursive
fetch-depth: 0
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install p7zip-full python -y
- name: Setup environment
run: |
git config --global safe.directory '*'
echo "commit_tag=$(git describe --abbrev=0 --tags)" >> $GITHUB_OUTPUT
echo "commit_hash=$(git log --format=%h -1)" >> $GITHUB_OUTPUT
# Webhook info
echo "author_name=$(git log -1 $GITHUB_SHA --pretty=%aN)" >> $GITHUB_OUTPUT
echo "committer_name=$(git log -1 $GITHUB_SHA --pretty=%cN)" >> $GITHUB_OUTPUT
echo "commit_subject=$(git log -1 $GITHUB_SHA --pretty=%s)" >> $GITHUB_OUTPUT
- name: Get manual pages
run: |
cd manual/nitrofiles
curl -LO https://github.com/DS-Homebrew/twilight-manual/releases/download/pages/pages.7z
7z x pages.7z
rm pages.7z
- name: Build TWiLightMenu++
run: make package
- name: Make booter and TWiLightMenu CIAs
id: make-cias
run: |
cd booter/
chmod +x make_cia
./make_cia --srl="booter.nds" --id_0=$(git rev-parse --short=7 HEAD) --tikID=$(git rev-parse --short=16 HEAD)
mkdir -p "../7zfile/3DS - CFW users/"
cp "booter.cia" "../7zfile/3DS - CFW users/TWiLight Menu.cia"
- name: Pack 7z Package for nightly
run: |
# Make artifacts directory
mkdir -p ~/artifacts
# Don't include unnecessary files in nightlies
rm -rf 7zfile/_nds/TWiLightMenu/extras/fonts
rm -rf 7zfile/debug
rm -rf 7zfile/roms
rm "7zfile/3DS - CFW users/Games supported with widescreen.txt"
rm "7zfile/AP-patched games.txt"
rm 7zfile/snemul.cfg
cp -r 7zfile/ TWiLightMenu/
7z a TWiLightMenu.7z TWiLightMenu/
mv TWiLightMenu.7z ~/artifacts
# DSi 7z
cp -r TWiLightMenu/DSi\ -\ CFW\ users/SDNAND\ root/* TWiLightMenu
rm -rf TWiLightMenu/DSi\ -\ CFW\ users
cp -r TWiLightMenu/DSi\&3DS\ -\ SD\ card\ users/* TWiLightMenu
rm -rf TWiLightMenu/DSi\&3DS\ -\ SD\ card\ users
rm -rf TWiLightMenu/3DS\ -\ CFW\ users
rm -rf TWiLightMenu/Flashcard\ users
rm -rf TWiLightMenu/_nds/GBARunner2_arm7dldi_3ds.nds
rm -rf TWiLightMenu/_nds/GBARunner2_arm7dldi_nodsp_3ds.nds
rm -rf TWiLightMenu/_nds/TWiLightMenu/bootplg.srldr
rm -rf TWiLightMenu/_nds/TWiLightMenu/gbaswitch.srldr
7z a TWiLightMenu-DSi.7z TWiLightMenu
mv TWiLightMenu-DSi.7z ~/artifacts
# 3DS 7z
rm -rf TWiLightMenu
cp -r 7zfile/ TWiLightMenu/
cp -r TWiLightMenu/3DS\ -\ CFW\ users/* TWiLightMenu
rm -rf TWiLightMenu/3DS\ -\ CFW\ users
cp -r TWiLightMenu/DSi\&3DS\ -\ SD\ card\ users/* TWiLightMenu
rm -rf TWiLightMenu/DSi\&3DS\ -\ SD\ card\ users
rm -rf TWiLightMenu/DSi\ -\ CFW\ users
rm -rf TWiLightMenu/Flashcard\ users
rm -rf TWiLightMenu/_nds/GBARunner2_arm7dldi_dsi.nds
rm -rf TWiLightMenu/_nds/GBARunner2_arm7dldi_nodsp_dsi.nds
rm -rf TWiLightMenu/_nds/TWiLightMenu/unlaunch
rm -rf TWiLightMenu/_nds/TWiLightMenu/bootplg.srldr
rm -rf TWiLightMenu/_nds/TWiLightMenu/gbaswitch.srldr
7z a TWiLightMenu-3DS.7z TWiLightMenu
mv TWiLightMenu-3DS.7z ~/artifacts
# Flashcard 7z
rm -rf TWiLightMenu
cp -r 7zfile/ TWiLightMenu/
cp -r TWiLightMenu/Flashcard\ users/* TWiLightMenu
rm -rf TWiLightMenu/Flashcard\ users
rm -rf TWiLightMenu/3DS\ -\ CFW\ users
rm -rf TWiLightMenu/DSi\&3DS\ -\ SD\ card\ users
rm -rf TWiLightMenu/DSi\ -\ CFW\ users
7z a TWiLightMenu-Flashcard.7z TWiLightMenu
mv TWiLightMenu-Flashcard.7z ~/artifacts
# apfix.pck
cp 7zfile/_nds/TWiLightMenu/extras/apfix.pck ~/artifacts
# widescreen.pck
cp 7zfile/_nds/TWiLightMenu/extras/widescreen.pck ~/artifacts
- name: Publish build to GH Actions
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }}
uses: actions/upload-artifact@v3
with:
path: ~/artifacts/*
name: build
- name: Publish build to GH Actions (PR)
if: ${{ success() && startsWith(github.ref, 'refs/pull') }}
uses: actions/upload-artifact@v3
with:
path: ~/artifacts/TWiLightMenu.7z
name: build
# Only run this for non-PR jobs.
publish_build:
runs-on: ubuntu-latest
name: Publish build to TWLBot
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }}
needs: build
env:
COMMIT_TAG: ${{ needs.build.outputs.commit_tag }}
COMMIT_HASH: ${{ needs.build.outputs.commit_hash }}
AUTHOR_NAME: ${{ needs.build.outputs.author_name }}
COMMIT_SUBJECT: ${{ needs.build.outputs.commit_subject }}
COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }}
outputs:
current_date: ${{ steps.commit.outputs.current_date }}
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
with:
name: build
path: build
- name: Commit and push to TWLBot/Builds
id: commit
run: |
CURRENT_DATE=$(date +"%Y%m%d-%H%M%S")
echo "current_date=$CURRENT_DATE" >> $GITHUB_OUTPUT
git config --global user.email "[email protected]"
git config --global user.name "TWLBot"
git clone --depth 1 https://${{ secrets.TWLBOT_TOKEN }}@github.com/TWLBot/Builds.git
cd Builds/
cp ${{ github.workspace }}/build/*.7z .
mv ${{ github.workspace }}/build/apfix.pck extras
mv ${{ github.workspace }}/build/widescreen.pck extras
git stage .
git commit -m "TWiLightMenu | $COMMIT_HASH"
git tag v$CURRENT_DATE
git push origin v$CURRENT_DATE master
- name: Release to TWLBot/Builds
run: |
AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}"
CONTENT_TYPE="Content-Type: application/json"
API_URL="https://api.github.com/repos/TWLBot/Builds/releases"
RELEASE_INFO="{\"tag_name\": \"v${{ steps.commit.outputs.current_date }}\", \"name\": \"TWiLightMenu | $COMMIT_HASH\", \"body\": \"$AUTHOR_NAME - $COMMIT_SUBJECT\", \"prerelease\": true}"
RESPONSE=$(curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_TYPE" "$API_URL" -d "$RELEASE_INFO")
ID=$(echo $RESPONSE | jq --raw-output '.id')
for file in ${{ github.workspace }}/build/*.7z; do
AUTH_HEADER="Authorization: token ${{ secrets.TWLBOT_TOKEN }}"
CONTENT_LENGTH="Content-Length: $(stat -c%s $file)"
CONTENT_TYPE="Content-Type: application/7z-x-compressed"
UPLOAD_URL="https://uploads.github.com/repos/TWLBot/Builds/releases/$ID/assets?name=$(basename $file)"
curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL"
done
send_success_webhook:
runs-on: ubuntu-latest
needs: [publish_build, build]
name: Send success webhook
if: ${{ !startsWith(github.ref, 'refs/pull') && success() }}
env:
CURRENT_DATE: ${{ needs.publish_build.outputs.current_date }}
AUTHOR_NAME: ${{ needs.build.outputs.author_name }}
COMMITTER_NAME: ${{ needs.build.outputs.committer_name }}
COMMIT_SUBJECT: ${{ needs.build.outputs.commit_subject }}
COMMIT_MESSAGE: ${{ needs.build.outputs.commit_message }}
steps:
- name: Send success webhook
run: |
curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh
chmod +x send.sh
./send.sh success ${{ secrets.WEBHOOK_URL }}
send_failure_webhook:
runs-on: ubuntu-latest
needs: [publish_build, build]
name: Send failure webhook
if: ${{ !startsWith(github.ref, 'refs/pull') && failure() }}
steps:
- name: Send failure webhook
run: |
curl -o send.sh https://raw.githubusercontent.com/DS-Homebrew/discord-webhooks/master/send-ghactions.sh
chmod +x send.sh
./send.sh failure ${{ secrets.WEBHOOK_URL }}