-
Notifications
You must be signed in to change notification settings - Fork 27
76 lines (70 loc) · 2.35 KB
/
building.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
name: Build GodMode9i
on:
push:
branches: ["*"]
paths-ignore:
- 'README.md'
pull_request:
branches: ["*"]
paths-ignore:
- 'README.md'
release:
types: [created]
jobs:
build:
runs-on: ubuntu-latest
container: devkitpro/devkitarm
name: Build with Docker using devkitARM
steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install tools
run: |
sudo apt-get update
sudo apt-get install p7zip-full -y
- name: Setup environment
run: git config --global safe.directory '*'
- name: Build & Package GodMode9i
id: build
run: |
make all dsi
chmod +x make_cia
./make_cia --srl="GodMode9i.dsi" --id_0=$(git rev-parse --short=7 HEAD) --tikID=$(git rev-parse --short=16 HEAD)
mkdir GodMode9i/
cp GodMode9i.dsi GodMode9i/
cp GodMode9i.nds GodMode9i/
cp GodMode9i.cia GodMode9i/
7z a GodMode9i.7z GodMode9i/
mkdir -p ~/artifacts
cp GodMode9i.dsi ~/artifacts
cp GodMode9i.nds ~/artifacts
cp GodMode9i.cia ~/artifacts
cp GodMode9i.7z ~/artifacts
- name: Publish build to GH Actions
uses: actions/upload-artifact@v4
with:
path: ~/artifacts/*
name: build
# Only run this for non-PR jobs.
publish_build:
runs-on: ubuntu-latest
name: Publish build
if: ${{ success() && !startsWith(github.ref, 'refs/pull') }}
needs: build
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: build
path: build
- name: Upload to ${{ github.repository }} release
if: ${{ startsWith(github.ref, 'refs/tags') }}
run: |
ID=$(jq --raw-output '.release.id' $GITHUB_EVENT_PATH)
for file in ${{ github.workspace }}/build/*; do
AUTH_HEADER="Authorization: token ${{ secrets.GITHUB_TOKEN }}"
CONTENT_LENGTH="Content-Length: $(stat -c%s $file)"
CONTENT_TYPE="Content-Type: application/7z-x-compressed"
UPLOAD_URL="https://uploads.github.com/repos/${{ github.repository }}/releases/$ID/assets?name=$(basename $file)"
curl -XPOST -H "$AUTH_HEADER" -H "$CONTENT_LENGTH" -H "$CONTENT_TYPE" --upload-file "$file" "$UPLOAD_URL"
done