-
Notifications
You must be signed in to change notification settings - Fork 0
129 lines (124 loc) · 4.38 KB
/
ci.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
name: CI/CD
on: [push, pull_request]
jobs:
build-linux:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- name: Install prerequisites
run: sudo apt-get update -y && sudo apt-get install -y
libasound2-dev
libfmt-dev
libfreetype-dev
libsdl2-dev
libspdlog-dev
nlohmann-json3-dev
- name: Configure CMake
run: cmake
-B ${{github.workspace}}/build
-D CMAKE_CXX_FLAGS="-Wall -Wextra"
-D CMAKE_BUILD_TYPE=Release
-D MC_COMMIT_SHA=${{github.sha}}
-D MC_BUILD_NUMBER=${{github.run_number}}
-D CPACK_GENERATOR=DEB
-D CPACK_SYSTEM_NAME=ubuntu-22.04
- name: Build
run: cmake --build ${{github.workspace}}/build --target midiconn -j `nproc`
- name: Create DEB package
run: cd ${{github.workspace}}/build && cpack -C Release
- name: Upload Artifacts
uses: actions/[email protected]
with:
path: |
${{github.workspace}}/build/midiconn
${{github.workspace}}/build/*.deb
build-flatpak:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- name: Install prerequisites
run: sudo apt-get update -y && sudo apt-get install -y
appstream-util
flatpak-builder
- name: Validate metainfo
run: appstream-util validate
${{github.workspace}}/data/packaging/xyz.safeworlds.midiconn.metainfo.xml
- name: Install flatpak prerequisites
run: sudo flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo &&
sudo flatpak install -y flathub org.freedesktop.Sdk//23.08 org.freedesktop.Platform//23.08
- name: Build flatpak
run: flatpak-builder build/flatpak ${{github.workspace}}/data/packaging/xyz.safeworlds.midiconn.yml
build-windows:
runs-on: windows-2022
env:
vcpkg-prereqs: nlohmann-json:x64-windows spdlog:x64-windows sdl2:x64-windows freetype[core]:x64-windows zlib:x64-windows
steps:
- uses: actions/checkout@v3
with:
submodules: true
lfs: true
- name: Restore vcpkg prerequisites cache
id: restore-cache-vcpkg
uses: actions/cache/restore@v3
with:
path: C:\vcpkg
key: ${{env.vcpkg-prereqs}}
- name: Install prerequisites
if: ${{ steps.restore-cache-vcpkg.outputs.cache-hit != 'true' }}
run: vcpkg install ${{env.vcpkg-prereqs}}
- name: Save vcpkg prerequisites cache
if: ${{ steps.restore-cache-vcpkg.outputs.cache-hit != 'true' }}
uses: actions/cache/save@v3
with:
path: C:\vcpkg
key: ${{env.vcpkg-prereqs}}
- name: Configure CMake
run: cmake
-B ${{github.workspace}}/build
-D MC_COMMIT_SHA=${{github.sha}}
-D MC_BUILD_NUMBER=${{github.run_number}}
-D MC_CHECK_FOR_UPDATES=ON
-D CMAKE_TOOLCHAIN_FILE=C:\vcpkg\scripts\buildsystems\vcpkg.cmake
-D CMAKE_CXX_FLAGS="/await /EHsc"
-T host=x64
-A x64
- name: Build
run: cmake --build ${{github.workspace}}/build --target midiconn --config Release
- name: Build installer
run: cd ${{github.workspace}}\build; cpack -C Release
- name: Upload Artifacts
uses: actions/[email protected]
with:
path: |
${{github.workspace}}\build\Release\*.exe
${{github.workspace}}\build\Release\*.dll
${{github.workspace}}\build\*.msi
release:
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-22.04
needs:
- build-linux
- build-windows
steps:
- name: Download artifacts
uses: actions/download-artifact@v3
- name: Create GitHub release
uses: softprops/action-gh-release@v1
with:
files: |
${{github.workspace}}/artifact/*.deb
${{github.workspace}}/artifact/*.msi
- name: Push artifacts to itch.io
shell: bash
run: |
wget https://broth.itch.ovh/butler/linux-amd64/LATEST/archive/default -O butler.zip
unzip butler.zip
export BUTLER_API_KEY=${{ secrets.BUTLER_API_KEY }}
./butler push ${{github.workspace}}/artifact/*.msi mfeproject/midiconn:windows-msi --userversion $GITHUB_REF_NAME
./butler push ${{github.workspace}}/artifact/*.deb mfeproject/midiconn:ubuntu2204-deb --userversion $GITHUB_REF_NAME