-
Notifications
You must be signed in to change notification settings - Fork 0
170 lines (159 loc) · 7.14 KB
/
main.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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
name: Create a snapshot release
on:
workflow_dispatch:
permissions:
contents: write
pull-requests: write
jobs:
build:
name: Build
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
- uses: nixbuild/nix-quick-install-action@v29
- name: Remove unnecessary packages
run: | # stolen from https://github.com/easimon/maximize-build-space and https://github.com/actions/runner-images/issues/2840
echo "=== Before pruning ==="
df -h
sudo rm -rf /opt || :
sudo rm -rf /usr/share/dotnet || :
sudo rm -rf "/usr/local/share/boost" || :
sudo rm -rf "$AGENT_TOOLSDIRECTORY" || :
echo
echo "=== After pruning ==="
df -h
# To make the environment in the flake's devShell available to future steps:
- uses: rrbutani/use-nix-shell-action@v1
with:
devShell: .#default
- name: Calculate cache hash based on nixpkgs' revision
run: |
NIXPKGS_REV=$(nix flake metadata . --json 2>/dev/null | jq --raw-output '.locks.nodes."nixpkgs".locked.rev')
echo "NIXPKGS_REV=$NIXPKGS_REV" >> "$GITHUB_ENV"
- name: Restore cache
uses: nix-community/cache-nix-action/[email protected]
with:
primary-key: build-${{ runner.os }}-${{ env.NIXPKGS_REV }}
fail-on: primary-key.miss
- name: Update Doom2D related inputs and populate environment variables
run: |
sudo apt-get update && sudo apt-get install tzdata locales -y
sudo timedatectl set-timezone Europe/Moscow
sudo localedef -f UTF-8 -i /usr/share/i18n/locales/ru_RU /usr/lib/locale/ru_RU.UTF-8
sudo echo 'ru_RU.UTF-8 UTF-8' | sudo tee -a /etc/locale.gen > /dev/null
sudo mkdir -p /usr/local/share/i18n
sudo touch /usr/local/share/i18n/SUPPORTED
sudo echo 'ru_RU.UTF-8 UTF-8' | sudo tee -a /usr/local/share/i18n/SUPPORTED > /dev/null
sudo locale-gen ru_RU.UTF-8
sudo locale-gen ru_RU
sudo locale-gen
locale -a
locale
sudo update-locale LANG=ru_RU.UTF-8
bash ./game/bundle/scripts/mkEnv.bash
- name: Build debug APK
env:
ASSETS_SOUNDFONT: 1
run: |
bash ./game/bundle/scripts/mkAndroid.bash
- uses: actions/upload-artifact@v4
with:
name: doom2df-android
path: result
if-no-files-found: error
- name: Build Windows x86 ZIP bundle
env:
D2DF_LAST_COMMIT_DATE: ${{ env.D2DF_LAST_COMMIT_DATE }}
RES_LAST_COMMIT_DATE: ${{ env.RES_LAST_COMMIT_DATE }}
EDITOR_LAST_COMMIT_DATE: ${{ env.EDITOR_LAST_COMMIT_DATE }}
DISTRO_CONTENT_CREATION_DATE: ${{ env.DISTRO_CONTENT_CREATION_DATE }}
run: |
export D2DF_LAST_COMMIT_DATE=$D2DF_LAST_COMMIT_DATE
export RES_LAST_COMMIT_DATE=$RES_LAST_COMMIT_DATE
export EDITOR_LAST_COMMIT_DATE=$EDITOR_LAST_COMMIT_DATE
export DISTRO_CONTENT_CREATION_DATE=$DISTRO_CONTENT_CREATION_DATE
export BUILD_ARCH=mingw32
export IS_WINDOWS=1
bash ./game/bundle/scripts/mkZip.bash
- uses: actions/upload-artifact@v4
with:
name: doom2df-mingw32
path: doom2df-mingw32.zip
- name: Build Windows x86_64 ZIP bundle
env:
D2DF_LAST_COMMIT_DATE: ${{ env.D2DF_LAST_COMMIT_DATE }}
RES_LAST_COMMIT_DATE: ${{ env.RES_LAST_COMMIT_DATE }}
EDITOR_LAST_COMMIT_DATE: ${{ env.EDITOR_LAST_COMMIT_DATE }}
DISTRO_CONTENT_CREATION_DATE: ${{ env.DISTRO_CONTENT_CREATION_DATE }}
run: |
export D2DF_LAST_COMMIT_DATE=$D2DF_LAST_COMMIT_DATE
export RES_LAST_COMMIT_DATE=$RES_LAST_COMMIT_DATE
export EDITOR_LAST_COMMIT_DATE=$EDITOR_LAST_COMMIT_DATE
export DISTRO_CONTENT_CREATION_DATE=$DISTRO_CONTENT_CREATION_DATE
export BUILD_ARCH=mingw64
export IS_WINDOWS=1
bash ./game/bundle/scripts/mkZip.bash
- uses: actions/upload-artifact@v4
with:
name: doom2df-mingw64
path: doom2df-mingw64.zip
- name: Build MacOS x86_64 ZIP bundle
env:
D2DF_LAST_COMMIT_DATE: ${{ env.D2DF_LAST_COMMIT_DATE }}
RES_LAST_COMMIT_DATE: ${{ env.RES_LAST_COMMIT_DATE }}
EDITOR_LAST_COMMIT_DATE: ${{ env.EDITOR_LAST_COMMIT_DATE }}
DISTRO_CONTENT_CREATION_DATE: ${{ env.DISTRO_CONTENT_CREATION_DATE }}
run: |
export D2DF_LAST_COMMIT_DATE=$D2DF_LAST_COMMIT_DATE
export RES_LAST_COMMIT_DATE=$RES_LAST_COMMIT_DATE
export EDITOR_LAST_COMMIT_DATE=$EDITOR_LAST_COMMIT_DATE
export DISTRO_CONTENT_CREATION_DATE=$DISTRO_CONTENT_CREATION_DATE
export BUILD_ARCH=x86_64-apple-darwin
bash ./game/bundle/scripts/mkZip.bash
- uses: actions/upload-artifact@v4
with:
name: doom2df-x86_64-apple-darwin
path: doom2df-x86_64-apple-darwin.zip
- name: Build MacOS aarch64 ZIP bundle
env:
D2DF_LAST_COMMIT_DATE: ${{ env.D2DF_LAST_COMMIT_DATE }}
RES_LAST_COMMIT_DATE: ${{ env.RES_LAST_COMMIT_DATE }}
EDITOR_LAST_COMMIT_DATE: ${{ env.EDITOR_LAST_COMMIT_DATE }}
DISTRO_CONTENT_CREATION_DATE: ${{ env.DISTRO_CONTENT_CREATION_DATE }}
run: |
export D2DF_LAST_COMMIT_DATE=$D2DF_LAST_COMMIT_DATE
export RES_LAST_COMMIT_DATE=$RES_LAST_COMMIT_DATE
export EDITOR_LAST_COMMIT_DATE=$EDITOR_LAST_COMMIT_DATE
export DISTRO_CONTENT_CREATION_DATE=$DISTRO_CONTENT_CREATION_DATE
export BUILD_ARCH=arm64-apple-darwin
bash ./game/bundle/scripts/mkZip.bash
- uses: actions/upload-artifact@v4
with:
name: doom2df-arm64-apple-darwin
path: doom2df-arm64-apple-darwin.zip
if-no-files-found: error
- name: Calculate new build number
run: |
GITHUB_RESPONSE_FILE=github_response
TODAY=$(date +'%Y-%m-%d')
curl \
-H "Accept: application/vnd.github.v3+json" https://api.github.com/repos/${{ github.repository }}/releases \
-H "Authorization: ${{ secrets.GITHUB_TOKEN }}" \
> $GITHUB_RESPONSE_FILE
TODAY_RELEASES_COUNT=$(jq --arg TODAY $TODAY '[.[] | select(.prerelease == true and (.created_at | startswith($TODAY) ) )] | length' $GITHUB_RESPONSE_FILE)
THIS_RELEASE_COUNT=$(( $TODAY_RELEASES_COUNT + 1 ))
RELEASE_PREFIX="0.667b"
RELEASE_NAME="${RELEASE_PREFIX}-$(date +'%Y.%m.%d')-$THIS_RELEASE_COUNT"
echo "RELEASE_NAME=$RELEASE_NAME" >> $GITHUB_ENV
- uses: ncipollo/release-action@v1
if: ${{ github.event_name == 'push' || github.event_name == 'workflow_dispatch'}}
with:
artifacts: doom2df-mingw32.zip, doom2df-android.apk, doom2df-mingw64.zip, doom2df-x86_64-apple-darwin.zip, doom2df-arm64-apple-darwin.zip
token: ${{ secrets.GITHUB_TOKEN }}
name: ${{ env.RELEASE_NAME }}
bodyFile: release_body
tag: ${{ env.RELEASE_NAME }}
allowUpdates: false
artifactErrorsFailBuild: true
prerelease: true
replacesArtifacts: true