2020-01-13 13:40:10 +03:00
---
kind : pipeline
name : compliance
platform :
os : linux
arch : arm64
workspace :
base : /go
path : src/code.gitea.io/gitea
steps :
- name : pre-build
pull : always
image : node:10 # this step is kept at the lowest version of node that we support
commands :
- make css
- make js
- name : build-without-gcc
pull : always
image : golang:1.11 # this step is kept as the lowest version of golang that we support
environment :
GO111MODULE : on
GOPROXY : off
commands :
- go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag
- name : build-linux-386
pull : always
image : golang:1.13
environment :
GO111MODULE : on
GOPROXY : off
GOOS : linux
GOARCH : 386
commands :
- go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit
- name : check
pull : always
image : golang:1.13
commands :
- make clean
- make golangci-lint
- make revive
- make swagger-check
- make swagger-validate
- make test-vendor
environment :
GOPROXY : https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
GOSUMDB : sum.golang.org
TAGS : bindata sqlite sqlite_unlock_notify
2019-07-01 02:53:41 +03:00
---
kind : pipeline
2020-01-15 07:33:54 +03:00
name : testing-amd64
2019-07-01 02:53:41 +03:00
platform :
os : linux
arch : amd64
2016-11-06 20:32:54 +03:00
workspace :
2018-05-07 17:49:57 +03:00
base : /go
2016-11-06 20:32:54 +03:00
path : src/code.gitea.io/gitea
2019-07-01 02:53:41 +03:00
services :
- name : mysql
pull : default
image : mysql:5.7
environment :
MYSQL_ALLOW_EMPTY_PASSWORD : yes
MYSQL_DATABASE : test
- name : mysql8
pull : default
image : mysql:8.0
environment :
MYSQL_ALLOW_EMPTY_PASSWORD : yes
MYSQL_DATABASE : testgitea
- name : mssql
pull : default
2020-01-14 15:06:49 +03:00
image : mcr.microsoft.com/mssql/server:latest
2019-07-01 02:53:41 +03:00
environment :
ACCEPT_EULA : Y
MSSQL_PID : Standard
SA_PASSWORD : MwantsaSecurePassword1
- name : ldap
pull : default
image : gitea/test-openldap:latest
steps :
- name : fetch-tags
pull : default
2019-05-03 01:41:54 +03:00
image : docker:git
commands :
- git fetch --tags --force
2019-06-05 04:17:17 +03:00
when :
event :
2019-07-01 02:53:41 +03:00
exclude :
- pull_request
2017-11-01 11:48:40 +03:00
2019-07-01 02:53:41 +03:00
- name : build
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2016-11-06 20:32:54 +03:00
commands :
2019-12-05 06:41:38 +03:00
- curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
2016-11-06 20:32:54 +03:00
- make build
2017-06-01 21:07:24 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
2019-08-08 12:38:23 +03:00
GOSUMDB : sum.golang.org
2018-10-23 14:47:59 +03:00
TAGS : bindata sqlite sqlite_unlock_notify
2019-07-01 02:53:41 +03:00
- name : unit-test
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2017-09-13 15:57:55 +03:00
commands :
- make unit-test-coverage
2019-07-01 02:53:41 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2019-07-01 02:53:41 +03:00
TAGS : bindata sqlite sqlite_unlock_notify
2020-01-16 18:15:44 +03:00
GITHUB_READ_TOKEN :
from_secret : github_read_token
2017-06-01 21:07:24 +03:00
2019-07-01 02:53:41 +03:00
- name : test-mysql
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2017-09-13 15:57:55 +03:00
commands :
2019-07-01 02:53:41 +03:00
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
2018-05-07 17:49:57 +03:00
- apt-get install -y git-lfs
2019-01-28 19:18:52 +03:00
- make test-mysql-migration
2017-09-13 15:57:55 +03:00
- make integration-test-coverage
2019-07-01 02:53:41 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2019-07-01 02:53:41 +03:00
TAGS : bindata
TEST_LDAP : 1
depends_on :
- build
2016-11-06 20:32:54 +03:00
2019-07-01 02:53:41 +03:00
- name : test-mysql8
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2019-03-17 22:17:18 +03:00
commands :
2019-07-01 02:53:41 +03:00
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
2019-03-17 22:17:18 +03:00
- apt-get install -y git-lfs
2019-05-26 02:13:01 +03:00
- timeout -s ABRT 20m make test-mysql8-migration
- timeout -s ABRT 20m make test-mysql8
2016-12-05 01:55:09 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2017-03-07 16:49:24 +03:00
TAGS : bindata
2019-07-01 02:53:41 +03:00
TEST_LDAP : 1
depends_on :
- build
- name : test-mssql
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2018-12-12 04:01:41 +03:00
commands :
2019-07-01 02:53:41 +03:00
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
2018-12-12 04:01:41 +03:00
- apt-get install -y git-lfs
2019-01-28 19:18:52 +03:00
- make test-mssql-migration
2018-12-12 04:01:41 +03:00
- make test-mssql
2017-09-13 15:57:55 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2017-09-13 15:57:55 +03:00
TAGS : bindata
2019-07-01 02:53:41 +03:00
TEST_LDAP : 1
depends_on :
- build
- name : generate-coverage
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2017-09-13 15:57:55 +03:00
commands :
- make coverage
2019-07-01 02:53:41 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2019-07-01 02:53:41 +03:00
TAGS : bindata
depends_on :
- unit-test
- test-mysql
2017-09-13 15:57:55 +03:00
when :
2019-07-01 02:53:41 +03:00
branch :
- master
event :
- push
- pull_request
2017-09-13 15:57:55 +03:00
2019-07-01 02:53:41 +03:00
- name : coverage
pull : always
2017-09-13 15:57:55 +03:00
image : robertstettner/drone-codecov
2019-07-01 02:53:41 +03:00
settings :
files :
- coverage.all
environment :
CODECOV_TOKEN :
from_secret : codecov_token
depends_on :
- generate-coverage
2017-09-13 15:57:55 +03:00
when :
2019-07-01 02:53:41 +03:00
branch :
- master
event :
- push
- pull_request
2020-01-15 07:33:54 +03:00
---
kind : pipeline
name : testing-arm64
platform :
os : linux
arch : arm64
workspace :
base : /go
path : src/code.gitea.io/gitea
services :
- name : pgsql
pull : default
image : postgres:9.5
environment :
POSTGRES_DB : test
- name : ldap
pull : default
image : gitea/test-openldap:latest
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
when :
event :
exclude :
- pull_request
- name : build
pull : always
image : golang:1.13
commands :
- curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
- make build
environment :
GOPROXY : https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
GOSUMDB : sum.golang.org
TAGS : bindata sqlite sqlite_unlock_notify
- name : test-sqlite
pull : always
image : golang:1.13
commands :
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- timeout -s ABRT 20m make test-sqlite-migration
- timeout -s ABRT 20m make test-sqlite
environment :
GOPROXY : off
TAGS : bindata
depends_on :
- build
- name : test-pgsql
pull : always
image : golang:1.13
commands :
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- timeout -s ABRT 20m make test-pgsql-migration
- timeout -s ABRT 20m make test-pgsql
environment :
GOPROXY : off
TAGS : bindata
TEST_LDAP : 1
depends_on :
- build
2019-07-01 02:53:41 +03:00
---
kind : pipeline
name : translations
platform :
os : linux
arch : amd64
workspace :
base : /go
path : src/code.gitea.io/gitea
2017-09-07 20:22:15 +03:00
2019-07-01 02:53:41 +03:00
trigger :
branch :
- master
event :
- push
steps :
- name : download
pull : always
image : jonasfranz/crowdin
settings :
download : true
export_dir : options/locale/
ignore_branch : true
project_identifier : gitea
environment :
CROWDIN_KEY :
from_secret : crowdin_key
- name : update
pull : default
2019-12-27 03:52:32 +03:00
image : alpine:3.11
2019-07-01 02:53:41 +03:00
commands :
- mv ./options/locale/locale_en-US.ini ./options/
- "sed -i -e 's/=\"/=/g' -e 's/\"$$//g' ./options/locale/*.ini"
- "sed -i -e 's/\\\\\\\\\"/\"/g' ./options/locale/*.ini"
- mv ./options/locale_en-US.ini ./options/locale/
- name : push
pull : always
image : appleboy/drone-git-push
settings :
author_email : "teabot@gitea.io"
author_name : GiteaBot
commit : true
commit_message : "[skip ci] Updated translations via Crowdin"
remote : "git@github.com:go-gitea/gitea.git"
environment :
GIT_PUSH_SSH_KEY :
from_secret : git_push_ssh_key
- name : upload_translations
pull : always
image : jonasfranz/crowdin
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
name : release-master
platform :
os : linux
arch : amd64
workspace :
base : /go
path : src/code.gitea.io/gitea
trigger :
branch :
- master
- "release/*"
event :
- push
depends_on :
2020-01-15 07:33:54 +03:00
- testing-amd64
- testing-arm64
2019-07-01 02:53:41 +03:00
- translations
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
- name : static
pull : always
2019-02-14 21:20:11 +03:00
image : techknowlogick/xgo:latest
2019-07-01 02:53:41 +03:00
commands :
2019-12-15 21:06:36 +03:00
- apt update && apt -y install curl
- curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
2019-07-01 02:53:41 +03:00
- export PATH=$PATH:$GOPATH/bin
- make release
2017-03-07 16:49:24 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2018-10-23 14:47:59 +03:00
TAGS : bindata sqlite sqlite_unlock_notify
2019-07-01 02:53:41 +03:00
- name : gpg-sign
pull : always
image : plugins/gpgsign:1
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-release
pull : always
image : plugins/s3:1
settings :
acl : public-read
bucket : releases
endpoint : https://storage.gitea.io
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
pull : always
image : plugins/s3:1
settings :
acl : public-read
bucket : releases
endpoint : https://storage.gitea.io
path_style : true
source : "dist/release/*"
strip_prefix : dist/release/
target : /gitea/master
environment :
AWS_ACCESS_KEY_ID :
from_secret : aws_access_key_id
AWS_SECRET_ACCESS_KEY :
from_secret : aws_secret_access_key
when :
branch :
- master
event :
- push
---
kind : pipeline
name : release-version
platform :
os : linux
arch : amd64
workspace :
base : /go
path : src/code.gitea.io/gitea
trigger :
event :
- tag
depends_on :
2020-01-15 07:33:54 +03:00
- testing-arm64
- testing-amd64
2019-07-01 02:53:41 +03:00
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
- name : static
pull : always
image : techknowlogick/xgo:latest
2016-11-06 20:32:54 +03:00
commands :
2019-12-15 21:06:36 +03:00
- apt update && apt -y install curl
- curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
2018-05-22 19:12:10 +03:00
- export PATH=$PATH:$GOPATH/bin
2016-12-01 10:28:43 +03:00
- make release
2019-07-01 02:53:41 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2019-07-01 02:53:41 +03:00
TAGS : bindata sqlite sqlite_unlock_notify
2016-11-06 20:32:54 +03:00
2019-07-01 02:53:41 +03:00
- name : gpg-sign
pull : always
image : plugins/gpgsign:1
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
pull : always
image : plugins/s3:1
settings :
acl : public-read
bucket : releases
endpoint : https://storage.gitea.io
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
- name : github
pull : always
image : plugins/github-release:1
settings :
files :
- "dist/release/*"
environment :
GITHUB_TOKEN :
from_secret : github_token
---
kind : pipeline
name : docs
platform :
os : linux
2020-01-15 08:59:13 +03:00
arch : arm64
2019-07-01 02:53:41 +03:00
steps :
- name : build-docs
pull : always
2020-01-15 08:59:13 +03:00
image : plugins/hugo:latest
2017-11-27 00:44:32 +03:00
commands :
2020-01-15 08:59:13 +03:00
- apk add --no-cache make bash curl
2017-11-27 00:44:32 +03:00
- cd docs
- make trans-copy
- make clean
- make build
2019-07-01 02:53:41 +03:00
- name : publish-docs
pull : always
2020-01-15 08:59:13 +03:00
image : techknowlogick/drone-netlify:latest
2019-07-01 02:53:41 +03:00
settings :
path : docs/public/
site_id : d2260bae-7861-4c02-8646-8f6440b12672
environment :
NETLIFY_TOKEN :
from_secret : netlify_token
2019-07-01 10:32:50 +03:00
when :
branch :
- master
event :
- push
2016-12-24 02:00:48 +03:00
2019-07-01 02:53:41 +03:00
---
kind : pipeline
2020-01-13 13:40:10 +03:00
name : docker-linux-amd64-release
2016-11-06 20:32:54 +03:00
2019-07-01 02:53:41 +03:00
platform :
os : linux
arch : amd64
2016-11-06 20:32:54 +03:00
2019-07-01 02:53:41 +03:00
workspace :
base : /go
path : src/code.gitea.io/gitea
2017-11-01 09:14:49 +03:00
2019-07-17 17:47:34 +03:00
depends_on :
2020-01-15 07:33:54 +03:00
- testing-amd64
- testing-arm64
2019-07-17 17:47:34 +03:00
trigger :
ref :
- refs/heads/master
- "refs/tags/**"
2019-07-01 02:53:41 +03:00
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
2016-11-06 20:32:54 +03:00
2019-07-17 17:47:34 +03:00
- name : publish
2019-07-01 02:53:41 +03:00
pull : always
2019-07-17 17:47:34 +03:00
image : plugins/docker:linux-amd64
2019-07-01 02:53:41 +03:00
settings :
2019-07-17 17:47:34 +03:00
auto_tag : true
2019-07-24 20:21:12 +03:00
auto_tag_suffix : linux-amd64
2019-07-01 02:53:41 +03:00
repo : gitea/gitea
2019-08-05 00:58:16 +03:00
build_args :
- GOPROXY=off
2019-07-17 17:47:34 +03:00
password :
2019-07-01 02:53:41 +03:00
from_secret : docker_password
2019-07-17 17:47:34 +03:00
username :
2019-07-01 02:53:41 +03:00
from_secret : docker_username
when :
event :
2019-07-17 17:47:34 +03:00
exclude :
- pull_request
2019-03-17 22:17:18 +03:00
2019-07-24 20:21:12 +03:00
---
kind : pipeline
2020-01-13 13:40:10 +03:00
name : docker-linux-arm64-dry-run
2019-07-24 20:21:12 +03:00
platform :
os : linux
arch : arm64
workspace :
base : /go
path : src/code.gitea.io/gitea
depends_on :
2020-01-13 13:40:10 +03:00
- compliance
2019-07-24 20:21:12 +03:00
trigger :
ref :
- "refs/pull/**"
steps :
- name : dryrun
pull : always
image : plugins/docker:linux-arm64
settings :
dry_run : true
repo : gitea/gitea
tags : linux-arm64
2019-08-05 00:58:16 +03:00
build_args :
- GOPROXY=off
2019-07-24 20:21:12 +03:00
when :
event :
- pull_request
2020-01-13 13:40:10 +03:00
---
kind : pipeline
name : docker-linux-arm64-release
platform :
os : linux
arch : arm64
workspace :
base : /go
path : src/code.gitea.io/gitea
depends_on :
2020-01-15 07:33:54 +03:00
- testing-amd64
- testing-arm64
2020-01-13 13:40:10 +03:00
trigger :
ref :
- refs/heads/master
- "refs/tags/**"
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
2019-07-24 20:21:12 +03:00
- name : publish
pull : always
image : plugins/docker:linux-arm64
settings :
auto_tag : true
auto_tag_suffix : linux-arm64
repo : gitea/gitea
2019-08-05 00:58:16 +03:00
build_args :
- GOPROXY=off
2019-07-24 20:21:12 +03:00
password :
from_secret : docker_password
username :
from_secret : docker_username
when :
event :
exclude :
- pull_request
---
kind : pipeline
name : docker-manifest
platform :
os : linux
arch : amd64
steps :
- name : manifest
pull : always
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/heads/master
- "refs/tags/**"
depends_on :
2020-01-13 13:40:10 +03:00
- docker-linux-amd64-release
- docker-linux-arm64-release
2019-07-24 20:21:12 +03:00
2019-07-01 02:53:41 +03:00
---
kind : pipeline
2020-01-15 05:14:21 +03:00
name : notifications
2018-05-11 10:55:32 +03:00
2019-07-01 02:53:41 +03:00
platform :
os : linux
2020-01-15 05:14:21 +03:00
arch : arm64
2019-07-01 02:53:41 +03:00
2019-12-09 01:24:17 +03:00
clone :
disable : true
2020-01-15 05:14:21 +03:00
trigger :
branch :
- master
- "release/*"
event :
- push
- tag
2019-07-01 02:53:41 +03:00
status :
- success
- failure
depends_on :
2020-01-15 07:33:54 +03:00
- testing-amd64
- testing-arm64
2019-07-01 02:53:41 +03:00
- translations
- release-version
- release-master
2020-01-13 13:40:10 +03:00
- docker-linux-amd64-release
- docker-linux-arm64-release
2019-07-24 20:21:12 +03:00
- docker-manifest
2019-07-01 02:53:41 +03:00
- docs
steps :
- name : discord
pull : always
2020-01-15 05:14:21 +03:00
image : appleboy/drone-discord:1.2.4
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 :
2019-07-01 02:53:41 +03:00
from_secret : discord_webhook_id
2020-01-15 05:14:21 +03:00
webhook_token :
2019-07-01 02:53:41 +03:00
from_secret : discord_webhook_token