mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-01 07:09:21 +01:00
9a0a4086e2
Backport https://github.com/go-gitea/gitea/pull/22203 Signed-off-by: jolheiser <john.olheiser@gmail.com> Co-authored-by: silverwind <me@silverwind.io>
1518 lines
31 KiB
YAML
1518 lines
31 KiB
YAML
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: compliance
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- tag
|
|
- pull_request
|
|
|
|
volumes:
|
|
- name: deps
|
|
temp: {}
|
|
|
|
steps:
|
|
- name: deps-frontend
|
|
image: node:18
|
|
pull: always
|
|
commands:
|
|
- make deps-frontend
|
|
|
|
- name: deps-backend
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- make deps-backend
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: lint-frontend
|
|
image: node:18
|
|
commands:
|
|
- make lint-frontend
|
|
depends_on: [deps-frontend]
|
|
|
|
- name: security-check
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- make security-check
|
|
depends_on: [deps-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: lint-backend
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
pull: always
|
|
commands:
|
|
- make lint-backend
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
GOSUMDB: sum.golang.org
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
depends_on: [deps-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: lint-backend-windows
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
commands:
|
|
- make golangci-lint-windows vet
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
GOSUMDB: sum.golang.org
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
GOOS: windows
|
|
GOARCH: amd64
|
|
depends_on: [deps-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: lint-backend-gogit
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
commands:
|
|
- make lint-backend
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
GOSUMDB: sum.golang.org
|
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
|
depends_on: [deps-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: checks-frontend
|
|
image: node:18
|
|
commands:
|
|
- make checks-frontend
|
|
depends_on: [deps-frontend]
|
|
|
|
- name: checks-backend
|
|
image: golang:1.19
|
|
commands:
|
|
- make --always-make checks-backend # ensure the 'go-licenses' make target runs
|
|
depends_on: [deps-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: test-frontend
|
|
image: node:18
|
|
commands:
|
|
- make test-frontend
|
|
depends_on: [lint-frontend]
|
|
|
|
- name: build-frontend
|
|
image: node:18
|
|
commands:
|
|
- make frontend
|
|
depends_on: [deps-frontend]
|
|
|
|
- name: build-backend-no-gcc
|
|
image: golang:1.18 # this step is kept as the lowest version of golang that we support
|
|
pull: always
|
|
environment:
|
|
GO111MODULE: on
|
|
GOPROXY: https://goproxy.io
|
|
commands:
|
|
- go build -o gitea_no_gcc # test if build succeeds without the sqlite tag
|
|
depends_on: [deps-backend, checks-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: build-backend-arm64
|
|
image: golang:1.19
|
|
environment:
|
|
GO111MODULE: on
|
|
GOPROXY: https://goproxy.io
|
|
GOOS: linux
|
|
GOARCH: arm64
|
|
TAGS: bindata gogit
|
|
commands:
|
|
- make backend # test cross compile
|
|
- rm ./gitea # clean
|
|
depends_on: [deps-backend, checks-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: build-backend-windows
|
|
image: golang:1.19
|
|
environment:
|
|
GO111MODULE: on
|
|
GOPROXY: https://goproxy.io
|
|
GOOS: windows
|
|
GOARCH: amd64
|
|
TAGS: bindata gogit
|
|
commands:
|
|
- go build -o gitea_windows
|
|
depends_on: [deps-backend, checks-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: build-backend-386
|
|
image: golang:1.19
|
|
environment:
|
|
GO111MODULE: on
|
|
GOPROXY: https://goproxy.io
|
|
GOOS: linux
|
|
GOARCH: 386
|
|
commands:
|
|
- go build -o gitea_linux_386 # test if compatible with 32 bit
|
|
depends_on: [deps-backend, checks-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: testing-amd64
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
depends_on:
|
|
- compliance
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- tag
|
|
- pull_request
|
|
|
|
volumes:
|
|
- name: deps
|
|
temp: {}
|
|
|
|
services:
|
|
- name: mysql
|
|
image: mysql:5.7
|
|
pull: always
|
|
environment:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
|
MYSQL_DATABASE: test
|
|
|
|
- name: mysql8
|
|
image: mysql:8
|
|
pull: always
|
|
environment:
|
|
MYSQL_ALLOW_EMPTY_PASSWORD: yes
|
|
MYSQL_DATABASE: testgitea
|
|
|
|
- name: mssql
|
|
image: mcr.microsoft.com/mssql/server:latest
|
|
pull: always
|
|
environment:
|
|
ACCEPT_EULA: Y
|
|
MSSQL_PID: Standard
|
|
SA_PASSWORD: MwantsaSecurePassword1
|
|
|
|
- name: ldap
|
|
image: gitea/test-openldap:latest
|
|
pull: always
|
|
|
|
- name: elasticsearch
|
|
image: elasticsearch:7.5.0
|
|
pull: always
|
|
environment:
|
|
discovery.type: single-node
|
|
|
|
- name: minio
|
|
image: minio/minio:RELEASE.2021-03-12T00-00-47Z
|
|
pull: always
|
|
commands:
|
|
- minio server /data
|
|
environment:
|
|
MINIO_ACCESS_KEY: 123456
|
|
MINIO_SECRET_KEY: 12345678
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: deps-backend
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- make deps-backend
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: tag-pre-condition
|
|
image: drone/git
|
|
pull: always
|
|
commands:
|
|
- git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
|
|
|
|
- name: prepare-test-env
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
pull: always
|
|
commands:
|
|
- ./build/test-env-prepare.sh
|
|
|
|
- name: build
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- ./build/test-env-check.sh
|
|
- make backend
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
GOSUMDB: sum.golang.org
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
depends_on: [deps-backend, prepare-test-env]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: unit-test
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- make unit-test-coverage test-check
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
RACE_ENABLED: true
|
|
GITHUB_READ_TOKEN:
|
|
from_secret: github_read_token
|
|
depends_on: [deps-backend, prepare-test-env]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: unit-test-gogit
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- make unit-test-coverage test-check
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
|
RACE_ENABLED: true
|
|
GITHUB_READ_TOKEN:
|
|
from_secret: github_read_token
|
|
depends_on: [deps-backend, prepare-test-env]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: test-mysql
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- make test-mysql-migration integration-test-coverage
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata
|
|
RACE_ENABLED: true
|
|
TEST_LDAP: 1
|
|
USE_REPO_TEST_DIR: 1
|
|
TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200"
|
|
depends_on: [build]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: test-mysql8
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- timeout -s ABRT 50m make test-mysql8-migration test-mysql8
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata
|
|
RACE_ENABLED: true
|
|
TEST_LDAP: 1
|
|
USE_REPO_TEST_DIR: 1
|
|
depends_on: [build]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: test-mssql
|
|
image: gitea/test_env:linux-amd64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- make test-mssql-migration test-mssql
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata
|
|
RACE_ENABLED: true
|
|
TEST_LDAP: 1
|
|
USE_REPO_TEST_DIR: 1
|
|
depends_on: [build]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: generate-coverage
|
|
image: golang:1.19
|
|
commands:
|
|
- make coverage
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata
|
|
depends_on: [unit-test, test-mysql]
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
- push
|
|
- pull_request
|
|
|
|
- name: coverage-codecov
|
|
image: woodpeckerci/plugin-codecov:next-alpine
|
|
pull: always
|
|
settings:
|
|
files:
|
|
- coverage.all
|
|
token:
|
|
from_secret: codecov_token
|
|
depends_on: [generate-coverage]
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
- push
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
name: testing-arm64
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
depends_on:
|
|
- compliance
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- tag
|
|
- pull_request
|
|
|
|
volumes:
|
|
- name: deps
|
|
temp: {}
|
|
|
|
services:
|
|
- name: pgsql
|
|
pull: default
|
|
image: postgres:10
|
|
environment:
|
|
POSTGRES_DB: test
|
|
POSTGRES_PASSWORD: postgres
|
|
|
|
- name: ldap
|
|
pull: default
|
|
image: gitea/test-openldap:latest
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: deps-backend
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- make deps-backend
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: prepare-test-env
|
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
|
pull: always
|
|
commands:
|
|
- ./build/test-env-prepare.sh
|
|
|
|
- name: build
|
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- ./build/test-env-check.sh
|
|
- make backend
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
GOSUMDB: sum.golang.org
|
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
|
depends_on: [deps-backend, prepare-test-env]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: test-sqlite
|
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- timeout -s ABRT 50m make test-sqlite-migration test-sqlite
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata gogit sqlite sqlite_unlock_notify
|
|
RACE_ENABLED: true
|
|
TEST_TAGS: gogit sqlite sqlite_unlock_notify
|
|
USE_REPO_TEST_DIR: 1
|
|
depends_on: [build]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: test-pgsql
|
|
image: gitea/test_env:linux-arm64 # https://gitea.com/gitea/test-env
|
|
user: gitea
|
|
commands:
|
|
- timeout -s ABRT 50m make test-pgsql-migration test-pgsql
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
TAGS: bindata gogit
|
|
RACE_ENABLED: true
|
|
TEST_TAGS: gogit
|
|
TEST_LDAP: 1
|
|
USE_REPO_TEST_DIR: 1
|
|
depends_on: [build]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: testing-e2e
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
depends_on:
|
|
- compliance
|
|
|
|
trigger:
|
|
event:
|
|
- pull_request
|
|
|
|
volumes:
|
|
- name: deps
|
|
temp: {}
|
|
|
|
services:
|
|
- name: pgsql
|
|
pull: default
|
|
image: postgres:10
|
|
environment:
|
|
POSTGRES_DB: testgitea-e2e
|
|
POSTGRES_PASSWORD: postgres
|
|
POSTGRES_INITDB_ARGS: --encoding=UTF8 --lc-collate='en_US.UTF-8' --lc-ctype='en_US.UTF-8'
|
|
|
|
steps:
|
|
- name: deps-frontend
|
|
image: node:18
|
|
pull: always
|
|
commands:
|
|
- make deps-frontend
|
|
|
|
- name: build-frontend
|
|
image: node:18
|
|
commands:
|
|
- make frontend
|
|
depends_on: [deps-frontend]
|
|
|
|
- name: deps-backend
|
|
image: golang:1.18
|
|
pull: always
|
|
commands:
|
|
- make deps-backend
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
# TODO: We should probably build all dependencies into a test image
|
|
- name: test-e2e
|
|
image: mcr.microsoft.com/playwright:v1.27.0-focal
|
|
commands:
|
|
- curl -sLO https://go.dev/dl/go1.19.linux-amd64.tar.gz && tar -C /usr/local -xzf go1.19.linux-amd64.tar.gz
|
|
- groupadd --gid 1001 gitea && useradd -m --gid 1001 --uid 1001 gitea
|
|
- apt-get -qq update && apt-get -qqy install build-essential
|
|
- export TEST_PGSQL_SCHEMA=''
|
|
- ./build/test-env-prepare.sh
|
|
- su gitea bash -c "export PATH=$PATH:/usr/local/go/bin && timeout -s ABRT 40m make test-e2e-pgsql"
|
|
environment:
|
|
GOPROXY: https://goproxy.io
|
|
GOSUMDB: sum.golang.org
|
|
USE_REPO_TEST_DIR: 1
|
|
TEST_PGSQL_DBNAME: 'testgitea-e2e'
|
|
DEBIAN_FRONTEND: noninteractive
|
|
depends_on: [build-frontend, deps-backend]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
---
|
|
kind: pipeline
|
|
name: update_translations
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
trigger:
|
|
branch:
|
|
- main
|
|
event:
|
|
- cron
|
|
cron:
|
|
- update_translations
|
|
|
|
steps:
|
|
- name: download
|
|
image: jonasfranz/crowdin
|
|
pull: always
|
|
settings:
|
|
download: true
|
|
export_dir: options/locale/
|
|
ignore_branch: true
|
|
project_identifier: gitea
|
|
environment:
|
|
CROWDIN_KEY:
|
|
from_secret: crowdin_key
|
|
|
|
- name: update
|
|
image: alpine:3.13
|
|
pull: always
|
|
commands:
|
|
- ./build/update-locales.sh
|
|
|
|
- name: push
|
|
image: appleboy/drone-git-push
|
|
pull: always
|
|
settings:
|
|
author_email: "teabot@gitea.io"
|
|
author_name: GiteaBot
|
|
branch: main
|
|
commit: true
|
|
commit_message: "[skip ci] Updated translations via Crowdin"
|
|
remote: "git@github.com:go-gitea/gitea.git"
|
|
environment:
|
|
DRONE_COMMIT_AUTHOR_EMAIL: "teabot@gitea.io"
|
|
DRONE_COMMIT_AUTHOR: GiteaBot
|
|
GIT_PUSH_SSH_KEY:
|
|
from_secret: git_push_ssh_key
|
|
|
|
- name: upload_translations
|
|
image: jonasfranz/crowdin
|
|
pull: always
|
|
settings:
|
|
files:
|
|
locale_en-US.ini: options/locale/locale_en-US.ini
|
|
ignore_branch: true
|
|
project_identifier: gitea
|
|
environment:
|
|
CROWDIN_KEY:
|
|
from_secret: crowdin_key
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: update_gitignore_and_licenses
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
trigger:
|
|
branch:
|
|
- main
|
|
event:
|
|
- cron
|
|
cron:
|
|
- update_gitignore_and_licenses
|
|
|
|
steps:
|
|
- name: download
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- timeout -s ABRT 40m make generate-license generate-gitignore
|
|
|
|
- name: push
|
|
image: appleboy/drone-git-push
|
|
pull: always
|
|
settings:
|
|
author_email: "teabot@gitea.io"
|
|
author_name: "GiteaBot"
|
|
branch: main
|
|
commit: true
|
|
commit_message: "[skip ci] Updated licenses and gitignores"
|
|
remote: "git@github.com:go-gitea/gitea.git"
|
|
environment:
|
|
DRONE_COMMIT_AUTHOR_EMAIL: "teabot@gitea.io"
|
|
DRONE_COMMIT_AUTHOR: "GiteaBot"
|
|
GIT_PUSH_SSH_KEY:
|
|
from_secret: git_push_ssh_key
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: release-latest
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
workspace:
|
|
base: /source
|
|
path: /
|
|
|
|
trigger:
|
|
branch:
|
|
- main
|
|
- "release/*"
|
|
event:
|
|
- push
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
volumes:
|
|
- name: deps
|
|
temp: {}
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: deps-frontend
|
|
image: node:18
|
|
pull: always
|
|
commands:
|
|
- make deps-frontend
|
|
|
|
- name: deps-backend
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- make deps-backend
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: static
|
|
image: techknowlogick/xgo:go-1.19.x
|
|
pull: always
|
|
commands:
|
|
# Upgrade to node 18 once https://github.com/techknowlogick/xgo/issues/163 is resolved
|
|
- curl -sL https://deb.nodesource.com/setup_16.x | bash - && apt-get -qqy install nodejs
|
|
- export PATH=$PATH:$GOPATH/bin
|
|
- make release
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
DEBIAN_FRONTEND: noninteractive
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: gpg-sign
|
|
image: plugins/gpgsign:1
|
|
pull: always
|
|
settings:
|
|
detach_sign: true
|
|
excludes:
|
|
- "dist/release/*.sha256"
|
|
files:
|
|
- "dist/release/*"
|
|
environment:
|
|
GPGSIGN_KEY:
|
|
from_secret: gpgsign_key
|
|
GPGSIGN_PASSPHRASE:
|
|
from_secret: gpgsign_passphrase
|
|
|
|
- name: release-branch
|
|
image: woodpeckerci/plugin-s3:latest
|
|
pull: always
|
|
settings:
|
|
acl: public-read
|
|
bucket: gitea-artifacts
|
|
endpoint: https://ams3.digitaloceanspaces.com
|
|
path_style: true
|
|
source: "dist/release/*"
|
|
strip_prefix: dist/release/
|
|
target: "/gitea/${DRONE_BRANCH##release/v}"
|
|
environment:
|
|
AWS_ACCESS_KEY_ID:
|
|
from_secret: aws_access_key_id
|
|
AWS_SECRET_ACCESS_KEY:
|
|
from_secret: aws_secret_access_key
|
|
when:
|
|
branch:
|
|
- "release/*"
|
|
event:
|
|
- push
|
|
|
|
- name: release-main
|
|
image: woodpeckerci/plugin-s3:latest
|
|
settings:
|
|
acl: public-read
|
|
bucket: gitea-artifacts
|
|
endpoint: https://ams3.digitaloceanspaces.com
|
|
path_style: true
|
|
source: "dist/release/*"
|
|
strip_prefix: dist/release/
|
|
target: /gitea/main
|
|
environment:
|
|
AWS_ACCESS_KEY_ID:
|
|
from_secret: aws_access_key_id
|
|
AWS_SECRET_ACCESS_KEY:
|
|
from_secret: aws_secret_access_key
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
- push
|
|
|
|
---
|
|
kind: pipeline
|
|
name: release-version
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
workspace:
|
|
base: /source
|
|
path: /
|
|
|
|
trigger:
|
|
event:
|
|
- tag
|
|
|
|
depends_on:
|
|
- testing-arm64
|
|
- testing-amd64
|
|
|
|
volumes:
|
|
- name: deps
|
|
temp: {}
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: deps-frontend
|
|
image: node:18
|
|
pull: always
|
|
commands:
|
|
- make deps-frontend
|
|
|
|
- name: deps-backend
|
|
image: golang:1.19
|
|
pull: always
|
|
commands:
|
|
- make deps-backend
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: static
|
|
image: techknowlogick/xgo:go-1.19.x
|
|
pull: always
|
|
commands:
|
|
# Upgrade to node 18 once https://github.com/techknowlogick/xgo/issues/163 is resolved
|
|
- curl -sL https://deb.nodesource.com/setup_16.x | bash - && apt-get -qqy install nodejs
|
|
- export PATH=$PATH:$GOPATH/bin
|
|
- make release
|
|
environment:
|
|
GOPROXY: https://goproxy.io # proxy.golang.org is blocked in China, this proxy is not
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
DEBIAN_FRONTEND: noninteractive
|
|
depends_on: [fetch-tags]
|
|
volumes:
|
|
- name: deps
|
|
path: /go
|
|
|
|
- name: gpg-sign
|
|
image: plugins/gpgsign:1
|
|
pull: always
|
|
settings:
|
|
detach_sign: true
|
|
excludes:
|
|
- "dist/release/*.sha256"
|
|
files:
|
|
- "dist/release/*"
|
|
environment:
|
|
GPGSIGN_KEY:
|
|
from_secret: gpgsign_key
|
|
GPGSIGN_PASSPHRASE:
|
|
from_secret: gpgsign_passphrase
|
|
depends_on: [static]
|
|
|
|
- name: release-tag
|
|
image: woodpeckerci/plugin-s3:latest
|
|
pull: always
|
|
settings:
|
|
acl: public-read
|
|
bucket: gitea-artifacts
|
|
endpoint: https://ams3.digitaloceanspaces.com
|
|
path_style: true
|
|
source: "dist/release/*"
|
|
strip_prefix: dist/release/
|
|
target: "/gitea/${DRONE_TAG##v}"
|
|
environment:
|
|
AWS_ACCESS_KEY_ID:
|
|
from_secret: aws_access_key_id
|
|
AWS_SECRET_ACCESS_KEY:
|
|
from_secret: aws_secret_access_key
|
|
depends_on: [gpg-sign]
|
|
|
|
- name: github
|
|
image: plugins/github-release:latest
|
|
pull: always
|
|
settings:
|
|
files:
|
|
- "dist/release/*"
|
|
file_exists: overwrite
|
|
environment:
|
|
GITHUB_TOKEN:
|
|
from_secret: github_token
|
|
depends_on: [gpg-sign]
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docs
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
depends_on:
|
|
- compliance
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- tag
|
|
- pull_request
|
|
|
|
steps:
|
|
- name: build-docs
|
|
image: plugins/hugo:latest
|
|
pull: always
|
|
commands:
|
|
# https://github.com/drone-plugins/drone-hugo/issues/36
|
|
- apk upgrade --no-cache libcurl && apk add --no-cache make bash curl
|
|
- cd docs
|
|
- make trans-copy clean build
|
|
|
|
- name: publish-docs
|
|
image: techknowlogick/drone-netlify:latest
|
|
pull: always
|
|
settings:
|
|
path: docs/public/
|
|
site_id: d2260bae-7861-4c02-8646-8f6440b12672
|
|
environment:
|
|
NETLIFY_TOKEN:
|
|
from_secret: netlify_token
|
|
when:
|
|
branch:
|
|
- main
|
|
event:
|
|
- push
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-linux-amd64-release-version
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
trigger:
|
|
ref:
|
|
- "refs/tags/**"
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: publish
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
auto_tag: true
|
|
auto_tag_suffix: linux-amd64
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: publish-rootless
|
|
image: techknowlogick/drone-docker:latest
|
|
settings:
|
|
dockerfile: Dockerfile.rootless
|
|
auto_tag: true
|
|
auto_tag_suffix: linux-amd64-rootless
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-linux-amd64-release
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
trigger:
|
|
ref:
|
|
- refs/heads/main
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: publish
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
auto_tag: false
|
|
tags: dev-linux-amd64
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: publish-rootless
|
|
image: techknowlogick/drone-docker:latest
|
|
settings:
|
|
dockerfile: Dockerfile.rootless
|
|
auto_tag: false
|
|
tags: dev-linux-amd64-rootless
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
name: docker-linux-amd64-release-branch
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
trigger:
|
|
ref:
|
|
- "refs/heads/release/v*"
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: publish
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
auto_tag: false
|
|
tags: ${DRONE_BRANCH##release/v}-dev-linux-amd64
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: publish-rootless
|
|
image: techknowlogick/drone-docker:latest
|
|
settings:
|
|
dockerfile: Dockerfile.rootless
|
|
auto_tag: false
|
|
tags: ${DRONE_BRANCH##release/v}-dev-linux-amd64-rootless
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-linux-arm64-dry-run
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
depends_on:
|
|
- compliance
|
|
|
|
trigger:
|
|
ref:
|
|
- "refs/pull/**"
|
|
|
|
steps:
|
|
- name: dryrun
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
dry_run: true
|
|
repo: gitea/gitea
|
|
tags: linux-arm64
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
environment:
|
|
PLUGIN_MIRROR:
|
|
from_secret: plugin_mirror
|
|
when:
|
|
event:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-linux-arm64-release-version
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
trigger:
|
|
ref:
|
|
- "refs/tags/**"
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: publish
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
auto_tag: true
|
|
auto_tag_suffix: linux-arm64
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: publish-rootless
|
|
image: techknowlogick/drone-docker:latest
|
|
settings:
|
|
dockerfile: Dockerfile.rootless
|
|
auto_tag: true
|
|
auto_tag_suffix: linux-arm64-rootless
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-linux-arm64-release
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
trigger:
|
|
ref:
|
|
- refs/heads/main
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: publish
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
auto_tag: false
|
|
tags: dev-linux-arm64
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: publish-rootless
|
|
image: techknowlogick/drone-docker:latest
|
|
settings:
|
|
dockerfile: Dockerfile.rootless
|
|
auto_tag: false
|
|
tags: dev-linux-arm64-rootless
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
name: docker-linux-arm64-release-branch
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
|
|
trigger:
|
|
ref:
|
|
- "refs/heads/release/v*"
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
steps:
|
|
- name: fetch-tags
|
|
image: docker:git
|
|
pull: always
|
|
commands:
|
|
- git config --global --add safe.directory /drone/src
|
|
- git fetch --tags --force
|
|
|
|
- name: publish
|
|
image: techknowlogick/drone-docker:latest
|
|
pull: always
|
|
settings:
|
|
auto_tag: false
|
|
tags: ${DRONE_BRANCH##release/v}-dev-linux-arm64
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: publish-rootless
|
|
image: techknowlogick/drone-docker:latest
|
|
settings:
|
|
dockerfile: Dockerfile.rootless
|
|
auto_tag: false
|
|
tags: ${DRONE_BRANCH##release/v}-dev-linux-arm64-rootless
|
|
repo: gitea/gitea
|
|
build_args:
|
|
- GOPROXY=https://goproxy.io
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-manifest-version
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
steps:
|
|
- name: manifest-rootless
|
|
image: plugins/manifest
|
|
pull: always
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: docker/manifest.rootless.tmpl
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
|
|
- name: manifest
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: docker/manifest.tmpl
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
|
|
trigger:
|
|
ref:
|
|
- "refs/tags/**"
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
depends_on:
|
|
- docker-linux-amd64-release-version
|
|
- docker-linux-arm64-release-version
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: docker-manifest
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
steps:
|
|
- name: manifest-rootless
|
|
pull: always
|
|
image: plugins/manifest
|
|
pull: always
|
|
settings:
|
|
auto_tag: false
|
|
ignore_missing: true
|
|
spec: docker/manifest.rootless.tmpl
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
|
|
- name: manifest
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: false
|
|
ignore_missing: true
|
|
spec: docker/manifest.tmpl
|
|
password:
|
|
from_secret: docker_password
|
|
username:
|
|
from_secret: docker_username
|
|
|
|
trigger:
|
|
ref:
|
|
- refs/heads/main
|
|
- "refs/heads/release/v*"
|
|
event:
|
|
exclude:
|
|
- cron
|
|
|
|
depends_on:
|
|
- docker-linux-amd64-release
|
|
- docker-linux-arm64-release
|
|
- docker-linux-amd64-release-branch
|
|
- docker-linux-arm64-release-branch
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: notifications
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
clone:
|
|
disable: true
|
|
|
|
trigger:
|
|
branch:
|
|
- main
|
|
- "release/*"
|
|
event:
|
|
- push
|
|
- tag
|
|
status:
|
|
- success
|
|
- failure
|
|
|
|
depends_on:
|
|
- testing-amd64
|
|
- testing-arm64
|
|
- release-version
|
|
- release-latest
|
|
- docker-linux-amd64-release
|
|
- docker-linux-arm64-release
|
|
- docker-linux-amd64-release-version
|
|
- docker-linux-arm64-release-version
|
|
- docker-linux-amd64-release-branch
|
|
- docker-linux-arm64-release-branch
|
|
- docker-manifest
|
|
- docker-manifest-version
|
|
- docs
|
|
|
|
steps:
|
|
- name: discord
|
|
image: appleboy/drone-discord:1.2.4
|
|
pull: always
|
|
settings:
|
|
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"
|
|
webhook_id:
|
|
from_secret: discord_webhook_id
|
|
webhook_token:
|
|
from_secret: discord_webhook_token
|