140 lines
4.4 KiB
YAML
140 lines
4.4 KiB
YAML
# .drone.yml
|
||
kind: pipeline
|
||
type: docker
|
||
name: SkyHawk-SHRP
|
||
|
||
# 允许手动触发并传入参数
|
||
trigger:
|
||
event:
|
||
- custom
|
||
|
||
# 定义输入参数(对应 GitHub Actions 的 workflow_dispatch.inputs)
|
||
params:
|
||
- MANIFEST=https://github.com/SHRP-Reborn/manifest.git
|
||
- MANIFEST_BRANCH=shrp-9.0
|
||
- DEVICE_TREE=https://github.com/mlm-games/twrp_lenovo_7305x_m7_mt8765_P
|
||
- DEVICE_TREE_BRANCH=shrp-9.0
|
||
- DEVICE_PATH=device/lenovo/mt8765_P
|
||
- DEVICE_NAME=mt8765_P
|
||
- BUILD_TARGET=recovery
|
||
- LDCHECK=false
|
||
- LDCHECKPATH=system/bin/qseecomd
|
||
|
||
# 整个 job 的环境变量
|
||
environment:
|
||
OUTPUT_DIR: /drone/src/android-recovery/out/target/product
|
||
GITEA_TOKEN:
|
||
from_secret: gitea_token # 在仓库设置里预先填好 Secret
|
||
|
||
steps:
|
||
- name: display-params
|
||
image: alpine
|
||
commands:
|
||
- echo "Manifest Branch: $MANIFEST_BRANCH"
|
||
- echo "Device Tree: $DEVICE_TREE"
|
||
- echo "Device Branch: $DEVICE_TREE_BRANCH"
|
||
- echo "Build Target: ${BUILD_TARGET}image"
|
||
|
||
- name: install-deps
|
||
image: ubuntu:20.04
|
||
commands:
|
||
- apt-get update -qq
|
||
- DEBIAN_FRONTEND=noninteractive apt-get -y install gperf gcc-multilib gcc-10-multilib g++-multilib g++-10-multilib libc6-dev lib32ncurses5-dev x11proto-core-dev libx11-dev tree lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc bc ccache lib32readline-dev lib32z1-dev liblz4-tool libncurses5-dev libsdl1.2-dev libwxgtk3.0-gtk3-dev libxml2 lzop pngcrush schedtool squashfs-tools imagemagick libbz2-dev lzma ncftp qemu-user-static libstdc++-10-dev libtinfo5 libgflags-dev libncurses5 python3 curl git openjdk-8-jdk unzip python2
|
||
|
||
- name: set-swap
|
||
image: ubuntu:20.04
|
||
privileged: true
|
||
commands:
|
||
- fallocate -l 12G /swapfile
|
||
- chmod 600 /swapfile
|
||
- mkswap /swapfile
|
||
- swapon /swapfile
|
||
- swapon -s
|
||
|
||
- name: setup-ccache
|
||
image: ubuntu:20.04
|
||
environment:
|
||
CCACHE_DIR: /ccache
|
||
volumes:
|
||
- name: ccache
|
||
path: /ccache
|
||
commands:
|
||
- ccache -M 10G
|
||
- ccache -s
|
||
|
||
- name: repo-init
|
||
image: ubuntu:20.04
|
||
environment:
|
||
GIT_AUTHOR_NAME: drone-ci
|
||
GIT_AUTHOR_EMAIL: drone@example.com
|
||
commands:
|
||
- curl https://storage.googleapis.com/git-repo-downloads/repo > /usr/local/bin/repo
|
||
- chmod +x /usr/local/bin/repo
|
||
- mkdir android-recovery && cd android-recovery
|
||
- repo init --depth=1 -u "$MANIFEST" -b "$MANIFEST_BRANCH"
|
||
- repo sync -j$(nproc --all) --force-sync --no-clone-bundle --no-tags
|
||
|
||
- name: clone-device-tree
|
||
image: ubuntu:20.04
|
||
commands:
|
||
- cd android-recovery
|
||
- git clone "$DEVICE_TREE" -b "$DEVICE_TREE_BRANCH" "./$DEVICE_PATH"
|
||
- cd "$DEVICE_PATH" && echo "COMMIT_ID=$(git rev-parse HEAD)" >> /drone/env
|
||
|
||
- name: pick-makefile
|
||
image: ubuntu:20.04
|
||
commands:
|
||
- cd android-recovery
|
||
- |
|
||
if [ -f "$DEVICE_PATH/twrp_${DEVICE_NAME}.mk" ]; then
|
||
echo "DEVICE_MAKEFILE=twrp_${DEVICE_NAME}" >> /drone/env
|
||
elif [ -f "$DEVICE_PATH/omni_${DEVICE_NAME}.mk" ]; then
|
||
echo "DEVICE_MAKEFILE=omni_${DEVICE_NAME}" >> /drone/env
|
||
else
|
||
echo "No recovery makefile found!" && exit 1
|
||
fi
|
||
|
||
- name: build
|
||
image: ubuntu:20.04
|
||
volumes:
|
||
- name: ccache
|
||
path: /ccache
|
||
commands:
|
||
- . /drone/env
|
||
- cd android-recovery
|
||
- source build/envsetup.sh
|
||
- export ALLOW_MISSING_DEPENDENCIES=true
|
||
- lunch ${DEVICE_MAKEFILE}-eng
|
||
- make clean
|
||
- mka ${BUILD_TARGET}image -j$(nproc --all)
|
||
|
||
- name: post-check
|
||
image: alpine
|
||
commands:
|
||
- . /drone/env
|
||
- img_file=$(find "$OUTPUT_DIR/$DEVICE_NAME" -name "${BUILD_TARGET}*.img" | head -n1)
|
||
- [ -f "$img_file" ] || exit 1
|
||
- echo "BUILD_DATE=$(date +%Y%m%d)" >> /drone/env
|
||
|
||
- name: release
|
||
image: plugins/gitea-release
|
||
settings:
|
||
base_url: https://git.example.com # 改成你自己的 Gitea 域名
|
||
api_key:
|
||
from_secret: gitea_token
|
||
files:
|
||
- "${OUTPUT_DIR}/${DEVICE_NAME}/${BUILD_TARGET}.img"
|
||
- "${OUTPUT_DIR}/${DEVICE_NAME}/SHRP*.zip"
|
||
title: "Unofficial SHRP for ${DEVICE_NAME} // ${BUILD_DATE}"
|
||
note: |
|
||
Build: ${MANIFEST_BRANCH}
|
||
Device: [Device Tree](${DEVICE_TREE}/tree/${DEVICE_TREE_BRANCH})
|
||
Commit: [${COMMIT_ID}](${DEVICE_TREE}/commit/${COMMIT_ID})
|
||
prerelease: true
|
||
when:
|
||
status: success
|
||
|
||
volumes:
|
||
- name: ccache
|
||
host:
|
||
path: /var/lib/drone/ccache |