Skip to content

Commit 3b5f10b

Browse files
authored
Merge pull request #22 from taysta/cicd-test
[CI/CD] Update and fix actions, add macOS arm64 build
2 parents a2a5484 + 7193673 commit 3b5f10b

File tree

2 files changed

+88
-23
lines changed

2 files changed

+88
-23
lines changed

.github/workflows/build.yml

Lines changed: 87 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,10 @@ jobs:
3030
pkg_suffix: x86
3131

3232
steps:
33-
- uses: actions/checkout@v2
33+
- uses: actions/checkout@v4
3434

3535
- name: Add msbuild to PATH
36-
uses: microsoft/setup-msbuild@v1.0.2
36+
uses: microsoft/setup-msbuild@v2
3737

3838
- name: Create Build Environment
3939
run: cmake -E make_directory ${{runner.workspace}}/build
@@ -67,15 +67,15 @@ jobs:
6767
rm start_jaMME.command
6868
rm start_jaMME.sh
6969
70-
- uses: actions/upload-artifact@v2
70+
- uses: actions/upload-artifact@v4
7171
with:
7272
name: jamme-windows-${{ matrix.arch }}
7373
path: ${{runner.workspace}}/jaMME/build/
7474
if-no-files-found: error
7575

7676
ubuntu:
7777
name: ${{ matrix.config }} Ubuntu ${{ matrix.arch }}
78-
runs-on: ubuntu-latest
78+
runs-on: ubuntu-20.04
7979
strategy:
8080
fail-fast: false
8181
matrix:
@@ -91,15 +91,16 @@ jobs:
9191
use_sdl: true
9292

9393
steps:
94-
- uses: actions/checkout@v2
94+
- uses: actions/checkout@v4
9595

