container: image: termux/package-builder:latest cpu: 8 memory: 16 # Build packages. build_task: # 2 hours is a maximal timeout for free use. timeout_in: 120m environment: 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 # causes 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 # Determine changes in repository and build modified packages. build_script: | if grep -qiP '^%ci:reset-backlog$' <(echo "$CIRRUS_CHANGE_MESSAGE"); then # If commit message contains line '%ci:reset-backlog', no builds # should be done and CI should stop with "green" status. MODIFIED_PACKAGES="" else MODIFIED_PACKAGES=$(./scripts/build/ci/determine_git_changes.sh) fi for package in $MODIFIED_PACKAGES; do if [ -n "$CIRRUS_PR" ]; then # Perform full builds for PR. ./build-package.sh -a "$TERMUX_ARCH" "$package" else ./build-package.sh -I -a "$TERMUX_ARCH" "$package" fi done if [ -d ./debs ]; then # Upload packages to cache. tar zcf "debs-${TERMUX_ARCH}.tar.gz" debs curl -s --upload-file "debs-${TERMUX_ARCH}.tar.gz" "http://$CIRRUS_HTTP_CACHE_HOST/debs-${TERMUX_ARCH}" fi # Also make them downloadable from the UI. output_artifacts: path: "./debs/*.deb" # Publish packages to Bintray. publish_task: only_if: $CIRRUS_BRANCH == 'master' timeout_in: 60m depends_on: - build environment: BINTRAY_USERNAME: ENCRYPTED[5f767b4b9d6437b98e81c7a9c510363be8c71458efe17b73692898f5bd2720b359a962677b68930e298febf440bea75b] BINTRAY_API_KEY: ENCRYPTED[c056d345d7a15f90b818dd9382129c27ce4ce2b802831ec890786414fc214c4203714c353a8fef3a6b9b1b1d68e4685e] BINTRAY_GPG_SUBJECT: ENCRYPTED[adefd71182b37f4cfe2ef734bb400f5d273c562d45536edce46fd63d260a0c0717df7e73f2bb492afb4f5c0ef6d0460d] BINTRAY_GPG_PASSPHRASE: ENCRYPTED[854c09c78b3318a30d3c9094b1010dfebd4c71ad9173b64479eaafaa7e941b050afaa936ad635af3709382492828316f] # Publish. upload_to_bintray_script: | if grep -qiP '^%ci:reset-backlog$' <(echo "$CIRRUS_CHANGE_MESSAGE"); then # If commit message contains line '%ci:reset-backlog', no builds # should be done and CI should stop with "green" status. MODIFIED_PACKAGES="" else MODIFIED_PACKAGES=$(./scripts/build/ci/determine_git_changes.sh) fi if [ -n "$MODIFIED_PACKAGES" ]; then for arch in aarch64 arm i686 x86_64; do curl -s -o "/tmp/debs-${arch}.tar.gz" "http://$CIRRUS_HTTP_CACHE_HOST/debs-${arch}" tar xvf "/tmp/debs-${arch}.tar.gz" rm -f "/tmp/debs-${arch}.tar.gz" done ./scripts/package_uploader.sh $MODIFIED_PACKAGES fi