2019-07-01 02:53:41 +03:00
---
kind : pipeline
name : testing
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 : pgsql
pull : default
image : postgres:9.5
environment :
POSTGRES_DB : test
- name : mssql
pull : default
image : microsoft/mssql-server-linux:latest
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 : pre-build
pull : always
2017-09-25 00:49:32 +03:00
image : webhippie/nodejs:latest
commands :
2019-05-16 08:57:47 +03:00
- make css
- make js
2019-11-16 17:15:07 +03:00
- bash -c '[ -z "$(git status --porcelain public/js public/css)" ] || (echo "Generated js/css files do not match" && git status --porcelain public/js public/css && exit 1)'
2017-11-01 11:48:40 +03:00
2019-07-01 02:53:41 +03:00
- name : build-without-gcc
pull : always
2019-07-07 06:00:41 +03:00
image : golang:1.11 # this step is kept as the lowest version of golang that we support
environment :
GO111MODULE : on
2019-08-05 00:58:16 +03:00
GOPROXY : off
2017-12-11 12:42:13 +03:00
commands :
2019-07-07 06:00:41 +03:00
- go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag
2017-12-11 12:42:13 +03:00
2019-08-01 21:00:12 +03:00
- name : build-linux-386
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2019-08-01 21:00:12 +03:00
environment :
GO111MODULE : on
2019-08-05 00:58:16 +03:00
GOPROXY : off
2019-08-01 21:00:12 +03:00
GOOS : linux
GOARCH : 386
commands :
- go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit
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 :
- make clean
2016-12-05 18:39:45 +03:00
- make generate
2019-06-12 22:41:28 +03:00
- make golangci-lint
- make revive
2018-04-20 12:13:50 +03:00
- make swagger-check
2018-08-12 03:08:17 +03:00
- make swagger-validate
2017-04-24 17:31:46 +03:00
- make test-vendor
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
depends_on :
- build
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 : release-test
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2017-12-09 13:17:40 +03:00
commands :
- make test
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
depends_on :
- build
2017-12-09 13:17:40 +03:00
when :
2019-07-01 02:53:41 +03:00
branch :
- "release/*"
event :
- push
- pull_request
2017-12-09 13:17:40 +03:00
2019-07-09 05:24:52 +03:00
- name : tag-pre-condition
pull : always
image : alpine/git
commands :
- git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA}
depends_on :
- build
when :
event :
- tag
2019-07-01 02:53:41 +03:00
- name : tag-test
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2017-06-01 21:07:24 +03:00
commands :
2017-09-12 08:51:12 +03:00
- make test
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 :
2019-07-09 05:24:52 +03:00
- tag-pre-condition
2017-06-01 21:07:24 +03:00
when :
2019-07-01 02:53:41 +03:00
event :
- tag
2017-06-01 21:07:24 +03:00
2019-07-01 02:53:41 +03:00
- name : test-sqlite
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2018-10-29 04:54:13 +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-10-29 04:54:13 +03:00
- apt-get install -y git-lfs
2019-05-26 02:13:01 +03:00
- timeout -s ABRT 20m make test-sqlite-migration
- timeout -s ABRT 20m make test-sqlite
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
depends_on :
- build
- 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
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 : tag-test-mysql
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2016-11-06 20:32:54 +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-05-26 02:13:01 +03:00
- timeout -s ABRT 20m make test-mysql-migration
- timeout -s ABRT 20m make test-mysql
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
when :
2019-07-01 02:53:41 +03:00
event :
- tag
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-pgsql
pull : always
2019-09-12 14:58:32 +03:00
image : golang:1.13
2016-11-06 20:32:54 +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-05-26 02:13:01 +03:00
- timeout -s ABRT 20m make test-pgsql-migration
- timeout -s ABRT 20m make test-pgsql
2018-12-12 04:01:41 +03:00
environment :
2019-08-05 00:58:16 +03:00
GOPROXY : off
2018-12-12 04:01:41 +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
---
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
image : alpine:3.10
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 :
- testing
- 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 :
- export PATH=$PATH:$GOPATH/bin
2019-07-01 10:32:50 +03:00
- make generate
2019-07-01 02:53:41 +03:00
- 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
depends_on :
- static
- 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
depends_on :
- gpg-sign
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
depends_on :
- gpg-sign
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 :
- testing
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 :
2018-05-22 19:12:10 +03:00
- export PATH=$PATH:$GOPATH/bin
2019-07-01 10:32:50 +03:00
- make generate
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
depends_on :
- static
- 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
depends_on :
- gpg-sign
- name : github
pull : always
image : plugins/github-release:1
settings :
files :
- "dist/release/*"
environment :
GITHUB_TOKEN :
from_secret : github_token
depends_on :
- gpg-sign
---
kind : pipeline
name : docs
platform :
os : linux
arch : amd64
workspace :
base : /go
path : src/code.gitea.io/gitea
steps :
- name : build-docs
pull : always
2017-11-27 00:44:32 +03:00
image : webhippie/hugo:latest
commands :
- cd docs
- make trans-copy
- make clean
- make build
2019-07-01 02:53:41 +03:00
- name : publish-docs
pull : always
2018-07-11 17:43:33 +03:00
image : lucap/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
2019-07-24 20:21:12 +03:00
name : docker-linux-amd64
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 :
- testing
trigger :
ref :
- refs/heads/master
- "refs/tags/**"
- "refs/pull/**"
2019-07-01 02:53:41 +03:00
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
2019-07-01 10:32:50 +03:00
when :
event :
exclude :
- pull_request
2017-09-23 19:08:42 +03:00
2019-07-01 02:53:41 +03:00
- name : dryrun
pull : always
2019-07-17 17:47:34 +03:00
image : plugins/docker:linux-amd64
2019-07-01 02:53:41 +03:00
settings :
dry_run : true
repo : gitea/gitea
2019-07-24 20:21:12 +03:00
tags : linux-amd64
2019-08-05 00:58:16 +03:00
build_args :
- GOPROXY=off
2017-06-15 05:47:42 +03:00
when :
2019-07-01 02:53:41 +03:00
event :
- pull_request
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
name : docker-linux-arm64
platform :
os : linux
arch : arm64
workspace :
base : /go
path : src/code.gitea.io/gitea
depends_on :
- testing
trigger :
ref :
- refs/heads/master
- "refs/tags/**"
- "refs/pull/**"
steps :
- name : fetch-tags
pull : default
image : docker:git
commands :
- git fetch --tags --force
when :
event :
exclude :
- pull_request
- 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
- 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 :
- docker-linux-amd64
- docker-linux-arm64
2019-07-01 02:53:41 +03:00
---
kind : pipeline
name : notify
2018-05-11 10:55:32 +03:00
2019-07-01 02:53:41 +03:00
platform :
os : linux
arch : amd64
2018-12-12 04:01:41 +03:00
2019-07-01 02:53:41 +03:00
workspace :
base : /go
path : src/code.gitea.io/gitea
when :
status :
- success
- failure
depends_on :
- testing
- translations
- release-version
- release-master
2019-07-24 20:21:12 +03:00
- docker-linux-amd64
- docker-linux-arm64
- docker-manifest
2019-07-01 02:53:41 +03:00
- docs
steps :
- name : discord
pull : always
image : appleboy/drone-discord:1.0.0
environment :
DISCORD_WEBHOOK_ID :
from_secret : discord_webhook_id
DISCORD_WEBHOOK_TOKEN :
from_secret : discord_webhook_token