-
Notifications
You must be signed in to change notification settings - Fork 59
/
.gitlab-ci.yml
79 lines (71 loc) · 1.96 KB
/
.gitlab-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
stages:
- test
- build
- generate_docs
image: "registry.gitlab.com/eyeo/docker/libadblockplus_gitlab-runner:202011.1"
variables:
GIT_SUBMODULE_STRATEGY: recursive
WGET_FLAGS: "--quiet"
ANDROID_NDK_ROOT: "/third_party/android-ndk-r20b" #NDK is part of the docker image
build_nix_and_test:
interruptible: true
stage: test
script:
- export MAKEFLAGS="-j $(nproc)"
# steps taken from .travis/nix-script.sh
- make get-prebuilt-v8
- make
- make test TEST_RESULTS_XML=report.xml
artifacts:
reports:
junit: report.xml
.build_template:
stage: build
interruptible: true
script:
# set some dynamic env vars
- export ADDITIONALMAKEFLAGS="-j $(nproc)"
- export URL_PREFIX="https://v8.eyeofiles.com/v8-$(make get-v8-commit)"
- export Configuration=release
- export TARGET_OS=android
# ensure that one can build libadblockplus.a without having binaries of V8
- |
if [[ ! -d "third_party/prebuilt-v8/include" ]]; then
wget ${WGET_FLAGS} ${URL_PREFIX}/include.tar.xz -O third_party/v8-include.tar.xz
mkdir -p third_party/prebuilt-v8/
tar -xJf third_party/v8-include.tar.xz -C third_party/prebuilt-v8
fi
- make GYP_FILE=libadblockplus.gyp APP_MODULES=adblockplus
# build tests
- make get-prebuilt-v8
- make
# build abpshell
- make GYP_FILE=abpshell.gyp
android:arm:
extends: .build_template
variables:
ABP_TARGET_ARCH: arm
android:arm64:
extends: .build_template
variables:
ABP_TARGET_ARCH: arm64
android:ia32:
extends: .build_template
variables:
ABP_TARGET_ARCH: ia32
android:x64:
extends: .build_template
variables:
ABP_TARGET_ARCH: x64
pages:
stage: generate_docs
script:
- doxygen
# https://docs.gitlab.com/ce/user/project/pages/getting_started_part_four.html#the-public-directory
# gitlab *requires* the directory to be named 'public'
- mv docs/html public
artifacts:
paths:
- public
only:
- master