-
Notifications
You must be signed in to change notification settings - Fork 26
141 lines (122 loc) · 4.09 KB
/
build.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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
name: Build
on:
push:
pull_request:
jobs:
build:
# This is a *private* build container.
# See docs/github_actions.md for more information.
container: ghcr.io/bfbbdecomp/bfbb-build:main
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
# Add game versions here
version: [GQPE78]
steps:
# Checkout the repository (shallow clone)
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
# Set Git config
- name: Git config
run: git config --global --add safe.directory "$GITHUB_WORKSPACE"
# Copy the original files to the workspace
- name: Prepare
run: cp -R /orig .
- name: Download objdiff CLI
if: github.ref == 'refs/heads/main'
run: |
python tools/download_tool.py --tag v2.0.0-alpha.5 objdiff-cli objdiff-cli
# Build the project
- name: Build
run: |
python configure.py --wrapper wibo --map --version ${{ matrix.version }} \
--binutils /binutils --compilers /compilers
ninja all_source build/${{ matrix.version }}/progress.json
# Upload progress if we're on the main branch
- name: Upload progress
# If you're using a different branch, change this to match
if: github.ref == 'refs/heads/main'
continue-on-error: true
env:
# Replace with your project slug
PROGRESS_SLUG: bfbb
# Set the API key in your repository secrets
PROGRESS_API_KEY: ${{ secrets.PROGRESS_API_KEY }}
run: |
python tools/upload_progress.py -b https://progress.decomp.club/ \
-p $PROGRESS_SLUG -v ${{ matrix.version }} \
build/${{ matrix.version }}/progress.json
# Upload map files
- name: Upload map
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.version }}_maps
path: build/${{ matrix.version }}/**/*.MAP
- name: Generate Progress Reports
if: github.ref == 'refs/heads/main'
run: |
./objdiff-cli report generate -o progress.json
git log -1 --pretty='{"id": "%H", "email": "%ae", "time": "%ad", "message": "%s"}' --date=format:"%Y-%m-%dT%H:%M:%S" > progress-commit.json
git checkout HEAD~1
rm -rf ./build/
ninja all_source
./objdiff-cli report generate -o previous.json
- name: Save Progress Artifacts
if: github.ref == 'refs/heads/main'
uses: actions/upload-artifact@v4
with:
name: progress
path: |
progress.json
previous.json
progress-commit.json
website:
runs-on: ubuntu-latest
permissions:
contents: write
needs: build
if: github.ref == 'refs/heads/main'
steps:
- name: Checkout website code
uses: actions/checkout@v4
with:
repository: bfbbdecomp/website
- name: Download Progress Artifacts
uses: actions/download-artifact@v4
with:
name: progress
path: ./artifacts
- uses: actions/setup-dotnet@v4
with:
dotnet-version: "8.x.x"
- name: Build Website
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
run: |
python build.py
- name: Deploy Website
uses: JamesIves/github-pages-deploy-action@v4
with:
branch: gh-pages
folder: dist # The folder the action should deploy.
clean: true
single-commit: true
- name: Commit Changes
continue-on-error: true
run: |
git status
git pull origin main
git config --global user.name "BFBB Actions Bot"
git config --global user.email "[email protected]"
git add .
git commit -m "automated commit cache update"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.WEBSITE_TOKEN }}
repository: bfbbdecomp/website
branch: ${{ github.ref }}