forked from termux/science-packages
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.cirrus.yml
125 lines (100 loc) · 3.81 KB
/
.cirrus.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
container:
image: termux/package-builder:latest
cpu: 4
memory: 8
##
## Perform basic check for errors in build.sh package scripts.
## If error found, exit with error code to stop build.
##
task:
name: Lint packages
timeout_in: 5m
script: |
bash scripts/lint-packages.sh
##
## Determine changes in the last push, find modified packages and
## build them for aarch64/arm/i686/x86_64 architectures.
##
## Built packages are accessible from Cirrus CI web interface.
##
task:
name: Build packages
# 2 hours is a maximal timeout available for free use.
timeout_in: 120m
depends_on:
- Lint packages
environment:
TERMUX_MAKE_PROCESSES: 4
matrix:
- TERMUX_ARCH: aarch64
- TERMUX_ARCH: arm
- TERMUX_ARCH: i686
- TERMUX_ARCH: x86_64
# Do not use built-in git client provided by Cirrus as it may
# cause problems when determining changed files.
clone_script: |
if [[ -z "$CIRRUS_PR" ]]; then
git clone --recursive --branch="$CIRRUS_BRANCH" "https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git" "$CIRRUS_WORKING_DIR"
git reset --hard "$CIRRUS_CHANGE_IN_REPO"
else
git clone --recursive "https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git" "$CIRRUS_WORKING_DIR"
git fetch origin "pull/$CIRRUS_PR/head:pull/$CIRRUS_PR"
git reset --hard "$CIRRUS_CHANGE_IN_REPO"
fi
build_script: |
export TERMUX_DEBDIR="/tmp/debs-${TERMUX_ARCH}"
ln -s "$TERMUX_DEBDIR" debs
bash ./scripts/cirrus-ci_dispatcher.sh
aarch64_debs_cache:
folder: "/tmp/debs-aarch64"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-aarch64"
arm_debs_cache:
folder: "/tmp/debs-arm"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-arm"
i686_debs_cache:
folder: "/tmp/debs-i686"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-i686"
x86-64_debs_cache:
folder: "/tmp/debs-x86_64"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-x86_64"
output_artifacts:
path: "./termux-packages/debs/*.deb"
##
## When doing release build (branch 'master'), upload built packages
## to APT repository on Bintray.
##
task:
name: Upload packages to Bintray
only_if: $CIRRUS_BRANCH == 'master'
timeout_in: 60m
depends_on:
- Build packages
environment:
BINTRAY_USERNAME: ENCRYPTED[!4f7278414220b7ea7d8e06e94edfebcf81e4bd766201201caa895a376571e50a324e6be3f3dc1aef0aec938a47f72dab!]
BINTRAY_API_KEY: ENCRYPTED[!a60797f4f21f143f4a1ef45b9d4286fa56c3ddbc1d652d988bfd5cc864790befc614e25783379b3f76121f5141b3e29a!]
BINTRAY_GPG_PASSPHRASE: ENCRYPTED[!1359cb14fc48ecba379001f06db6d1452a929b64d970345b84cc12b97a0f17a3be5adc34d56125a647470df7487dfec0!]
# Do not use built-in git client provided by Cirrus as it may
# cause problems when determining changed files.
clone_script: |
if [[ -z "$CIRRUS_PR" ]]; then
git clone --recursive --branch="$CIRRUS_BRANCH" "https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git" "$CIRRUS_WORKING_DIR"
git reset --hard "$CIRRUS_CHANGE_IN_REPO"
else
git clone --recursive "https://x-access-token:${CIRRUS_REPO_CLONE_TOKEN}@github.com/${CIRRUS_REPO_FULL_NAME}.git" "$CIRRUS_WORKING_DIR"
git fetch origin "pull/$CIRRUS_PR/head:pull/$CIRRUS_PR"
git reset --hard "$CIRRUS_CHANGE_IN_REPO"
fi
aarch64_debs_cache:
folder: "./debs"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-aarch64"
arm_debs_cache:
folder: "./debs"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-arm"
i686_debs_cache:
folder: "./debs"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-i686"
x86-64_debs_cache:
folder: "./debs"
fingerprint_script: echo "${CIRRUS_CHANGE_IN_REPO}-x86_64"
script: |
bash ./scripts/cirrus-ci_dispatcher.sh --upload