kind: pipeline type: docker name: "Release firmware" platform: os: linux arch: amd64 steps: - name: "Update submodules" image: alpine/git commands: - git submodule sync - git -c protocol.version=2 submodule update --init --force --recursive --jobs 4 - git submodule foreach git config --local gc.auto 0 - git log -1 --format='%H' - name: "Build clean" image: hfdj/fztools pull: never commands: - export DIST_SUFFIX=${DRONE_TAG}c - export WORKFLOW_BRANCH_OR_TAG=release-cfw - export FORCE_NO_DIRTY=yes - export FBT_GIT_SUBMODULE_SHALLOW=1 - rm -rf applications/main/clock_app/resources/apps/ - rm -rf build/ - rm -rf dist/ - rm -rf .sconsign.dblite - ./fbt COMPACT=1 DEBUG=0 updater_package - mkdir artifacts-clean - mv dist/f7-C/* artifacts-clean/ - ls -laS artifacts-clean - ls -laS artifacts-clean/f7-update-${DRONE_TAG}c environment: FBT_TOOLS_CUSTOM_LINK: from_secret: fbt_link - name: "Build default" image: hfdj/fztools pull: never commands: - export DIST_SUFFIX=${DRONE_TAG} - export WORKFLOW_BRANCH_OR_TAG=release-cfw - export FORCE_NO_DIRTY=yes - export FBT_GIT_SUBMODULE_SHALLOW=1 - wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-base.tgz - tar zxf all-the-apps-base.tgz - mkdir -p applications/main/clock_app/resources/apps - mkdir -p applications/main/clock_app/resources/apps_data - cp -R base_pack_build/artifacts-base/* applications/main/clock_app/resources/apps/ - cp -R base_pack_build/apps_data/* applications/main/clock_app/resources/apps_data/ - rm -rf base_pack_build - rm -rf all-the-apps-base.tgz - rm -f build/f7-firmware-C/toolbox/version.* - ./fbt COMPACT=1 DEBUG=0 updater_package - mkdir artifacts-default - mv dist/f7-C/* artifacts-default/ - ls -laS artifacts-default - ls -laS artifacts-default/f7-update-${DRONE_TAG} environment: FBT_TOOLS_CUSTOM_LINK: from_secret: fbt_link - name: "Build with extra apps" image: hfdj/fztools pull: never commands: - wget https://github.com/xMasterX/all-the-plugins/releases/latest/download/all-the-apps-extra.tgz - tar zxf all-the-apps-extra.tgz - mkdir -p applications/main/clock_app/resources/apps - cp -R extra_pack_build/artifacts-extra/* applications/main/clock_app/resources/apps/ - rm -rf extra_pack_build - export DIST_SUFFIX=${DRONE_TAG}e - export WORKFLOW_BRANCH_OR_TAG=release-cfw - export FORCE_NO_DIRTY=yes - export FBT_GIT_SUBMODULE_SHALLOW=1 - rm -f build/f7-firmware-C/toolbox/version.* - ./fbt COMPACT=1 DEBUG=0 updater_package - mkdir artifacts-extra-apps - mv dist/f7-C/* artifacts-extra-apps/ - ls -laS artifacts-extra-apps - ls -laS artifacts-extra-apps/f7-update-${DRONE_TAG}e environment: FBT_TOOLS_CUSTOM_LINK: from_secret: fbt_link - name: "Build with RGB patch" image: hfdj/fztools pull: never commands: - git apply .ci_files/rgb.patch - export DIST_SUFFIX=${DRONE_TAG}r - export WORKFLOW_BRANCH_OR_TAG=release-cfw-rgb - export FORCE_NO_DIRTY=yes - export FBT_GIT_SUBMODULE_SHALLOW=1 - rm -f build/f7-firmware-C/toolbox/version.* - ./fbt COMPACT=1 DEBUG=0 updater_package - mkdir artifacts-rgb-patch - mv dist/f7-C/* artifacts-rgb-patch/ - ls -laS artifacts-rgb-patch - ls -laS artifacts-rgb-patch/f7-update-${DRONE_TAG}r - sed -i 's/(version)/'${DRONE_TAG}'/g' CHANGELOG.md - echo '# Install FW via Web Updater:' >> CHANGELOG.md - echo '### [Default](https://lab.flipper.net/?url=https://unleashedflip.com/fw/${DRONE_TAG}/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=release-cfw&version='${DRONE_TAG}') > ` `' >> CHANGELOG.md - echo '' >> CHANGELOG.md - echo '### [Extra apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'e.tgz&channel=release-cfw&version='${DRONE_TAG}'e) > `e`' >> CHANGELOG.md - echo '' >> CHANGELOG.md - echo '### [No apps](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'c.tgz&channel=release-cfw&version='${DRONE_TAG}'c) > `c`' >> CHANGELOG.md - echo '' >> CHANGELOG.md - echo '### [RGB patch - only for hardware mod!](https://lab.flipper.net/?url=https://unleashedflip.com/fw_extra_apps/flipper-z-f7-update-'${DRONE_TAG}'r.tgz&channel=release-cfw&version='${DRONE_TAG}'r) > `r`' >> CHANGELOG.md environment: FBT_TOOLS_CUSTOM_LINK: from_secret: fbt_link - name: "Bundle self-update packages" image: kramos/alpine-zip commands: - cp artifacts-extra-apps/flipper-z-f7-update-${DRONE_TAG}e.tgz . - cp artifacts-rgb-patch/flipper-z-f7-update-${DRONE_TAG}r.tgz . - cp artifacts-clean/flipper-z-f7-update-${DRONE_TAG}c.tgz . - cp artifacts-default/flipper-z-f7-update-${DRONE_TAG}.tgz . - zip -r artifacts-extra-apps/flipper-z-f7-update-${DRONE_TAG}e.zip artifacts-extra-apps/f7-update-${DRONE_TAG}e - zip -r artifacts-rgb-patch/flipper-z-f7-update-${DRONE_TAG}r.zip artifacts-rgb-patch/f7-update-${DRONE_TAG}r - zip -r artifacts-clean/flipper-z-f7-update-${DRONE_TAG}c.zip artifacts-clean/f7-update-${DRONE_TAG}c - zip -r artifacts-default/flipper-z-f7-update-${DRONE_TAG}.zip artifacts-default/f7-update-${DRONE_TAG} - tar czpf artifacts-default/flipper-z-any-scripts-${DRONE_TAG}.tgz scripts - rm -rf artifacts-extra-apps/f7-update-${DRONE_TAG} - rm -rf artifacts-rgb-patch/f7-update-${DRONE_TAG} - rm -rf artifacts-clean/f7-update-${DRONE_TAG} - rm -rf artifacts-default/f7-update-${DRONE_TAG} - ls -laS artifacts-extra-apps - ls -laS artifacts-rgb-patch - ls -laS artifacts-clean - ls -laS artifacts-default - mv artifacts-default/ ${DRONE_TAG} - ls -laS ${DRONE_TAG} - name: "Upload default to updates srv" image: appleboy/drone-scp:linux-amd64 settings: host: from_secret: dep_host username: from_secret: dep_user password: from_secret: dep_passwd port: from_secret: dep_port target: from_secret: dep_target_new source: - ${DRONE_TAG}/*.tgz - ${DRONE_TAG}/*.zip - ${DRONE_TAG}/*.json - ${DRONE_TAG}/*.elf - ${DRONE_TAG}/*.dfu - ${DRONE_TAG}/*.bin - name: "Upload extra apps version to updates srv" image: appleboy/drone-scp:linux-amd64 settings: host: from_secret: dep_host username: from_secret: dep_user password: from_secret: dep_passwd port: from_secret: dep_port target: from_secret: dep_target_extra source: flipper-z-f7-update-${DRONE_TAG}e.tgz - name: "Upload rgb patch version to updates srv" image: appleboy/drone-scp:linux-amd64 settings: host: from_secret: dep_host username: from_secret: dep_user password: from_secret: dep_passwd port: from_secret: dep_port target: from_secret: dep_target_extra source: flipper-z-f7-update-${DRONE_TAG}r.tgz - name: "Upload clean version to updates srv" image: appleboy/drone-scp:linux-amd64 settings: host: from_secret: dep_host username: from_secret: dep_user password: from_secret: dep_passwd port: from_secret: dep_port target: from_secret: dep_target_extra source: flipper-z-f7-update-${DRONE_TAG}c.tgz - name: "Do Github release" image: ddplugins/github-release pull: never settings: github_url: https://github.com repo_owner: from_secret: github_repoowner api_key: from_secret: github_apikey files: - ${DRONE_TAG}/*.tgz - ${DRONE_TAG}/*.zip - artifacts-extra-apps/*.tgz - artifacts-rgb-patch/*.tgz - artifacts-clean/*.tgz title: ${DRONE_TAG} note: CHANGELOG.md checksum: - md5 - sha1 - crc32 - name: "Trigger update server reindex" image: hfdj/fztools pull: never environment: UPD_KEY: from_secret: git_update_serv_token UPD_URL: from_secret: git_update_server_url commands: - curl -X POST -F 'key='$UPD_KEY'' $UPD_URL - name: "Send discord notification" image: hfdj/fztools pull: never environment: DISCORD_WEBHOOK: from_secret: dis_release_webhook commands: - wget "https://raw.githubusercontent.com/fieu/discord.sh/2253303efc0e7211ac2777d2535054cbb872f1e0/discord.sh" - chmod +x ./discord.sh - sed -n '/## Main changes/,/## Other changes/p' CHANGELOG.md | sed -e 's/## Main changes//' -e 's/## Other changes//' > changelogcut.txt - truncate -s -1 changelogcut.txt - tail -c +2 changelogcut.txt > changelogready.txt - rm -f changelogcut.txt - echo '' >> changelogready.txt - echo '## [Read full changelog](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/'${DRONE_TAG}')' >> changelogready.txt - sed -i 's/(releasever)/'${DRONE_TAG}'/g' .ci_files/release_msg_discord.txt - sed -i 's/(releasever)/'${DRONE_TAG}'/g' .ci_files/release_msg_telegram.txt - cp .ci_files/release_msg_telegram.txt tg_release_message.tpl - ./discord.sh --title "Main changes" --description "$(jq -Rs .
/p' CHANGELOG.md | sed -e 's/

//' > changelogcut.txt - truncate -s -1 changelogcut.txt - sed -i 's/(buildnum)/'${DRONE_BUILD_NUMBER}'/g' .ci_files/devbuild_msg_discord.txt - sed -i 's/(commitsha)/'${DRONE_COMMIT_SHA}'/g' .ci_files/devbuild_msg_discord.txt - sed -i 's/(buildnum)/'${DRONE_BUILD_NUMBER}'/g' .ci_files/devbuild_msg_telegram.txt - sed -i 's/(commitsha)/'${DRONE_COMMIT_SHA}'/g' .ci_files/devbuild_msg_telegram.txt - cp .ci_files/devbuild_msg_telegram.txt tg_dev_message.tpl - ./discord.sh --title "Changelog" --description "$(jq -Rs .