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 35KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699
  1. ---
  2. kind: pipeline
  3. type: docker
  4. name: compliance
  5. platform:
  6. os: linux
  7. arch: amd64
  8. trigger:
  9. event:
  10. - push
  11. - tag
  12. - pull_request
  13. paths:
  14. exclude:
  15. - docs/**
  16. volumes:
  17. - name: deps
  18. temp: {}
  19. steps:
  20. - name: deps-frontend
  21. image: node:18
  22. pull: always
  23. commands:
  24. - make deps-frontend
  25. - name: deps-backend
  26. image: golang:1.20
  27. pull: always
  28. commands:
  29. - make deps-backend
  30. volumes:
  31. - name: deps
  32. path: /go
  33. - name: lint-frontend
  34. image: node:18
  35. commands:
  36. - make lint-frontend
  37. depends_on: [deps-frontend]
  38. - name: lint-backend
  39. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  40. pull: always
  41. commands:
  42. - make lint-backend
  43. environment:
  44. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  45. GOSUMDB: sum.golang.org
  46. TAGS: bindata sqlite sqlite_unlock_notify
  47. depends_on: [deps-backend]
  48. volumes:
  49. - name: deps
  50. path: /go
  51. - name: lint-backend-windows
  52. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  53. commands:
  54. - make golangci-lint-windows vet
  55. environment:
  56. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  57. GOSUMDB: sum.golang.org
  58. TAGS: bindata sqlite sqlite_unlock_notify
  59. GOOS: windows
  60. GOARCH: amd64
  61. depends_on: [deps-backend]
  62. volumes:
  63. - name: deps
  64. path: /go
  65. - name: lint-backend-gogit
  66. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  67. commands:
  68. - make lint-backend
  69. environment:
  70. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  71. GOSUMDB: sum.golang.org
  72. TAGS: bindata gogit sqlite sqlite_unlock_notify
  73. depends_on: [deps-backend]
  74. volumes:
  75. - name: deps
  76. path: /go
  77. - name: checks-frontend
  78. image: node:18
  79. commands:
  80. - make checks-frontend
  81. depends_on: [deps-frontend]
  82. - name: checks-backend
  83. image: golang:1.20
  84. commands:
  85. - make --always-make checks-backend # ensure the 'go-licenses' make target runs
  86. depends_on: [deps-backend]
  87. volumes:
  88. - name: deps
  89. path: /go
  90. - name: test-frontend
  91. image: node:18
  92. commands:
  93. - make test-frontend
  94. depends_on: [lint-frontend]
  95. - name: build-frontend
  96. image: node:18
  97. commands:
  98. - make frontend
  99. depends_on: [deps-frontend]
  100. - name: build-backend-no-gcc
  101. image: golang:1.19 # this step is kept as the lowest version of golang that we support
  102. pull: always
  103. environment:
  104. GOPROXY: https://goproxy.io
  105. commands:
  106. - go build -o gitea_no_gcc # test if build succeeds without the sqlite tag
  107. depends_on: [deps-backend, checks-backend]
  108. volumes:
  109. - name: deps
  110. path: /go
  111. - name: build-backend-arm64
  112. image: golang:1.20
  113. environment:
  114. GOPROXY: https://goproxy.io
  115. GOOS: linux
  116. GOARCH: arm64
  117. TAGS: bindata gogit
  118. commands:
  119. - make backend # test cross compile
  120. - rm ./gitea # clean
  121. depends_on: [deps-backend, checks-backend]
  122. volumes:
  123. - name: deps
  124. path: /go
  125. - name: build-backend-windows
  126. image: golang:1.20
  127. environment:
  128. GOPROXY: https://goproxy.io
  129. GOOS: windows
  130. GOARCH: amd64
  131. TAGS: bindata gogit
  132. commands:
  133. - go build -o gitea_windows
  134. depends_on: [deps-backend, checks-backend]
  135. volumes:
  136. - name: deps
  137. path: /go
  138. - name: build-backend-386
  139. image: golang:1.20
  140. environment:
  141. GOPROXY: https://goproxy.io
  142. GOOS: linux
  143. GOARCH: 386
  144. commands:
  145. - go build -o gitea_linux_386 # test if compatible with 32 bit
  146. depends_on: [deps-backend, checks-backend]
  147. volumes:
  148. - name: deps
  149. path: /go
  150. ---
  151. kind: pipeline
  152. type: docker
  153. name: testing-amd64
  154. platform:
  155. os: linux
  156. arch: amd64
  157. depends_on:
  158. - compliance
  159. trigger:
  160. event:
  161. - push
  162. - tag
  163. - pull_request
  164. paths:
  165. exclude:
  166. - docs/**
  167. volumes:
  168. - name: deps
  169. temp: {}
  170. services:
  171. - name: mysql
  172. image: mysql:5.7
  173. pull: always
  174. environment:
  175. MYSQL_ALLOW_EMPTY_PASSWORD: yes
  176. MYSQL_DATABASE: test
  177. - name: mysql8
  178. image: mysql:8
  179. pull: always
  180. environment:
  181. MYSQL_ALLOW_EMPTY_PASSWORD: yes
  182. MYSQL_DATABASE: testgitea
  183. - name: mssql
  184. image: mcr.microsoft.com/mssql/server:latest
  185. pull: always
  186. environment:
  187. ACCEPT_EULA: Y
  188. MSSQL_PID: Standard
  189. SA_PASSWORD: MwantsaSecurePassword1
  190. - name: ldap
  191. image: gitea/test-openldap:latest
  192. pull: always
  193. - name: elasticsearch
  194. image: elasticsearch:7.5.0
  195. pull: always
  196. environment:
  197. discovery.type: single-node
  198. - name: minio
  199. image: minio/minio:RELEASE.2021-03-12T00-00-47Z
  200. pull: always
  201. commands:
  202. - minio server /data
  203. environment:
  204. MINIO_ACCESS_KEY: 123456
  205. MINIO_SECRET_KEY: 12345678
  206. - name: smtpimap
  207. image: tabascoterrier/docker-imap-devel:latest
  208. pull: always
  209. steps:
  210. - name: fetch-tags
  211. image: docker:git
  212. pull: always
  213. commands:
  214. - git config --global --add safe.directory /drone/src
  215. - git fetch --tags --force
  216. when:
  217. event:
  218. exclude:
  219. - pull_request
  220. - name: deps-backend
  221. image: golang:1.20
  222. pull: always
  223. commands:
  224. - make deps-backend
  225. volumes:
  226. - name: deps
  227. path: /go
  228. - name: tag-pre-condition
  229. image: drone/git
  230. pull: always
  231. commands:
  232. - git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
  233. - name: prepare-test-env
  234. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  235. pull: always
  236. commands:
  237. - ./build/test-env-prepare.sh
  238. - name: build
  239. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  240. user: gitea
  241. commands:
  242. - ./build/test-env-check.sh
  243. - make backend
  244. environment:
  245. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  246. GOSUMDB: sum.golang.org
  247. TAGS: bindata sqlite sqlite_unlock_notify
  248. depends_on: [deps-backend, prepare-test-env]
  249. volumes:
  250. - name: deps
  251. path: /go
  252. - name: unit-test
  253. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  254. user: gitea
  255. commands:
  256. - make unit-test-coverage test-check
  257. environment:
  258. GOPROXY: https://goproxy.io
  259. TAGS: bindata sqlite sqlite_unlock_notify
  260. RACE_ENABLED: true
  261. GITHUB_READ_TOKEN:
  262. from_secret: github_read_token
  263. depends_on: [deps-backend, prepare-test-env]
  264. volumes:
  265. - name: deps
  266. path: /go
  267. - name: unit-test-gogit
  268. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  269. user: gitea
  270. commands:
  271. - make unit-test-coverage test-check
  272. environment:
  273. GOPROXY: https://goproxy.io
  274. TAGS: bindata gogit sqlite sqlite_unlock_notify
  275. RACE_ENABLED: true
  276. GITHUB_READ_TOKEN:
  277. from_secret: github_read_token
  278. depends_on: [deps-backend, prepare-test-env]
  279. volumes:
  280. - name: deps
  281. path: /go
  282. - name: test-mysql
  283. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  284. user: gitea
  285. commands:
  286. - make test-mysql-migration integration-test-coverage
  287. environment:
  288. GOPROXY: https://goproxy.io
  289. TAGS: bindata
  290. RACE_ENABLED: true
  291. TEST_LDAP: 1
  292. USE_REPO_TEST_DIR: 1
  293. TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200"
  294. depends_on: [build]
  295. volumes:
  296. - name: deps
  297. path: /go
  298. - name: test-mysql8
  299. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  300. user: gitea
  301. commands:
  302. - timeout -s ABRT 50m make test-mysql8-migration test-mysql8
  303. environment:
  304. GOPROXY: https://goproxy.io
  305. TAGS: bindata
  306. RACE_ENABLED: true
  307. TEST_LDAP: 1
  308. USE_REPO_TEST_DIR: 1
  309. depends_on: [build]
  310. volumes:
  311. - name: deps
  312. path: /go
  313. - name: test-mssql
  314. image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
  315. user: gitea
  316. commands:
  317. - make test-mssql-migration test-mssql
  318. environment:
  319. GOPROXY: https://goproxy.io
  320. TAGS: bindata
  321. RACE_ENABLED: true
  322. TEST_LDAP: 1
  323. USE_REPO_TEST_DIR: 1
  324. depends_on: [build]
  325. volumes:
  326. - name: deps
  327. path: /go
  328. - name: generate-coverage
  329. image: golang:1.20
  330. commands:
  331. - make coverage
  332. environment:
  333. GOPROXY: https://goproxy.io
  334. TAGS: bindata
  335. depends_on: [unit-test, test-mysql]
  336. when:
  337. branch:
  338. - main
  339. event:
  340. - push
  341. - pull_request
  342. - name: coverage-codecov
  343. image: woodpeckerci/plugin-codecov:next-alpine
  344. pull: always
  345. settings:
  346. files:
  347. - coverage.all
  348. token:
  349. from_secret: codecov_token
  350. depends_on: [generate-coverage]
  351. when:
  352. branch:
  353. - main
  354. event:
  355. - push
  356. - pull_request
  357. ---
  358. kind: pipeline
  359. name: testing-arm64
  360. platform:
  361. os: linux
  362. arch: arm64
  363. depends_on:
  364. - compliance
  365. trigger:
  366. event:
  367. - push
  368. - tag
  369. - pull_request
  370. paths:
  371. exclude:
  372. - docs/**
  373. volumes:
  374. - name: deps
  375. temp: {}
  376. services:
  377. - name: pgsql
  378. pull: default
  379. image: postgres:10
  380. environment:
  381. POSTGRES_DB: test
  382. POSTGRES_PASSWORD: postgres
  383. - name: ldap
  384. pull: default
  385. image: gitea/test-openldap:latest
  386. steps:
  387. - name: fetch-tags
  388. image: docker:git
  389. pull: always
  390. commands:
  391. - git config --global --add safe.directory /drone/src
  392. - git fetch --tags --force
  393. when:
  394. event:
  395. exclude:
  396. - pull_request
  397. - name: deps-backend
  398. image: golang:1.20
  399. pull: always
  400. commands:
  401. - make deps-backend
  402. volumes:
  403. - name: deps
  404. path: /go
  405. - name: prepare-test-env
  406. image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
  407. pull: always
  408. commands:
  409. - ./build/test-env-prepare.sh
  410. - name: build
  411. image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
  412. user: gitea
  413. commands:
  414. - ./build/test-env-check.sh
  415. - make backend
  416. environment:
  417. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  418. GOSUMDB: sum.golang.org
  419. TAGS: bindata gogit sqlite sqlite_unlock_notify
  420. depends_on: [deps-backend, prepare-test-env]
  421. volumes:
  422. - name: deps
  423. path: /go
  424. - name: test-sqlite
  425. image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
  426. user: gitea
  427. commands:
  428. - timeout -s ABRT 50m make test-sqlite-migration test-sqlite
  429. environment:
  430. GOPROXY: https://goproxy.io
  431. TAGS: bindata gogit sqlite sqlite_unlock_notify
  432. RACE_ENABLED: true
  433. TEST_TAGS: gogit sqlite sqlite_unlock_notify
  434. USE_REPO_TEST_DIR: 1
  435. depends_on: [build]
  436. volumes:
  437. - name: deps
  438. path: /go
  439. - name: test-pgsql
  440. image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
  441. user: gitea
  442. commands:
  443. - timeout -s ABRT 50m make test-pgsql-migration test-pgsql
  444. environment:
  445. GOPROXY: https://goproxy.io
  446. TAGS: bindata gogit
  447. RACE_ENABLED: true
  448. TEST_TAGS: gogit
  449. TEST_LDAP: 1
  450. USE_REPO_TEST_DIR: 1
  451. depends_on: [build]
  452. volumes:
  453. - name: deps
  454. path: /go
  455. ---
  456. kind: pipeline
  457. type: docker
  458. name: testing-e2e
  459. platform:
  460. os: linux
  461. arch: amd64
  462. depends_on:
  463. - compliance
  464. trigger:
  465. event:
  466. - pull_request
  467. paths:
  468. exclude:
  469. - docs/**
  470. volumes:
  471. - name: deps
  472. temp: {}
  473. services:
  474. - name: pgsql
  475. pull: default
  476. image: postgres:10
  477. environment:
  478. POSTGRES_DB: testgitea-e2e
  479. POSTGRES_PASSWORD: postgres
  480. POSTGRES_INITDB_ARGS: --encoding=UTF8 --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'
  481. steps:
  482. - name: deps-frontend
  483. image: node:18
  484. pull: always
  485. commands:
  486. - make deps-frontend
  487. - name: build-frontend
  488. image: node:18
  489. commands:
  490. - make frontend
  491. depends_on: [deps-frontend]
  492. - name: deps-backend
  493. image: golang:1.18
  494. pull: always
  495. commands:
  496. - make deps-backend
  497. volumes:
  498. - name: deps
  499. path: /go
  500. # TODO: We should probably build all dependencies into a test image
  501. - name: test-e2e
  502. image: mcr.microsoft.com/playwright:v1.29.2-focal
  503. commands:
  504. - curl -sLO https://go.dev/dl/go1.20.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.20.linux-amd64.tar.gz
  505. - groupadd --gid 1001 gitea && useradd -m --gid 1001 --uid 1001 gitea
  506. - apt-get -qq update && apt-get -qqy install build-essential
  507. - export TEST_PGSQL_SCHEMA=''
  508. - ./build/test-env-prepare.sh
  509. - su gitea bash -c "export PATH=$PATH:/usr/local/go/bin && timeout -s ABRT 40m make test-e2e-pgsql"
  510. environment:
  511. GOPROXY: https://goproxy.io
  512. GOSUMDB: sum.golang.org
  513. USE_REPO_TEST_DIR: 1
  514. TEST_PGSQL_DBNAME: 'testgitea-e2e'
  515. DEBIAN_FRONTEND: noninteractive
  516. depends_on: [build-frontend, deps-backend]
  517. volumes:
  518. - name: deps
  519. path: /go
  520. ---
  521. kind: pipeline
  522. name: update_translations
  523. platform:
  524. os: linux
  525. arch: arm64
  526. trigger:
  527. branch:
  528. - main
  529. event:
  530. - cron
  531. cron:
  532. - update_translations
  533. steps:
  534. - name: download
  535. image: jonasfranz/crowdin
  536. pull: always
  537. settings:
  538. download: true
  539. export_dir: options/locale/
  540. ignore_branch: true
  541. project_identifier: gitea
  542. environment:
  543. CROWDIN_KEY:
  544. from_secret: crowdin_key
  545. - name: update
  546. image: alpine:3.17
  547. pull: always
  548. commands:
  549. - ./build/update-locales.sh
  550. - name: push
  551. image: appleboy/drone-git-push
  552. pull: always
  553. settings:
  554. author_email: "teabot@gitea.io"
  555. author_name: GiteaBot
  556. branch: main
  557. commit: true
  558. commit_message: "[skip ci] Updated translations via Crowdin"
  559. remote: "git@github.com:go-gitea/gitea.git"
  560. environment:
  561. DRONE_COMMIT_AUTHOR_EMAIL: "teabot@gitea.io"
  562. DRONE_COMMIT_AUTHOR: GiteaBot
  563. GIT_PUSH_SSH_KEY:
  564. from_secret: git_push_ssh_key
  565. - name: upload_translations
  566. image: jonasfranz/crowdin
  567. pull: always
  568. settings:
  569. files:
  570. locale_en-US.ini: options/locale/locale_en-US.ini
  571. ignore_branch: true
  572. project_identifier: gitea
  573. environment:
  574. CROWDIN_KEY:
  575. from_secret: crowdin_key
  576. ---
  577. kind: pipeline
  578. type: docker
  579. name: update_gitignore_and_licenses
  580. platform:
  581. os: linux
  582. arch: arm64
  583. trigger:
  584. branch:
  585. - main
  586. event:
  587. - cron
  588. cron:
  589. - update_gitignore_and_licenses
  590. steps:
  591. - name: download
  592. image: golang:1.20
  593. pull: always
  594. commands:
  595. - timeout -s ABRT 40m make generate-license generate-gitignore
  596. - name: push
  597. image: appleboy/drone-git-push
  598. pull: always
  599. settings:
  600. author_email: "teabot@gitea.io"
  601. author_name: "GiteaBot"
  602. branch: main
  603. commit: true
  604. commit_message: "[skip ci] Updated licenses and gitignores"
  605. remote: "git@github.com:go-gitea/gitea.git"
  606. environment:
  607. DRONE_COMMIT_AUTHOR_EMAIL: "teabot@gitea.io"
  608. DRONE_COMMIT_AUTHOR: "GiteaBot"
  609. GIT_PUSH_SSH_KEY:
  610. from_secret: git_push_ssh_key
  611. ---
  612. kind: pipeline
  613. type: docker
  614. name: release-latest
  615. platform:
  616. os: linux
  617. arch: amd64
  618. workspace:
  619. base: /source
  620. path: /
  621. trigger:
  622. branch:
  623. - main
  624. - "release/*"
  625. event:
  626. - push
  627. paths:
  628. exclude:
  629. - docs/**
  630. depends_on:
  631. - testing-amd64
  632. - testing-arm64
  633. volumes:
  634. - name: deps
  635. temp: {}
  636. steps:
  637. - name: fetch-tags
  638. image: docker:git
  639. pull: always
  640. commands:
  641. - git config --global --add safe.directory /drone/src
  642. - git fetch --tags --force
  643. - name: deps-frontend
  644. image: node:18
  645. pull: always
  646. commands:
  647. - make deps-frontend
  648. - name: deps-backend
  649. image: golang:1.20
  650. pull: always
  651. commands:
  652. - make deps-backend
  653. volumes:
  654. - name: deps
  655. path: /go
  656. - name: static
  657. image: techknowlogick/xgo:go-1.20.x
  658. pull: always
  659. commands:
  660. # Upgrade to node 18 once https://github.com/techknowlogick/xgo/issues/163 is resolved
  661. - curl -sL https://deb.nodesource.com/setup_16.x | bash - && apt-get -qqy install nodejs
  662. - export PATH=$PATH:$GOPATH/bin
  663. - make release
  664. environment:
  665. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  666. TAGS: bindata sqlite sqlite_unlock_notify
  667. DEBIAN_FRONTEND: noninteractive
  668. volumes:
  669. - name: deps
  670. path: /go
  671. - name: gpg-sign
  672. image: plugins/gpgsign:1
  673. pull: always
  674. settings:
  675. detach_sign: true
  676. excludes:
  677. - "dist/release/*.sha256"
  678. files:
  679. - "dist/release/*"
  680. environment:
  681. GPGSIGN_KEY:
  682. from_secret: gpgsign_key
  683. GPGSIGN_PASSPHRASE:
  684. from_secret: gpgsign_passphrase
  685. - name: release-branch
  686. image: woodpeckerci/plugin-s3:latest
  687. pull: always
  688. settings:
  689. acl:
  690. from_secret: aws_s3_acl
  691. region:
  692. from_secret: aws_s3_region
  693. bucket:
  694. from_secret: aws_s3_bucket
  695. endpoint:
  696. from_secret: aws_s3_endpoint
  697. path_style:
  698. from_secret: aws_s3_path_style
  699. source: "dist/release/*"
  700. strip_prefix: dist/release/
  701. target: "/gitea/${DRONE_BRANCH##release/v}"
  702. environment:
  703. AWS_ACCESS_KEY_ID:
  704. from_secret: aws_access_key_id
  705. AWS_SECRET_ACCESS_KEY:
  706. from_secret: aws_secret_access_key
  707. when:
  708. branch:
  709. - "release/*"
  710. event:
  711. - push
  712. - name: release-main
  713. image: woodpeckerci/plugin-s3:latest
  714. settings:
  715. acl:
  716. from_secret: aws_s3_acl
  717. region:
  718. from_secret: aws_s3_region
  719. bucket:
  720. from_secret: aws_s3_bucket
  721. endpoint:
  722. from_secret: aws_s3_endpoint
  723. path_style:
  724. from_secret: aws_s3_path_style
  725. source: "dist/release/*"
  726. strip_prefix: dist/release/
  727. target: /gitea/main
  728. environment:
  729. AWS_ACCESS_KEY_ID:
  730. from_secret: aws_access_key_id
  731. AWS_SECRET_ACCESS_KEY:
  732. from_secret: aws_secret_access_key
  733. when:
  734. branch:
  735. - main
  736. event:
  737. - push
  738. ---
  739. kind: pipeline
  740. name: release-version
  741. platform:
  742. os: linux
  743. arch: amd64
  744. workspace:
  745. base: /source
  746. path: /
  747. trigger:
  748. event:
  749. - tag
  750. depends_on:
  751. - testing-arm64
  752. - testing-amd64
  753. volumes:
  754. - name: deps
  755. temp: {}
  756. steps:
  757. - name: fetch-tags
  758. image: docker:git
  759. pull: always
  760. commands:
  761. - git config --global --add safe.directory /drone/src
  762. - git fetch --tags --force
  763. - name: deps-frontend
  764. image: node:18
  765. pull: always
  766. commands:
  767. - make deps-frontend
  768. - name: deps-backend
  769. image: golang:1.20
  770. pull: always
  771. commands:
  772. - make deps-backend
  773. volumes:
  774. - name: deps
  775. path: /go
  776. - name: static
  777. image: techknowlogick/xgo:go-1.20.x
  778. pull: always
  779. commands:
  780. # Upgrade to node 18 once https://github.com/techknowlogick/xgo/issues/163 is resolved
  781. - curl -sL https://deb.nodesource.com/setup_16.x | bash - && apt-get -qqy install nodejs
  782. - export PATH=$PATH:$GOPATH/bin
  783. - make release
  784. environment:
  785. GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
  786. TAGS: bindata sqlite sqlite_unlock_notify
  787. DEBIAN_FRONTEND: noninteractive
  788. depends_on: [fetch-tags]
  789. volumes:
  790. - name: deps
  791. path: /go
  792. - name: gpg-sign
  793. image: plugins/gpgsign:1
  794. pull: always
  795. settings:
  796. detach_sign: true
  797. excludes:
  798. - "dist/release/*.sha256"
  799. files:
  800. - "dist/release/*"
  801. environment:
  802. GPGSIGN_KEY:
  803. from_secret: gpgsign_key
  804. GPGSIGN_PASSPHRASE:
  805. from_secret: gpgsign_passphrase
  806. depends_on: [static]
  807. - name: release-tag
  808. image: woodpeckerci/plugin-s3:latest
  809. pull: always
  810. settings:
  811. acl:
  812. from_secret: aws_s3_acl
  813. region:
  814. from_secret: aws_s3_region
  815. bucket:
  816. from_secret: aws_s3_bucket
  817. endpoint:
  818. from_secret: aws_s3_endpoint
  819. path_style:
  820. from_secret: aws_s3_path_style
  821. source: "dist/release/*"
  822. strip_prefix: dist/release/
  823. target: "/gitea/${DRONE_TAG##v}"
  824. environment:
  825. AWS_ACCESS_KEY_ID:
  826. from_secret: aws_access_key_id
  827. AWS_SECRET_ACCESS_KEY:
  828. from_secret: aws_secret_access_key
  829. depends_on: [gpg-sign]
  830. - name: github
  831. image: plugins/github-release:latest
  832. pull: always
  833. settings:
  834. files:
  835. - "dist/release/*"
  836. file_exists: overwrite
  837. environment:
  838. GITHUB_TOKEN:
  839. from_secret: github_token
  840. depends_on: [gpg-sign]
  841. ---
  842. kind: pipeline
  843. type: docker
  844. name: docs
  845. platform:
  846. os: linux
  847. arch: arm64
  848. depends_on:
  849. - compliance
  850. trigger:
  851. event:
  852. - push
  853. - tag
  854. - pull_request
  855. paths:
  856. include:
  857. - docs/**
  858. steps:
  859. - name: build-docs
  860. image: golang:1.20
  861. commands:
  862. - cd docs
  863. - make trans-copy clean build
  864. - name: publish-docs
  865. image: techknowlogick/drone-netlify:latest
  866. pull: always
  867. settings:
  868. path: docs/public/
  869. site_id: d2260bae-7861-4c02-8646-8f6440b12672
  870. environment:
  871. NETLIFY_TOKEN:
  872. from_secret: netlify_token
  873. when:
  874. branch:
  875. - main
  876. event:
  877. - push
  878. ---
  879. kind: pipeline
  880. type: docker
  881. name: docker-linux-amd64-release-version
  882. platform:
  883. os: linux
  884. arch: amd64
  885. depends_on:
  886. - testing-amd64
  887. - testing-arm64
  888. trigger:
  889. ref:
  890. include:
  891. - "refs/tags/**"
  892. exclude:
  893. - "refs/tags/**-rc*"
  894. event:
  895. exclude:
  896. - cron
  897. paths:
  898. exclude:
  899. - docs/**
  900. steps:
  901. - name: fetch-tags
  902. image: docker:git
  903. pull: always
  904. commands:
  905. - git config --global --add safe.directory /drone/src
  906. - git fetch --tags --force
  907. - name: publish
  908. image: techknowlogick/drone-docker:latest
  909. pull: always
  910. settings:
  911. auto_tag: true
  912. auto_tag_suffix: linux-amd64
  913. repo: gitea/gitea
  914. build_args:
  915. - GOPROXY=https://goproxy.io
  916. password:
  917. from_secret: docker_password
  918. username:
  919. from_secret: docker_username
  920. when:
  921. event:
  922. exclude:
  923. - pull_request
  924. - name: publish-rootless
  925. image: techknowlogick/drone-docker:latest
  926. settings:
  927. dockerfile: Dockerfile.rootless
  928. auto_tag: true
  929. auto_tag_suffix: linux-amd64-rootless
  930. repo: gitea/gitea
  931. build_args:
  932. - GOPROXY=https://goproxy.io
  933. password:
  934. from_secret: docker_password
  935. username:
  936. from_secret: docker_username
  937. when:
  938. event:
  939. exclude:
  940. - pull_request
  941. ---
  942. kind: pipeline
  943. type: docker
  944. name: docker-linux-amd64-release-candidate-version
  945. platform:
  946. os: linux
  947. arch: amd64
  948. depends_on:
  949. - testing-amd64
  950. - testing-arm64
  951. trigger:
  952. ref:
  953. - "refs/tags/**-rc*"
  954. event:
  955. exclude:
  956. - cron
  957. paths:
  958. exclude:
  959. - docs/**
  960. steps:
  961. - name: fetch-tags
  962. image: docker:git
  963. pull: always
  964. commands:
  965. - git config --global --add safe.directory /drone/src
  966. - git fetch --tags --force
  967. - name: publish
  968. image: techknowlogick/drone-docker:latest
  969. pull: always
  970. settings:
  971. tags: ${DRONE_TAG##v}-linux-amd64
  972. repo: gitea/gitea
  973. build_args:
  974. - GOPROXY=https://goproxy.io
  975. password:
  976. from_secret: docker_password
  977. username:
  978. from_secret: docker_username
  979. when:
  980. event:
  981. exclude:
  982. - pull_request
  983. - name: publish-rootless
  984. image: techknowlogick/drone-docker:latest
  985. settings:
  986. dockerfile: Dockerfile.rootless
  987. tags: ${DRONE_TAG##v}-linux-amd64-rootless
  988. repo: gitea/gitea
  989. build_args:
  990. - GOPROXY=https://goproxy.io
  991. password:
  992. from_secret: docker_password
  993. username:
  994. from_secret: docker_username
  995. when:
  996. event:
  997. exclude:
  998. - pull_request
  999. ---
  1000. kind: pipeline
  1001. type: docker
  1002. name: docker-linux-amd64-release
  1003. platform:
  1004. os: linux
  1005. arch: amd64
  1006. depends_on:
  1007. - testing-amd64
  1008. - testing-arm64
  1009. trigger:
  1010. ref:
  1011. - refs/heads/main
  1012. event:
  1013. exclude:
  1014. - cron
  1015. steps:
  1016. - name: fetch-tags
  1017. image: docker:git
  1018. pull: always
  1019. commands:
  1020. - git config --global --add safe.directory /drone/src
  1021. - git fetch --tags --force
  1022. - name: publish
  1023. image: techknowlogick/drone-docker:latest
  1024. pull: always
  1025. settings:
  1026. auto_tag: false
  1027. tags: dev-linux-amd64
  1028. repo: gitea/gitea
  1029. build_args:
  1030. - GOPROXY=https://goproxy.io
  1031. password:
  1032. from_secret: docker_password
  1033. username:
  1034. from_secret: docker_username
  1035. when:
  1036. event:
  1037. exclude:
  1038. - pull_request
  1039. - name: publish-rootless
  1040. image: techknowlogick/drone-docker:latest
  1041. settings:
  1042. dockerfile: Dockerfile.rootless
  1043. auto_tag: false
  1044. tags: dev-linux-amd64-rootless
  1045. repo: gitea/gitea
  1046. build_args:
  1047. - GOPROXY=https://goproxy.io
  1048. password:
  1049. from_secret: docker_password
  1050. username:
  1051. from_secret: docker_username
  1052. when:
  1053. event:
  1054. exclude:
  1055. - pull_request
  1056. ---
  1057. kind: pipeline
  1058. name: docker-linux-amd64-release-branch
  1059. platform:
  1060. os: linux
  1061. arch: amd64
  1062. depends_on:
  1063. - testing-amd64
  1064. - testing-arm64
  1065. trigger:
  1066. ref:
  1067. - "refs/heads/release/v*"
  1068. event:
  1069. exclude:
  1070. - cron
  1071. steps:
  1072. - name: fetch-tags
  1073. image: docker:git
  1074. pull: always
  1075. commands:
  1076. - git config --global --add safe.directory /drone/src
  1077. - git fetch --tags --force
  1078. - name: publish
  1079. image: techknowlogick/drone-docker:latest
  1080. pull: always
  1081. settings:
  1082. auto_tag: false
  1083. tags: ${DRONE_BRANCH##release/v}-dev-linux-amd64
  1084. repo: gitea/gitea
  1085. build_args:
  1086. - GOPROXY=https://goproxy.io
  1087. password:
  1088. from_secret: docker_password
  1089. username:
  1090. from_secret: docker_username
  1091. when:
  1092. event:
  1093. exclude:
  1094. - pull_request
  1095. - name: publish-rootless
  1096. image: techknowlogick/drone-docker:latest
  1097. settings:
  1098. dockerfile: Dockerfile.rootless
  1099. auto_tag: false
  1100. tags: ${DRONE_BRANCH##release/v}-dev-linux-amd64-rootless
  1101. repo: gitea/gitea
  1102. build_args:
  1103. - GOPROXY=https://goproxy.io
  1104. password:
  1105. from_secret: docker_password
  1106. username:
  1107. from_secret: docker_username
  1108. when:
  1109. event:
  1110. exclude:
  1111. - pull_request
  1112. ---
  1113. kind: pipeline
  1114. type: docker
  1115. name: docker-linux-arm64-dry-run
  1116. platform:
  1117. os: linux
  1118. arch: arm64
  1119. depends_on:
  1120. - compliance
  1121. trigger:
  1122. ref:
  1123. - "refs/pull/**"
  1124. paths:
  1125. exclude:
  1126. - docs/**
  1127. steps:
  1128. - name: dryrun
  1129. image: techknowlogick/drone-docker:latest
  1130. pull: always
  1131. settings:
  1132. dry_run: true
  1133. repo: gitea/gitea
  1134. tags: linux-arm64
  1135. build_args:
  1136. - GOPROXY=https://goproxy.io
  1137. environment:
  1138. PLUGIN_MIRROR:
  1139. from_secret: plugin_mirror
  1140. when:
  1141. event:
  1142. - pull_request
  1143. ---
  1144. kind: pipeline
  1145. type: docker
  1146. name: docker-linux-arm64-release-version
  1147. platform:
  1148. os: linux
  1149. arch: arm64
  1150. depends_on:
  1151. - testing-amd64
  1152. - testing-arm64
  1153. trigger:
  1154. ref:
  1155. include:
  1156. - "refs/tags/**"
  1157. exclude:
  1158. - "refs/tags/**-rc*"
  1159. event:
  1160. exclude:
  1161. - cron
  1162. paths:
  1163. exclude:
  1164. - docs/**
  1165. steps:
  1166. - name: fetch-tags
  1167. image: docker:git
  1168. pull: always
  1169. commands:
  1170. - git config --global --add safe.directory /drone/src
  1171. - git fetch --tags --force
  1172. - name: publish
  1173. image: techknowlogick/drone-docker:latest
  1174. pull: always
  1175. settings:
  1176. auto_tag: true
  1177. auto_tag_suffix: linux-arm64
  1178. repo: gitea/gitea
  1179. build_args:
  1180. - GOPROXY=https://goproxy.io
  1181. password:
  1182. from_secret: docker_password
  1183. username:
  1184. from_secret: docker_username
  1185. when:
  1186. event:
  1187. exclude:
  1188. - pull_request
  1189. - name: publish-rootless
  1190. image: techknowlogick/drone-docker:latest
  1191. settings:
  1192. dockerfile: Dockerfile.rootless
  1193. auto_tag: true
  1194. auto_tag_suffix: linux-arm64-rootless
  1195. repo: gitea/gitea
  1196. build_args:
  1197. - GOPROXY=https://goproxy.io
  1198. password:
  1199. from_secret: docker_password
  1200. username:
  1201. from_secret: docker_username
  1202. when:
  1203. event:
  1204. exclude:
  1205. - pull_request
  1206. ---
  1207. kind: pipeline
  1208. type: docker
  1209. name: docker-linux-arm64-release-candidate-version
  1210. platform:
  1211. os: linux
  1212. arch: arm64
  1213. depends_on:
  1214. - testing-amd64
  1215. - testing-arm64
  1216. trigger:
  1217. ref:
  1218. - "refs/tags/**-rc*"
  1219. event:
  1220. exclude:
  1221. - cron
  1222. paths:
  1223. exclude:
  1224. - docs/**
  1225. steps:
  1226. - name: fetch-tags
  1227. image: docker:git
  1228. pull: always
  1229. commands:
  1230. - git config --global --add safe.directory /drone/src
  1231. - git fetch --tags --force
  1232. - name: publish
  1233. image: techknowlogick/drone-docker:latest
  1234. pull: always
  1235. settings:
  1236. tags: ${DRONE_TAG##v}-linux-arm64
  1237. repo: gitea/gitea
  1238. build_args:
  1239. - GOPROXY=https://goproxy.io
  1240. password:
  1241. from_secret: docker_password
  1242. username:
  1243. from_secret: docker_username
  1244. when:
  1245. event:
  1246. exclude:
  1247. - pull_request
  1248. - name: publish-rootless
  1249. image: techknowlogick/drone-docker:latest
  1250. settings:
  1251. dockerfile: Dockerfile.rootless
  1252. tags: ${DRONE_TAG##v}-linux-arm64-rootless
  1253. repo: gitea/gitea
  1254. build_args:
  1255. - GOPROXY=https://goproxy.io
  1256. password:
  1257. from_secret: docker_password
  1258. username:
  1259. from_secret: docker_username
  1260. when:
  1261. event:
  1262. exclude:
  1263. - pull_request
  1264. ---
  1265. kind: pipeline
  1266. type: docker
  1267. name: docker-linux-arm64-release
  1268. platform:
  1269. os: linux
  1270. arch: arm64
  1271. depends_on:
  1272. - testing-amd64
  1273. - testing-arm64
  1274. trigger:
  1275. ref:
  1276. - refs/heads/main
  1277. event:
  1278. exclude:
  1279. - cron
  1280. paths:
  1281. exclude:
  1282. - docs/**
  1283. steps:
  1284. - name: fetch-tags
  1285. image: docker:git
  1286. pull: always
  1287. commands:
  1288. - git config --global --add safe.directory /drone/src
  1289. - git fetch --tags --force
  1290. - name: publish
  1291. image: techknowlogick/drone-docker:latest
  1292. pull: always
  1293. settings:
  1294. auto_tag: false
  1295. tags: dev-linux-arm64
  1296. repo: gitea/gitea
  1297. build_args:
  1298. - GOPROXY=https://goproxy.io
  1299. password:
  1300. from_secret: docker_password
  1301. username:
  1302. from_secret: docker_username
  1303. when:
  1304. event:
  1305. exclude:
  1306. - pull_request
  1307. - name: publish-rootless
  1308. image: techknowlogick/drone-docker:latest
  1309. settings:
  1310. dockerfile: Dockerfile.rootless
  1311. auto_tag: false
  1312. tags: dev-linux-arm64-rootless
  1313. repo: gitea/gitea
  1314. build_args:
  1315. - GOPROXY=https://goproxy.io
  1316. password:
  1317. from_secret: docker_password
  1318. username:
  1319. from_secret: docker_username
  1320. when:
  1321. event:
  1322. exclude:
  1323. - pull_request
  1324. ---
  1325. kind: pipeline
  1326. name: docker-linux-arm64-release-branch
  1327. platform:
  1328. os: linux
  1329. arch: arm64
  1330. depends_on:
  1331. - testing-amd64
  1332. - testing-arm64
  1333. trigger:
  1334. ref:
  1335. - "refs/heads/release/v*"
  1336. event:
  1337. exclude:
  1338. - cron
  1339. steps:
  1340. - name: fetch-tags
  1341. image: docker:git
  1342. pull: always
  1343. commands:
  1344. - git config --global --add safe.directory /drone/src
  1345. - git fetch --tags --force
  1346. - name: publish
  1347. image: techknowlogick/drone-docker:latest
  1348. pull: always
  1349. settings:
  1350. auto_tag: false
  1351. tags: ${DRONE_BRANCH##release/v}-dev-linux-arm64
  1352. repo: gitea/gitea
  1353. build_args:
  1354. - GOPROXY=https://goproxy.io
  1355. password:
  1356. from_secret: docker_password
  1357. username:
  1358. from_secret: docker_username
  1359. when:
  1360. event:
  1361. exclude:
  1362. - pull_request
  1363. - name: publish-rootless
  1364. image: techknowlogick/drone-docker:latest
  1365. settings:
  1366. dockerfile: Dockerfile.rootless
  1367. auto_tag: false
  1368. tags: ${DRONE_BRANCH##release/v}-dev-linux-arm64-rootless
  1369. repo: gitea/gitea
  1370. build_args:
  1371. - GOPROXY=https://goproxy.io
  1372. password:
  1373. from_secret: docker_password
  1374. username:
  1375. from_secret: docker_username
  1376. when:
  1377. event:
  1378. exclude:
  1379. - pull_request
  1380. ---
  1381. kind: pipeline
  1382. type: docker
  1383. name: docker-manifest-version
  1384. platform:
  1385. os: linux
  1386. arch: amd64
  1387. steps:
  1388. - name: manifest-rootless
  1389. image: plugins/manifest
  1390. pull: always
  1391. settings:
  1392. auto_tag: true
  1393. ignore_missing: true
  1394. spec: docker/manifest.rootless.tmpl
  1395. password:
  1396. from_secret: docker_password
  1397. username:
  1398. from_secret: docker_username
  1399. - name: manifest
  1400. image: plugins/manifest
  1401. settings:
  1402. auto_tag: true
  1403. ignore_missing: true
  1404. spec: docker/manifest.tmpl
  1405. password:
  1406. from_secret: docker_password
  1407. username:
  1408. from_secret: docker_username
  1409. trigger:
  1410. ref:
  1411. - "refs/tags/**"
  1412. event:
  1413. exclude:
  1414. - cron
  1415. paths:
  1416. exclude:
  1417. - docs/**
  1418. depends_on:
  1419. - docker-linux-amd64-release-version
  1420. - docker-linux-amd64-release-candidate-version
  1421. - docker-linux-arm64-release-version
  1422. - docker-linux-arm64-release-candidate-version
  1423. ---
  1424. kind: pipeline
  1425. type: docker
  1426. name: docker-manifest
  1427. platform:
  1428. os: linux
  1429. arch: amd64
  1430. steps:
  1431. - name: manifest-rootless
  1432. pull: always
  1433. image: plugins/manifest
  1434. pull: always
  1435. settings:
  1436. auto_tag: false
  1437. ignore_missing: true
  1438. spec: docker/manifest.rootless.tmpl
  1439. password:
  1440. from_secret: docker_password
  1441. username:
  1442. from_secret: docker_username
  1443. - name: manifest
  1444. image: plugins/manifest
  1445. settings:
  1446. auto_tag: false
  1447. ignore_missing: true
  1448. spec: docker/manifest.tmpl
  1449. password:
  1450. from_secret: docker_password
  1451. username:
  1452. from_secret: docker_username
  1453. trigger:
  1454. ref:
  1455. - refs/heads/main
  1456. - "refs/heads/release/v*"
  1457. event:
  1458. exclude:
  1459. - cron
  1460. paths:
  1461. exclude:
  1462. - docs/**
  1463. depends_on:
  1464. - docker-linux-amd64-release
  1465. - docker-linux-arm64-release
  1466. - docker-linux-amd64-release-branch
  1467. - docker-linux-arm64-release-branch
  1468. ---
  1469. kind: pipeline
  1470. type: docker
  1471. name: notifications
  1472. platform:
  1473. os: linux
  1474. arch: arm64
  1475. clone:
  1476. disable: true
  1477. trigger:
  1478. branch:
  1479. - main
  1480. - "release/*"
  1481. event:
  1482. - push
  1483. - tag
  1484. status:
  1485. - success
  1486. - failure
  1487. depends_on:
  1488. - testing-amd64
  1489. - testing-arm64
  1490. - release-version
  1491. - release-latest
  1492. - docker-linux-amd64-release
  1493. - docker-linux-arm64-release
  1494. - docker-linux-amd64-release-version
  1495. - docker-linux-arm64-release-version
  1496. - docker-linux-amd64-release-candidate-version
  1497. - docker-linux-arm64-release-candidate-version
  1498. - docker-linux-amd64-release-branch
  1499. - docker-linux-arm64-release-branch
  1500. - docker-manifest
  1501. - docker-manifest-version
  1502. - docs
  1503. steps:
  1504. - name: discord
  1505. image: appleboy/drone-discord:1.2.4
  1506. pull: always
  1507. settings:
  1508. 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"
  1509. webhook_id:
  1510. from_secret: discord_webhook_id
  1511. webhook_token:
  1512. from_secret: discord_webhook_token