kind: pipeline
type: docker
name: "Build firmware"

steps:
  - name: "Update submodules"
    image: alpine/git
    commands:
      - git submodule sync
      - git -c protocol.version=2 submodule update --init --force --recursive
      - git submodule foreach git config --local gc.auto 0
      - git log -1 --format='%H'

  - name: "Build default fw"
    image: hfdj/fztools
    pull: never
    commands:
      - export DIST_SUFFIX=${DRONE_TAG}
      - export WORKFLOW_BRANCH_OR_TAG=dev-cfw
      - ./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}
      - sed -i 's/(version)/'${DRONE_TAG}'/g' CHANGELOG.md
      - echo '# [Install via Web Updater](https://lab.flipper.net/?url=https://unleashedflip.com/builds/flipper-z-f7-update-'${DRONE_TAG}'.tgz&channel=dev-cfw&version='${DRONE_TAG}')' >> CHANGELOG.md
    environment:
      FBT_TOOLS_CUSTOM_LINK:
        from_secret: fbt_link

  - name: "Bundle self-update packages"
    image: kramos/alpine-zip
    commands:
      - cp artifacts-default/flipper-z-f7-update-${DRONE_TAG}.tgz .
      - zip -r artifacts-default/flipper-z-f7-update-${DRONE_TAG}.zip artifacts-default/f7-update-${DRONE_TAG}
      - rm -rf artifacts-default/f7-update-${DRONE_TAG}
      - ls -laS artifacts-default

  - name: "Upload to updates server"
    image: appleboy/drone-scp
    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
      source: flipper-z-f7-update-${DRONE_TAG}.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:
        - artifacts-default/*.tgz
        - artifacts-default/*.zip
      title: ${DRONE_TAG}
      note: CHANGELOG.md
      checksum:
        - md5
        - sha1
        - crc32

  - name: "Send files to telegram"
    image: appleboy/drone-telegram
    settings:
      token:
        from_secret: tgtoken
      to:
        from_secret: tgid
      format: markdown
      message: "New Unleashed firmware released!


        Version: {{build.tag}}


        [-Github-](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/${DRONE_TAG})


        [-How to install firmware-](https://github.com/DarkFlippers/unleashed-firmware/blob/dev/documentation/HowToInstall.md)



        [-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/builds/flipper-z-f7-update-${DRONE_TAG}.tgz&channel=dev-cfw&version=${DRONE_TAG})"
      document:
        - artifacts-default/flipper-z-f7-update-${DRONE_TAG}.tgz

  - name: "Send discord notification"
    image: appleboy/drone-discord
    settings:
      webhook_id:
        from_secret: ds_wh_id
      webhook_token:
        from_secret: ds_wh_token
      message: "New Unleashed firmware released!


        Version: {{build.tag}}


        [[Github]](https://github.com/DarkFlippers/unleashed-firmware/releases/tag/${DRONE_TAG})


        [-Install via Web Updater-](https://lab.flipper.net/?url=https://unleashedflip.com/builds/flipper-z-f7-update-${DRONE_TAG}.tgz&channel=dev-cfw&version=${DRONE_TAG})"

trigger:
  event:
    - tag

node:
  typ: haupt