-
-
Notifications
You must be signed in to change notification settings - Fork 93
146 lines (119 loc) · 4.51 KB
/
ios.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
name: iOS
on:
push:
paths-ignore:
- '**.md'
- 'docs/**'
- 'extras/images/**'
env:
CMAKE_VERSION: "3.24.0"
NINJA_VERSION: "1.10.0"
jobs:
build:
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.os }}
strategy:
fail-fast: false
matrix:
config:
- { name: "macOS", os: "macos-latest", target: "ios" }
python-version: [3.7]
steps:
- uses: actions/checkout@v2
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v1
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade PIP
run: python3 -m pip install --upgrade pip setuptools wheel
- name: Display Python version
run: python3 --version
- name: Display PIP version
run: python3 -m pip --version
- name: Install Ninja and CMake
id: cmake_and_ninja
shell: cmake -P {0}
run: |
set(cmake_version $ENV{CMAKE_VERSION})
set(ninja_version $ENV{NINJA_VERSION})
message(STATUS "Using host CMake version: ${CMAKE_VERSION}")
if ("${{ runner.os }}" STREQUAL "Windows")
set(ninja_suffix "win.zip")
set(cmake_suffix "win64-x64.zip")
set(cmake_dir "cmake-${cmake_version}-win64-x64/bin")
elseif ("${{ runner.os }}" STREQUAL "Linux")
set(ninja_suffix "linux.zip")
set(cmake_suffix "Linux-x86_64.tar.gz")
set(cmake_dir "cmake-${cmake_version}-Linux-x86_64/bin")
elseif ("${{ runner.os }}" STREQUAL "macOS")
set(ninja_suffix "mac.zip")
set(cmake_suffix "Darwin-x86_64.tar.gz")
set(cmake_dir "cmake-${cmake_version}-Darwin-x86_64/CMake.app/Contents/bin")
endif()
set(ninja_url "https://github.com/ninja-build/ninja/releases/download/v${ninja_version}/ninja-${ninja_suffix}")
file(DOWNLOAD "${ninja_url}" ./ninja.zip SHOW_PROGRESS)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./ninja.zip)
set(cmake_url "https://github.com/Kitware/CMake/releases/download/v${cmake_version}/cmake-${cmake_version}-${cmake_suffix}")
file(DOWNLOAD "${cmake_url}" ./cmake.zip SHOW_PROGRESS)
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xvf ./cmake.zip)
# Save the path for other steps
file(TO_CMAKE_PATH "$ENV{GITHUB_WORKSPACE}/${cmake_dir}" cmake_dir)
message("::set-output name=cmake_dir::${cmake_dir}")
if (NOT "${{ runner.os }}" STREQUAL "Windows")
execute_process(
COMMAND chmod +x ninja
COMMAND chmod +x ${cmake_dir}/cmake
)
endif()
- name: Python requirements
run: python3 -m pip install -r requirements.txt --user
- name: Depot tools
run: python3 make.py build-depot-tools
- name: Environment
run: |
echo "$PWD/build/depot-tools" >> $GITHUB_PATH
echo "FORCE_MAC_SDK_MIN=10.15" >> $GITHUB_ENV
- name: PDFium
run: python3 make.py build-pdfium-${{ matrix.config.target }}
- name: Patch
run: python3 make.py patch-${{ matrix.config.target }}
- name: Patch - Check
run: python3 make.py patch-${{ matrix.config.target }}
- name: Build
run: python3 make.py build-${{ matrix.config.target }}
- name: Install
run: python3 make.py install-${{ matrix.config.target }}
- name: Test
run: python3 make.py test-${{ matrix.config.target }}
- name: Archive
run: python3 make.py archive-${{ matrix.config.target }}
- name: Save
uses: actions/upload-artifact@v2
with:
name: artifact-${{ matrix.config.target }}
path: ${{ matrix.config.target }}.tgz
deploy:
name: Deploy
runs-on: ubuntu-latest
needs: [build]
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Load
uses: actions/download-artifact@v2
with:
name: artifact-ios
- name: Get release
id: get_release
uses: bruceadams/[email protected]
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Upload release asset
id: upload-release-asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.get_release.outputs.upload_url }}
asset_path: ios.tgz
asset_name: ios.tgz
asset_content_type: application/tar+gzip