-
Notifications
You must be signed in to change notification settings - Fork 278
129 lines (122 loc) · 3.83 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: Build
on: [push, pull_request]
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
build-linux:
name: Build on Linux
runs-on: ubuntu-latest
env:
MAKEFLAGS: -j2
steps:
- uses: actions/checkout@v4
- name: Checkout submodules
# submodules are not used by the build, but needed for `make dist`:
run: git submodule update --init deps/json deps/pugixml
- name: Add wxWidgets 3.2 packages
# this is for build testing only, not shipping binaries, so don't bother verifying the key
run: |
sudo apt-key adv --fetch-keys https://repos.codelite.org/CodeLite.asc
sudo apt-add-repository 'deb https://repos.codelite.org/wx3.2/ubuntu/ jammy universe'
- name: Install dependencies
run: |
sudo apt-get update && \
sudo apt-get install \
gettext \
libexpat1-dev \
libdb++-dev \
libboost-dev \
libboost-system-dev \
libboost-regex-dev \
libboost-thread-dev \
libboost-iostreams-dev \
liblucene++-dev \
libicu-dev \
libwxgtk3.2unofficial-dev \
libwebkit2gtk-4.0-dev \
libjavascriptcoregtk-4.0-dev \
libnotify-dev \
libwxgtk-webview3.2unofficial-dev \
libgtk-3-dev \
libgtkspell3-3-dev \
libcld2-dev \
libcpprest-dev \
libsecret-1-dev \
libpugixml-dev \
nlohmann-json3-dev
- name: Install ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
- name: Add ccache to path
run: echo "/usr/lib/ccache" >> $GITHUB_PATH
- name: Run bootstrap
run: ./bootstrap
- name: Run configure
run: ./configure
- name: Run make distcheck
run: make distcheck
- name: Upload source tarball artifact
uses: actions/upload-artifact@v4
with:
name: source-tarball
path: poedit-*.tar.gz
build-macos:
name: Build on macOS
runs-on: macos-13
steps:
- name: Setup parallel submodule fetching
run: git config --global submodule.fetchJobs 10
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Deepen git history
run: git fetch --deepen=100000 --filter=blob:none origin ${{ github.ref }}
- name: Install ccache
uses: hendrikmuhs/[email protected]
with:
key: ${{ github.job }}
- name: Install external dependencies
run: brew bundle --file=macos/Brewfile
- uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: '^14.3.0'
- uses: sersoft-gmbh/xcodebuild-action@v3
with:
workspace: Poedit.xcworkspace
scheme: Poedit
parallelize-targets: true
action: build
build-windows:
name: Build on Windows
runs-on: windows-latest
steps:
- name: Setup parallel submodule fetching
run: git config --global submodule.fetchJobs 10
- uses: actions/checkout@v4
with:
submodules: recursive
- name: Deepen git history
run: git fetch --deepen=100000 --filter=blob:none origin ${{ github.ref }}
- uses: microsoft/setup-msbuild@v2
- uses: nuget/setup-nuget@v2
- name: Restore NuGet packages
run: nuget restore Poedit.sln
- name: Build solution
run: msbuild Poedit.sln /p:configuration=Debug
publish-release:
name: Publish release tarball
if: startsWith(github.ref, 'refs/tags/v')
runs-on: ubuntu-latest
needs: build-linux
steps:
- uses: actions/download-artifact@v4
with:
name: source-tarball
- uses: ncipollo/release-action@v1
with:
allowUpdates: true
prerelease: true
artifacts: "*.tar.gz"
token: ${{ secrets.GITHUB_TOKEN }}