You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
156 lines
4.4 KiB
156 lines
4.4 KiB
container:
|
|
image: termux/package-builder:latest
|
|
|
|
##
|
|
## When doing release builds (branch 'master'), update Docker image if
|
|
## required.
|
|
##
|
|
docker_builder:
|
|
name: Update docker image
|
|
|
|
only_if: $CIRRUS_BRANCH == 'master'
|
|
|
|
env:
|
|
DOCKER_USERNAME: xeffyr
|
|
DOCKER_PASSWORD: ENCRYPTED[abe4dc4418b40a4c5a0c1671e4018fd9cc3bcb811a71f87bdb35967ba721501f958d47d48a3d31ab9cac466b48f238a0]
|
|
|
|
script: |
|
|
bash ./scripts/build/ci/cirrus-ci_dispatcher.sh --update-docker
|
|
|
|
##
|
|
## Perform basic check for errors in build.sh package scripts.
|
|
## If error found, exit with error code to stop build.
|
|
##
|
|
task:
|
|
container:
|
|
cpu: 1
|
|
memory: 4
|
|
|
|
name: Lint packages
|
|
|
|
timeout_in: 5m
|
|
|
|
depends_on:
|
|
- Update docker image
|
|
|
|
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:
|
|
container:
|
|
# Max configuration required by few large packages such as `rust`.
|
|
cpu: 8
|
|
memory: 24
|
|
|
|
name: Build packages
|
|
|
|
# 2 hours is a maximal timeout available for free use.
|
|
timeout_in: 120m
|
|
|
|
depends_on:
|
|
- Lint packages
|
|
|
|
environment:
|
|
TERMUX_MAKE_PROCESSES: 8
|
|
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/build/ci/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: "./debs/*.deb"
|
|
|
|
##
|
|
## When doing release build (branch 'master'), upload built packages
|
|
## to APT repository on Bintray.
|
|
##
|
|
task:
|
|
container:
|
|
cpu: 1
|
|
memory: 4
|
|
|
|
name: Upload packages to Bintray
|
|
|
|
only_if: $CIRRUS_BRANCH == 'master'
|
|
|
|
timeout_in: 60m
|
|
|
|
depends_on:
|
|
- Build packages
|
|
|
|
environment:
|
|
BINTRAY_USERNAME: xeffyr
|
|
BINTRAY_API_KEY: ENCRYPTED[c056d345d7a15f90b818dd9382129c27ce4ce2b802831ec890786414fc214c4203714c353a8fef3a6b9b1b1d68e4685e]
|
|
BINTRAY_GPG_SUBJECT: termux
|
|
BINTRAY_GPG_PASSPHRASE: ENCRYPTED[854c09c78b3318a30d3c9094b1010dfebd4c71ad9173b64479eaafaa7e941b050afaa936ad635af3709382492828316f]
|
|
|
|
# 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/build/ci/cirrus-ci_dispatcher.sh --upload
|
|
|