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.

.drone.yml 18KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879
  1. ---
  2. kind: pipeline
  3. name: compliance
  4. platform:
  5. os: linux
  6. arch: arm64
  7. workspace:
  8. base: /go
  9. path: src/code.gitea.io/gitea
  10. steps:
  11. - name: deps-frontend
  12. pull: always
  13. image: node:14
  14. commands:
  15. - make node_modules
  16. - name: lint-frontend
  17. image: node:14
  18. commands:
  19. - make lint-frontend
  20. depends_on: [deps-frontend]
  21. - name: lint-backend
  22. pull: always
  23. image: golang:1.15
  24. commands:
  25. - make lint-backend
  26. environment:
  27. GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
  28. GOSUMDB: sum.golang.org
  29. TAGS: bindata sqlite sqlite_unlock_notify
  30. - name: lint-backend-gogit
  31. pull: always
  32. image: golang:1.15
  33. commands:
  34. - make lint-backend
  35. environment:
  36. GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
  37. GOSUMDB: sum.golang.org
  38. TAGS: bindata gogit sqlite sqlite_unlock_notify
  39. - name: checks-frontend
  40. image: node:14
  41. commands:
  42. - make checks-frontend
  43. depends_on: [deps-frontend]
  44. - name: checks-backend
  45. pull: always
  46. image: golang:1.14
  47. commands:
  48. - make checks-backend
  49. depends_on: [lint-backend]
  50. - name: build-frontend
  51. image: node:14
  52. commands:
  53. - make frontend
  54. depends_on: [lint-frontend]
  55. - name: build-backend-no-gcc
  56. pull: always
  57. image: golang:1.13 # this step is kept as the lowest version of golang that we support
  58. environment:
  59. GO111MODULE: on
  60. GOPROXY: off
  61. commands:
  62. - go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag
  63. depends_on: [checks-backend]
  64. - name: build-backend-arm64
  65. image: golang:1.15
  66. environment:
  67. GO111MODULE: on
  68. GOPROXY: off
  69. GOOS: linux
  70. GOARCH: arm64
  71. TAGS: bindata gogit
  72. commands:
  73. - make backend # test cross compile
  74. - rm ./gitea # clean
  75. depends_on: [checks-backend]
  76. - name: build-backend-386
  77. image: golang:1.15
  78. environment:
  79. GO111MODULE: on
  80. GOPROXY: off
  81. GOOS: linux
  82. GOARCH: 386
  83. commands:
  84. - go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit
  85. depends_on: [checks-backend]
  86. ---
  87. kind: pipeline
  88. name: testing-amd64
  89. platform:
  90. os: linux
  91. arch: amd64
  92. depends_on:
  93. - compliance
  94. workspace:
  95. base: /go
  96. path: src/code.gitea.io/gitea
  97. services:
  98. - name: mysql
  99. image: mysql:5.7
  100. environment:
  101. MYSQL_ALLOW_EMPTY_PASSWORD: yes
  102. MYSQL_DATABASE: test
  103. - name: mysql8
  104. image: mysql:8.0
  105. environment:
  106. MYSQL_ALLOW_EMPTY_PASSWORD: yes
  107. MYSQL_DATABASE: testgitea
  108. - name: mssql
  109. image: mcr.microsoft.com/mssql/server:latest
  110. environment:
  111. ACCEPT_EULA: Y
  112. MSSQL_PID: Standard
  113. SA_PASSWORD: MwantsaSecurePassword1
  114. - name: ldap
  115. image: gitea/test-openldap:latest
  116. - name: elasticsearch
  117. environment:
  118. discovery.type: single-node
  119. image: elasticsearch:7.5.0
  120. - name: minio
  121. image: minio/minio:RELEASE.2020-10-09T22-55-05Z
  122. commands:
  123. - minio server /data
  124. environment:
  125. MINIO_ACCESS_KEY: 123456
  126. MINIO_SECRET_KEY: 12345678
  127. steps:
  128. - name: fetch-tags
  129. image: docker:git
  130. commands:
  131. - git fetch --tags --force
  132. when:
  133. event:
  134. exclude:
  135. - pull_request
  136. - name: build
  137. pull: always
  138. image: golang:1.15
  139. commands:
  140. - make backend
  141. environment:
  142. GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
  143. GOSUMDB: sum.golang.org
  144. TAGS: bindata sqlite sqlite_unlock_notify
  145. - name: tag-pre-condition
  146. pull: always
  147. image: drone/git
  148. commands:
  149. - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
  150. - name: unit-test
  151. image: golang:1.15
  152. commands:
  153. - make unit-test-coverage test-check
  154. environment:
  155. GOPROXY: off
  156. TAGS: bindata sqlite sqlite_unlock_notify
  157. GITHUB_READ_TOKEN:
  158. from_secret: github_read_token
  159. - name: unit-test-gogit
  160. pull: always
  161. image: golang:1.15
  162. commands:
  163. - make unit-test-coverage test-check
  164. environment:
  165. GOPROXY: off
  166. TAGS: bindata gogit sqlite sqlite_unlock_notify
  167. GITHUB_READ_TOKEN:
  168. from_secret: github_read_token
  169. - name: test-mysql
  170. image: golang:1.15
  171. commands:
  172. - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
  173. - apt-get install -y git-lfs
  174. - make test-mysql-migration integration-test-coverage
  175. environment:
  176. GOPROXY: off
  177. TAGS: bindata
  178. TEST_LDAP: 1
  179. USE_REPO_TEST_DIR: 1
  180. TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200"
  181. depends_on:
  182. - build
  183. - name: test-mysql8
  184. image: golang:1.15
  185. commands:
  186. - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
  187. - apt-get install -y git-lfs
  188. - timeout -s ABRT 40m make test-mysql8-migration test-mysql8
  189. environment:
  190. GOPROXY: off
  191. TAGS: bindata
  192. TEST_LDAP: 1
  193. USE_REPO_TEST_DIR: 1
  194. depends_on:
  195. - build
  196. - name: test-mssql
  197. image: golang:1.15
  198. commands:
  199. - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
  200. - apt-get install -y git-lfs
  201. - make test-mssql-migration test-mssql
  202. environment:
  203. GOPROXY: off
  204. TAGS: bindata
  205. TEST_LDAP: 1
  206. USE_REPO_TEST_DIR: 1
  207. depends_on:
  208. - build
  209. - name: generate-coverage
  210. image: golang:1.15
  211. commands:
  212. - make coverage
  213. environment:
  214. GOPROXY: off
  215. TAGS: bindata
  216. depends_on:
  217. - unit-test
  218. - test-mysql
  219. when:
  220. branch:
  221. - master
  222. event:
  223. - push
  224. - pull_request
  225. - name: coverage-codecov
  226. pull: always
  227. image: plugins/codecov
  228. settings:
  229. files:
  230. - coverage.all
  231. token:
  232. from_secret: codecov_token
  233. depends_on:
  234. - generate-coverage
  235. when:
  236. branch:
  237. - master
  238. event:
  239. - push
  240. - pull_request
  241. ---
  242. kind: pipeline
  243. name: testing-arm64
  244. platform:
  245. os: linux
  246. arch: arm64
  247. depends_on:
  248. - compliance
  249. workspace:
  250. base: /go
  251. path: src/code.gitea.io/gitea
  252. services:
  253. - name: pgsql
  254. pull: default
  255. image: postgres:9.5
  256. environment:
  257. POSTGRES_DB: test
  258. POSTGRES_PASSWORD: postgres
  259. - name: ldap
  260. pull: default
  261. image: gitea/test-openldap:latest
  262. steps:
  263. - name: fetch-tags
  264. image: docker:git
  265. commands:
  266. - git fetch --tags --force
  267. when:
  268. event:
  269. exclude:
  270. - pull_request
  271. - name: build
  272. pull: always
  273. image: golang:1.15
  274. commands:
  275. - make backend
  276. environment:
  277. GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
  278. GOSUMDB: sum.golang.org
  279. TAGS: bindata sqlite sqlite_unlock_notify
  280. - name: test-sqlite
  281. image: golang:1.15
  282. commands:
  283. - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
  284. - apt-get install -y git-lfs
  285. - timeout -s ABRT 40m make test-sqlite-migration test-sqlite
  286. environment:
  287. GOPROXY: off
  288. TAGS: bindata gogit sqlite sqlite_unlock_notify
  289. TEST_TAGS: gogit sqlite sqlite_unlock_notify
  290. USE_REPO_TEST_DIR: 1
  291. depends_on:
  292. - build
  293. - name: test-pgsql
  294. image: golang:1.15
  295. commands:
  296. - "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
  297. - apt-get install -y git-lfs
  298. - timeout -s ABRT 40m make test-pgsql-migration test-pgsql
  299. environment:
  300. GOPROXY: off
  301. TAGS: bindata gogit
  302. TEST_TAGS: gogit
  303. TEST_LDAP: 1
  304. USE_REPO_TEST_DIR: 1
  305. depends_on:
  306. - build
  307. ---
  308. kind: pipeline
  309. name: translations
  310. platform:
  311. os: linux
  312. arch: arm64
  313. workspace:
  314. base: /go
  315. path: src/code.gitea.io/gitea
  316. trigger:
  317. branch:
  318. - master
  319. event:
  320. - push
  321. steps:
  322. - name: download
  323. pull: always
  324. image: jonasfranz/crowdin
  325. settings:
  326. download: true
  327. export_dir: options/locale/
  328. ignore_branch: true
  329. project_identifier: gitea
  330. environment:
  331. CROWDIN_KEY:
  332. from_secret: crowdin_key
  333. - name: update
  334. pull: default
  335. image: alpine:3.12
  336. commands:
  337. - ./build/update-locales.sh
  338. - name: push
  339. pull: always
  340. image: appleboy/drone-git-push
  341. settings:
  342. author_email: "teabot@gitea.io"
  343. author_name: GiteaBot
  344. commit: true
  345. commit_message: "[skip ci] Updated translations via Crowdin"
  346. remote: "git@github.com:go-gitea/gitea.git"
  347. environment:
  348. GIT_PUSH_SSH_KEY:
  349. from_secret: git_push_ssh_key
  350. - name: upload_translations
  351. pull: always
  352. image: jonasfranz/crowdin
  353. settings:
  354. files:
  355. locale_en-US.ini: options/locale/locale_en-US.ini
  356. ignore_branch: true
  357. project_identifier: gitea
  358. environment:
  359. CROWDIN_KEY:
  360. from_secret: crowdin_key
  361. ---
  362. kind: pipeline
  363. name: release-latest
  364. platform:
  365. os: linux
  366. arch: amd64
  367. workspace:
  368. base: /go
  369. path: src/code.gitea.io/gitea
  370. trigger:
  371. branch:
  372. - master
  373. - "release/*"
  374. event:
  375. - push
  376. depends_on:
  377. - testing-amd64
  378. - testing-arm64
  379. - translations
  380. steps:
  381. - name: fetch-tags
  382. image: docker:git
  383. commands:
  384. - git fetch --tags --force
  385. - name: static
  386. pull: always
  387. image: techknowlogick/xgo:go-1.15.x
  388. commands:
  389. - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs
  390. - export PATH=$PATH:$GOPATH/bin
  391. - make release
  392. environment:
  393. GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
  394. TAGS: bindata sqlite sqlite_unlock_notify
  395. - name: gpg-sign
  396. pull: always
  397. image: plugins/gpgsign:1
  398. settings:
  399. detach_sign: true
  400. excludes:
  401. - "dist/release/*.sha256"
  402. files:
  403. - "dist/release/*"
  404. environment:
  405. GPGSIGN_KEY:
  406. from_secret: gpgsign_key
  407. GPGSIGN_PASSPHRASE:
  408. from_secret: gpgsign_passphrase
  409. - name: release-branch
  410. pull: always
  411. image: plugins/s3:1
  412. settings:
  413. acl: public-read
  414. bucket: releases
  415. endpoint: https://storage.gitea.io
  416. path_style: true
  417. source: "dist/release/*"
  418. strip_prefix: dist/release/
  419. target: "/gitea/${DRONE_BRANCH##release/v}"
  420. environment:
  421. AWS_ACCESS_KEY_ID:
  422. from_secret: aws_access_key_id
  423. AWS_SECRET_ACCESS_KEY:
  424. from_secret: aws_secret_access_key
  425. when:
  426. branch:
  427. - "release/*"
  428. event:
  429. - push
  430. - name: release-master
  431. image: plugins/s3:1
  432. settings:
  433. acl: public-read
  434. bucket: releases
  435. endpoint: https://storage.gitea.io
  436. path_style: true
  437. source: "dist/release/*"
  438. strip_prefix: dist/release/
  439. target: /gitea/master
  440. environment:
  441. AWS_ACCESS_KEY_ID:
  442. from_secret: aws_access_key_id
  443. AWS_SECRET_ACCESS_KEY:
  444. from_secret: aws_secret_access_key
  445. when:
  446. branch:
  447. - master
  448. event:
  449. - push
  450. ---
  451. kind: pipeline
  452. name: release-version
  453. platform:
  454. os: linux
  455. arch: amd64
  456. workspace:
  457. base: /go
  458. path: src/code.gitea.io/gitea
  459. trigger:
  460. event:
  461. - tag
  462. depends_on:
  463. - testing-arm64
  464. - testing-amd64
  465. steps:
  466. - name: fetch-tags
  467. pull: default
  468. image: docker:git
  469. commands:
  470. - git fetch --tags --force
  471. - name: static
  472. pull: always
  473. image: techknowlogick/xgo:go-1.15.x
  474. commands:
  475. - curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs
  476. - export PATH=$PATH:$GOPATH/bin
  477. - make release
  478. environment:
  479. GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
  480. TAGS: bindata sqlite sqlite_unlock_notify
  481. - name: gpg-sign
  482. pull: always
  483. image: plugins/gpgsign:1
  484. settings:
  485. detach_sign: true
  486. excludes:
  487. - "dist/release/*.sha256"
  488. files:
  489. - "dist/release/*"
  490. environment:
  491. GPGSIGN_KEY:
  492. from_secret: gpgsign_key
  493. GPGSIGN_PASSPHRASE:
  494. from_secret: gpgsign_passphrase
  495. - name: release-tag
  496. pull: always
  497. image: plugins/s3:1
  498. settings:
  499. acl: public-read
  500. bucket: releases
  501. endpoint: https://storage.gitea.io
  502. path_style: true
  503. source: "dist/release/*"
  504. strip_prefix: dist/release/
  505. target: "/gitea/${DRONE_TAG##v}"
  506. environment:
  507. AWS_ACCESS_KEY_ID:
  508. from_secret: aws_access_key_id
  509. AWS_SECRET_ACCESS_KEY:
  510. from_secret: aws_secret_access_key
  511. - name: github
  512. pull: always
  513. image: plugins/github-release:1
  514. settings:
  515. files:
  516. - "dist/release/*"
  517. environment:
  518. GITHUB_TOKEN:
  519. from_secret: github_token
  520. ---
  521. kind: pipeline
  522. name: docs
  523. platform:
  524. os: linux
  525. arch: arm64
  526. depends_on:
  527. - compliance
  528. steps:
  529. - name: build-docs
  530. pull: always
  531. image: plugins/hugo:latest
  532. commands:
  533. - apk add --no-cache make bash curl
  534. - cd docs
  535. - make trans-copy clean build
  536. - name: publish-docs
  537. pull: always
  538. image: techknowlogick/drone-netlify:latest
  539. settings:
  540. path: docs/public/
  541. site_id: d2260bae-7861-4c02-8646-8f6440b12672
  542. environment:
  543. NETLIFY_TOKEN:
  544. from_secret: netlify_token
  545. when:
  546. branch:
  547. - master
  548. event:
  549. - push
  550. ---
  551. kind: pipeline
  552. name: docker-linux-amd64-release
  553. platform:
  554. os: linux
  555. arch: amd64
  556. workspace:
  557. base: /go
  558. path: src/code.gitea.io/gitea
  559. depends_on:
  560. - testing-amd64
  561. - testing-arm64
  562. trigger:
  563. ref:
  564. - refs/heads/master
  565. - "refs/tags/**"
  566. steps:
  567. - name: fetch-tags
  568. image: docker:git
  569. commands:
  570. - git fetch --tags --force
  571. - name: publish
  572. pull: always
  573. image: plugins/docker:linux-amd64
  574. settings:
  575. auto_tag: true
  576. auto_tag_suffix: linux-amd64
  577. repo: gitea/gitea
  578. build_args:
  579. - GOPROXY=off
  580. password:
  581. from_secret: docker_password
  582. username:
  583. from_secret: docker_username
  584. when:
  585. event:
  586. exclude:
  587. - pull_request
  588. - name: publish-rootless
  589. image: plugins/docker:linux-amd64
  590. settings:
  591. dockerfile: Dockerfile.rootless
  592. auto_tag: true
  593. auto_tag_suffix: linux-amd64-rootless
  594. repo: gitea/gitea
  595. build_args:
  596. - GOPROXY=off
  597. password:
  598. from_secret: docker_password
  599. username:
  600. from_secret: docker_username
  601. environment:
  602. PLUGIN_MIRROR:
  603. from_secret: plugin_mirror
  604. when:
  605. event:
  606. exclude:
  607. - pull_request
  608. ---
  609. kind: pipeline
  610. name: docker-linux-arm64-dry-run
  611. platform:
  612. os: linux
  613. arch: arm64
  614. workspace:
  615. base: /go
  616. path: src/code.gitea.io/gitea
  617. depends_on:
  618. - compliance
  619. trigger:
  620. ref:
  621. - "refs/pull/**"
  622. steps:
  623. - name: dryrun
  624. pull: always
  625. image: plugins/docker:linux-arm64
  626. settings:
  627. dry_run: true
  628. repo: gitea/gitea
  629. tags: linux-arm64
  630. build_args:
  631. - GOPROXY=off
  632. environment:
  633. PLUGIN_MIRROR:
  634. from_secret: plugin_mirror
  635. when:
  636. event:
  637. - pull_request
  638. ---
  639. kind: pipeline
  640. name: docker-linux-arm64-release
  641. platform:
  642. os: linux
  643. arch: arm64
  644. workspace:
  645. base: /go
  646. path: src/code.gitea.io/gitea
  647. depends_on:
  648. - testing-amd64
  649. - testing-arm64
  650. trigger:
  651. ref:
  652. - refs/heads/master
  653. - "refs/tags/**"
  654. steps:
  655. - name: fetch-tags
  656. image: docker:git
  657. commands:
  658. - git fetch --tags --force
  659. - name: publish
  660. pull: always
  661. image: plugins/docker:linux-arm64
  662. settings:
  663. auto_tag: true
  664. auto_tag_suffix: linux-arm64
  665. repo: gitea/gitea
  666. build_args:
  667. - GOPROXY=off
  668. password:
  669. from_secret: docker_password
  670. username:
  671. from_secret: docker_username
  672. environment:
  673. PLUGIN_MIRROR:
  674. from_secret: plugin_mirror
  675. when:
  676. event:
  677. exclude:
  678. - pull_request
  679. - name: publish-rootless
  680. image: plugins/docker:linux-arm64
  681. settings:
  682. dockerfile: Dockerfile.rootless
  683. auto_tag: true
  684. auto_tag_suffix: linux-arm64-rootless
  685. repo: gitea/gitea
  686. build_args:
  687. - GOPROXY=off
  688. password:
  689. from_secret: docker_password
  690. username:
  691. from_secret: docker_username
  692. environment:
  693. PLUGIN_MIRROR:
  694. from_secret: plugin_mirror
  695. when:
  696. event:
  697. exclude:
  698. - pull_request
  699. ---
  700. kind: pipeline
  701. name: docker-manifest
  702. platform:
  703. os: linux
  704. arch: amd64
  705. steps:
  706. - name: manifest-rootless
  707. pull: always
  708. image: plugins/manifest
  709. settings:
  710. auto_tag: true
  711. ignore_missing: true
  712. spec: docker/manifest.rootless.tmpl
  713. password:
  714. from_secret: docker_password
  715. username:
  716. from_secret: docker_username
  717. - name: manifest
  718. image: plugins/manifest
  719. settings:
  720. auto_tag: true
  721. ignore_missing: true
  722. spec: docker/manifest.tmpl
  723. password:
  724. from_secret: docker_password
  725. username:
  726. from_secret: docker_username
  727. trigger:
  728. ref:
  729. - refs/heads/master
  730. - "refs/tags/**"
  731. depends_on:
  732. - docker-linux-amd64-release
  733. - docker-linux-arm64-release
  734. ---
  735. kind: pipeline
  736. name: notifications
  737. platform:
  738. os: linux
  739. arch: arm64
  740. clone:
  741. disable: true
  742. trigger:
  743. branch:
  744. - master
  745. - "release/*"
  746. event:
  747. - push
  748. - tag
  749. status:
  750. - success
  751. - failure
  752. depends_on:
  753. - testing-amd64
  754. - testing-arm64
  755. - translations
  756. - release-version
  757. - release-latest
  758. - docker-linux-amd64-release
  759. - docker-linux-arm64-release
  760. - docker-manifest
  761. - docs
  762. steps:
  763. - name: discord
  764. pull: always
  765. image: appleboy/drone-discord:1.2.4
  766. settings:
  767. message: "{{#success build.status}} ✅ Build #{{build.number}} of `{{repo.name}}` succeeded.\n\n📝 Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n\n🌐 {{ build.link }} {{else}} ❌ Build #{{build.number}} of `{{repo.name}}` failed.\n\n📝 Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n\n🌐 {{ build.link }} {{/success}}\n"
  768. webhook_id:
  769. from_secret: discord_webhook_id
  770. webhook_token:
  771. from_secret: discord_webhook_token