9696
- name: Create Build Environment
9797
run: |
9898
if [ ${{ matrix.arch }} == "x86" ]; then
9999
sudo dpkg --add-architecture i386
100100
sudo apt-get -qq update
101-
sudo apt-get -y install gcc-multilib g++-multilib ninja-build
102-
sudo apt-get -y install --allow-downgrades libpcre2-8-0=10.34-7 libglib2.0-dev:i386 libjpeg-dev:i386 libpng-dev:i386 libsdl2-dev:i386 libcurl4-openssl-dev:i386 libmad0-dev:i386
101+
sudo apt-get -y install aptitude
102+
sudo apt-get -y install --allow-downgrades libpcre2-8-0=10.34-7 gcc-multilib g++-multilib ninja-build libjpeg-dev:i386 libpng-dev:i386 libcurl4-openssl-dev:i386 libmad0-dev:i386
103+
sudo aptitude -y install libglib2.0-dev:i386 libsdl2-dev:i386
103104
else
104105
sudo apt-get -qq update
105106
sudo apt-get install libjpeg-dev libpng-dev zlib1g-dev libsdl2-dev libmad0-dev
@@ -141,18 +142,18 @@ jobs:
141142
chmod +x start_jaMME.sh
142143
rm start_jaMME.command
143144
rm start_jaMME.cmd
144-
tar -cvf jamme-linux-${{ matrix.arch }}.tar ./*
145+
tar -czvf jamme-linux-${{ matrix.arch }}.tar.gz ./*
145146
146-
- uses: actions/upload-artifact@v2
147+
- uses: actions/upload-artifact@v4
147148
if: matrix.cc == 'gcc' && matrix.config == 'Release'
148149
with:
149150
name: jamme-linux-${{ matrix.arch }}
150-
path: ${{runner.workspace}}/jaMME/build/jamme-linux-${{ matrix.arch }}.tar
151+
path: ${{runner.workspace}}/jaMME/build/jamme-linux-${{ matrix.arch }}.tar.gz
151152
if-no-files-found: error
152153

153154
macos:
154155
name: ${{ matrix.config }} macOS ${{ matrix.arch }}
155-
runs-on: macos-latest
156+
runs-on: macos-13
156157
strategy:
157158
fail-fast: false
158159
matrix:
@@ -164,11 +165,11 @@ jobs:
164165
rule: install
165166

166167
steps:
167-
- uses: actions/checkout@v2
168+
- uses: actions/checkout@v4
168169

169170
- name: Create Build Environment
170171
run: |
171-
brew install zlib libjpeg libpng sdl2
172+
brew install zlib libjpeg sdl2
172173
cmake -E make_directory ${{runner.workspace}}/build
173174
174175
- name: Configure CMake
@@ -202,43 +203,106 @@ jobs:
202203
chmod +x start_jaMME.command
203204
rm start_jaMME.cmd
204205
rm start_jaMME.sh
205-
tar -cvf jamme-macos-${{ matrix.arch }}.tar ./*
206+
tar -czvf jamme-macos-${{ matrix.arch }}.tar.gz ./*
207+
208+
- uses: actions/upload-artifact@v4
209+
if: matrix.cc == 'clang' && matrix.config == 'Release'
210+
with:
211+
name: jamme-macos-${{ matrix.arch }}
212+
path: ${{runner.workspace}}/jaMME/build/jamme-macos-${{ matrix.arch }}.tar.gz
213+
if-no-files-found: error
214+
215+
macos-arm64:
216+
name: ${{ matrix.config }} macOS ${{ matrix.arch }}
217+
runs-on: macos-14
218+
strategy:
219+
fail-fast: false
220+
matrix:
221+
arch: [arm64]
222+
cc: [clang]
223+
cxx: [clang++]
224+
include:
225+
- config: Release
226+
rule: install
227+
228+
steps:
229+
- uses: actions/checkout@v4
230+
231+
- name: Create Build Environment
232+
run: |
233+
brew install zlib libjpeg sdl2
234+
cmake -E make_directory ${{runner.workspace}}/build
235+
236+
- name: Configure CMake
237+
shell: bash
238+
working-directory: ${{runner.workspace}}/build
239+
run: cmake $GITHUB_WORKSPACE -DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_SYSTEM_PROCESSOR=arm64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/install
240+
241+
- name: Build
242+
working-directory: ${{runner.workspace}}/build
243+
shell: bash
244+
run: cmake --build .
245+
246+
- name: Install
247+
working-directory: ${{runner.workspace}}/build
248+
shell: bash
249+
run: cmake --install .
250+
251+
- name: Update readme
252+
working-directory: ${{runner.workspace}}/jaMME/build/mme
253+
shell: bash
254+
run: |
255+
sed -i.bak "s/Date: .*..*..*/Date: $(date +"%d.%m.%Y")/" readme.txt
256+
sed -i.bak "s/Revision: .*/Revision: "$(git rev-parse --short HEAD)"/" readme.txt
257+
rm readme.txt.bak
258+
259+
- name: Create binary archive
260+
working-directory: ${{runner.workspace}}/jaMME/build
261+
shell: bash
262+
run: |
263+
chmod +x jamme.app/Contents/MacOS/jamme
264+
chmod +x start_jaMME.command
265+
rm start_jaMME.cmd
266+
rm start_jaMME.sh
267+
tar -czvf jamme-macos-${{ matrix.arch }}.tar.gz ./*
206268
207-
- uses: actions/upload-artifact@v2
269+
- uses: actions/upload-artifact@v4
208270
if: matrix.cc == 'clang' && matrix.config == 'Release'
209271
with:
210272
name: jamme-macos-${{ matrix.arch }}
211-
path: ${{runner.workspace}}/jaMME/build/jamme-macos-${{ matrix.arch }}.tar
273+
path: ${{runner.workspace}}/jaMME/build/jamme-macos-${{ matrix.arch }}.tar.gz
212274
if-no-files-found: error
213275

214276
create-release:
215277
if: github.ref == 'refs/heads/master' && github.event_name == 'push' || github.event_name == 'workflow_dispatch'
216-
needs: [windows, ubuntu, macos]
278+
needs: [windows, ubuntu, macos, macos-arm64]
217279
runs-on: ubuntu-latest
218280
steps:
219-
- uses: actions/checkout@v2
281+
- uses: actions/checkout@v4
220282
with:
221283
submodules: recursive
222284

223285
- name: Download Artifacts
224-
uses: actions/download-artifact@v4.1.7
286+
uses: actions/download-artifact@v4
225287

226288
- name: Display structure of downloaded files
227289
run: ls -R
228290

229291
- name: Create binary archives
230292
run: |
231293
7z a -r jamme-linux-x86.zip ./jamme-linux-x86/*
232-
7z a -r jamme-linux-x86_64.zip ./jamme-linux-x86_64/*
233-
7z a -r jamme-windows-x86.zip ./jamme-windows-x86/*
234-
7z a -r jamme-macos-x86_64.zip ./jamme-macos-x86_64/*
294+
mv ./jamme-linux-x86/* ./jamme-linux-x86.tar.gz
295+
mv ./jamme-linux-x86_64/* ./jamme-linux-x86_64.tar.gz
296+
mv ./jamme-macos-x86_64/* ./jamme-macos-x86_64.tar.gz
297+
mv ./jamme-macos-arm64/* ./jamme-macos-arm64.tar.gz
235298
236299
- name: Create latest build
237-
uses: ec-/action-automatic-releases@test
300+
uses: crowbarmaster/GH-Automatic-Releases@latest
238301
with:
239302
repo_token: ${{ secrets.GITHUB_TOKEN }}
240303
automatic_release_tag: "latest"
241304
prerelease: false
242305
title: Latest Build
243306
files: |
244307
*.zip
308+
*.tar.gz

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ local.properties
1515
.classpath
1616
.settings/
1717
.loadpath
18+
.idea/
1819

1920
# External tool builders
2021
.externalToolBuilders/

0 commit comments

Comments
 (0)