diff options
-rw-r--r-- | .github/workflows/build.yml | 214 |
1 files changed, 214 insertions, 0 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 0000000..6fcc2c7 --- /dev/null +++ b/.github/workflows/build.yml | |||
@@ -0,0 +1,214 @@ | |||
1 | name: build | ||
2 | |||
3 | on: [push] | ||
4 | |||
5 | jobs: | ||
6 | build-linux-ubuntu: | ||
7 | runs-on: ubuntu-latest | ||
8 | steps: | ||
9 | - name: install dependencies | ||
10 | run: | | ||
11 | sudo apt-get install cython | ||
12 | - name: prepare environment | ||
13 | run: | | ||
14 | echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV | ||
15 | - name: fetch libplist | ||
16 | uses: dawidd6/action-download-artifact@v2 | ||
17 | with: | ||
18 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
19 | workflow: build.yml | ||
20 | name: libplist-latest_${{env.target_triplet}} | ||
21 | repo: libimobiledevice/libplist | ||
22 | - name: fetch libusbmuxd | ||
23 | uses: dawidd6/action-download-artifact@v2 | ||
24 | with: | ||
25 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
26 | workflow: build.yml | ||
27 | name: libusbmuxd-latest_${{env.target_triplet}} | ||
28 | repo: libimobiledevice/libusbmuxd | ||
29 | - name: fetch libimobiledevice-glue | ||
30 | uses: dawidd6/action-download-artifact@v2 | ||
31 | with: | ||
32 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
33 | workflow: build.yml | ||
34 | name: libimobiledevice-glue-latest_${{env.target_triplet}} | ||
35 | repo: libimobiledevice/libimobiledevice-glue | ||
36 | - name: install external dependencies | ||
37 | run: | | ||
38 | mkdir extract | ||
39 | for I in *.tar; do | ||
40 | tar -C extract -xvf $I | ||
41 | done | ||
42 | sudo cp -r extract/* / | ||
43 | sudo ldconfig | ||
44 | - uses: actions/checkout@v2 | ||
45 | with: | ||
46 | fetch-depth: 0 | ||
47 | - name: autogen | ||
48 | run: ./autogen.sh PKG_CONFIG_PATH=/usr/local/lib/pkgconfig LDFLAGS="-Wl,-rpath=/usr/local/lib" | ||
49 | - name: make | ||
50 | run: make | ||
51 | - name: make install | ||
52 | run: sudo make install | ||
53 | - name: prepare artifact | ||
54 | run: | | ||
55 | mkdir -p dest | ||
56 | DESTDIR=`pwd`/dest make install | ||
57 | tar -C dest -cf libimobiledevice.tar usr | ||
58 | - name: publish artifact | ||
59 | uses: actions/upload-artifact@v2 | ||
60 | with: | ||
61 | name: libimobiledevice-latest_${{env.target_triplet}} | ||
62 | path: libimobiledevice.tar | ||
63 | build-macOS: | ||
64 | runs-on: macOS-latest | ||
65 | steps: | ||
66 | - name: install dependencies | ||
67 | run: | | ||
68 | if test -x "`which port`"; then | ||
69 | sudo port install libtool autoconf automake pkgconfig | ||
70 | else | ||
71 | brew install libtool autoconf automake pkgconfig | ||
72 | fi | ||
73 | pip install cython | ||
74 | shell: bash | ||
75 | - name: fetch libplist | ||
76 | uses: dawidd6/action-download-artifact@v2 | ||
77 | with: | ||
78 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
79 | workflow: build.yml | ||
80 | name: libplist-latest_macOS | ||
81 | repo: libimobiledevice/libplist | ||
82 | - name: fetch libusbmuxd | ||
83 | uses: dawidd6/action-download-artifact@v2 | ||
84 | with: | ||
85 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
86 | workflow: build.yml | ||
87 | name: libusbmuxd-latest_macOS | ||
88 | repo: libimobiledevice/libusbmuxd | ||
89 | - name: fetch libimobiledevice-glue | ||
90 | uses: dawidd6/action-download-artifact@v2 | ||
91 | with: | ||
92 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
93 | workflow: build.yml | ||
94 | name: libimobiledevice-glue-latest_macOS | ||
95 | repo: libimobiledevice/libimobiledevice-glue | ||
96 | - name: install external dependencies | ||
97 | run: | | ||
98 | mkdir extract | ||
99 | for I in *.tar; do | ||
100 | tar -C extract -xvf $I | ||
101 | done | ||
102 | sudo cp -r extract/* / | ||
103 | - uses: actions/checkout@v2 | ||
104 | - name: install additional requirements | ||
105 | run: | | ||
106 | mkdir -p lib | ||
107 | curl -o lib/libcrypto.35.tbd -Ls \ | ||
108 | https://gist.github.com/nikias/94c99fd145a75a5104415e5117b0cafa/raw/5209dfbff5a871a14272afe4794e76eb4cf6f062/libcrypto.35.tbd | ||
109 | curl -o lib/libssl.35.tbd -Ls \ | ||
110 | https://gist.github.com/nikias/94c99fd145a75a5104415e5117b0cafa/raw/5209dfbff5a871a14272afe4794e76eb4cf6f062/libssl.35.tbd | ||
111 | echo "LIBSSL=`pwd`/lib/libssl.35.tbd" >> $GITHUB_ENV | ||
112 | echo "LIBCRYPTO=`pwd`/lib/libcrypto.35.tbd" >> $GITHUB_ENV | ||
113 | LIBRESSL_VER=2.2.7 | ||
114 | echo "LIBRESSL_VER=$LIBRESSL_VER" >> $GITHUB_ENV | ||
115 | FILENAME="libressl-$LIBRESSL_VER.tar.gz" | ||
116 | curl -o $FILENAME -Ls "https://ftp.openbsd.org/pub/OpenBSD/LibreSSL/$FILENAME" | ||
117 | mkdir -p deps | ||
118 | tar -C deps -xzf $FILENAME | ||
119 | echo "DEPSDIR=`pwd`/deps" >> $GITHUB_ENV | ||
120 | - name: autogen | ||
121 | run: | | ||
122 | ./autogen.sh PKG_CONFIG_PATH=/usr/local/lib/pkgconfig --enable-debug \ | ||
123 | openssl_CFLAGS="-I${{ env.DEPSDIR }}/libressl-${{ env.LIBRESSL_VER }}/include" \ | ||
124 | openssl_LIBS="-Xlinker ${{ env.LIBSSL }} -Xlinker ${{ env.LIBCRYPTO }}" | ||
125 | - name: make | ||
126 | run: make | ||
127 | - name: make install | ||
128 | run: sudo make install | ||
129 | - name: prepare artifact | ||
130 | run: | | ||
131 | mkdir -p dest | ||
132 | DESTDIR=`pwd`/dest make install | ||
133 | tar -C dest -cf libimobiledevice.tar usr | ||
134 | - name: publish artifact | ||
135 | uses: actions/upload-artifact@v2 | ||
136 | with: | ||
137 | name: libimobiledevice-latest_macOS | ||
138 | path: libimobiledevice.tar | ||
139 | build-windows: | ||
140 | runs-on: windows-latest | ||
141 | defaults: | ||
142 | run: | ||
143 | shell: msys2 {0} | ||
144 | strategy: | ||
145 | fail-fast: false | ||
146 | matrix: | ||
147 | include: [ | ||
148 | { msystem: MINGW64, arch: x86_64 }, | ||
149 | { msystem: MINGW32, arch: i686 } | ||
150 | ] | ||
151 | steps: | ||
152 | - uses: msys2/setup-msys2@v2 | ||
153 | with: | ||
154 | msystem: ${{ matrix.msystem }} | ||
155 | release: false | ||
156 | update: false | ||
157 | install: >- | ||
158 | base-devel | ||
159 | git | ||
160 | mingw-w64-${{ matrix.arch }}-gcc | ||
161 | make | ||
162 | libtool | ||
163 | autoconf | ||
164 | automake-wrapper | ||
165 | - name: prepare environment | ||
166 | run: | | ||
167 | dest=`echo ${{ matrix.msystem }} |tr [:upper:] [:lower:]` | ||
168 | echo "dest=$dest" >> $GITHUB_ENV | ||
169 | echo "target_triplet=`gcc -dumpmachine`" >> $GITHUB_ENV | ||
170 | - name: fetch libplist | ||
171 | uses: dawidd6/action-download-artifact@v2 | ||
172 | with: | ||
173 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
174 | workflow: build.yml | ||
175 | name: libplist-latest_${{ matrix.arch }}-${{ env.dest }} | ||
176 | repo: libimobiledevice/libplist | ||
177 | - name: fetch libusbmuxd | ||
178 | uses: dawidd6/action-download-artifact@v2 | ||
179 | with: | ||
180 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
181 | workflow: build.yml | ||
182 | name: libusbmuxd-latest_${{ matrix.arch }}-${{ env.dest }} | ||
183 | repo: libimobiledevice/libusbmuxd | ||
184 | - name: fetch libimobiledevice-glue | ||
185 | uses: dawidd6/action-download-artifact@v2 | ||
186 | with: | ||
187 | github_token: ${{secrets.GITHUB_TOKEN}} | ||
188 | workflow: build.yml | ||
189 | name: libimobiledevice-glue-latest_${{ matrix.arch }}-${{ env.dest }} | ||
190 | repo: libimobiledevice/libimobiledevice-glue | ||
191 | - name: install external dependencies | ||
192 | run: | | ||
193 | mkdir extract | ||
194 | for I in *.tar; do | ||
195 | tar -C extract -xvf $I | ||
196 | done | ||
197 | cp -r extract/* / | ||
198 | - uses: actions/checkout@v2 | ||
199 | - name: autogen | ||
200 | run: ./autogen.sh CC=gcc CXX=g++ | ||
201 | - name: make | ||
202 | run: make | ||
203 | - name: make install | ||
204 | run: make install | ||
205 | - name: prepare artifact | ||
206 | run: | | ||
207 | mkdir -p dest | ||
208 | DESTDIR=`pwd`/dest make install | ||
209 | tar -C dest -cf libimobiledevice.tar ${{ env.dest }} | ||
210 | - name: publish artifact | ||
211 | uses: actions/upload-artifact@v2 | ||
212 | with: | ||
213 | name: libimobiledevice-latest_${{ matrix.arch }}-${{ env.dest }} | ||
214 | path: libimobiledevice.tar | ||