@ -1,75 +1,75 @@
---
kind : pipeline
name : testing
platform:
os : linux
arch : amd64
workspace:
workspace:
base : /go
base : /go
path : src/code.gitea.io/gitea
path : src/code.gitea.io/gitea
pipeline:
services:
fetch-tags:
- 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
image : docker:git
image : docker:git
commands:
commands:
- git fetch --tags --force
- git fetch --tags --force
when:
when:
event:
event:
exclude : [ pull_request ]
exclude:
- pull_request
download_translations:
image : jonasfranz/crowdin
pull : true
secrets : [ crowdin_key ]
project_identifier : gitea
ignore_branch : true
download : true
export_dir : options/locale/
when:
event : [ push ]
branch : [ master ]
update-translations:
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/
when:
event : [ push ]
branch : [ master ]
git_push:
image : appleboy/drone-git-push
pull : true
secrets : [ git_push_ssh_key ]
remote : git@github.com:go-gitea/gitea.git
force : false
commit : true
commit_message : "[skip ci] Updated translations via Crowdin"
author_name : GiteaBot
author_email : teabot@gitea.io
when:
event : [ push ]
branch : [ master ]
pre-build:
- name : pre-build
pull : always
image : webhippie/nodejs:latest
image : webhippie/nodejs:latest
pull : true
commands:
commands:
- make css
- make css
- make js
- make js
when:
event : [ push, tag, pull_request ]
build-without-gcc:
- name : build-without-gcc
pull : always
image : golang:1.10 # this step is kept as the lowest version of golang that we support
image : golang:1.10 # this step is kept as the lowest version of golang that we support
pull : true
commands:
commands:
- go build -o gitea_no_gcc # test if build succeeds without the sqlite tag
- go build -o gitea_no_gcc # test if build succeeds without the sqlite tag
when:
event : [ push, tag, pull_request ]
build:
- name : build
pull : always
image : golang:1.12
image : golang:1.12
pull : true
environment:
TAGS : bindata sqlite sqlite_unlock_notify
commands:
commands:
- make clean
- make clean
- make generate
- make generate
@ -79,371 +79,575 @@ pipeline:
- make swagger-validate
- make swagger-validate
- make test-vendor
- make test-vendor
- make build
- make build
when:
event : [ push, tag, pull_request ]
unit-test:
image : golang:1.12
pull : true
group : test
environment:
environment:
TAGS : bindata sqlite sqlite_unlock_notify
TAGS : bindata sqlite sqlite_unlock_notify
- name : unit-test
pull : always
image : golang:1.12
commands:
commands:
- make unit-test-coverage
- make unit-test-coverage
environment:
TAGS : bindata sqlite sqlite_unlock_notify
depends_on:
- build
when:
when:
event : [ push, pull_request ]
branch:
branch : [ master ]
- master
event:
- push
- pull_request
release-test:
- name : release-test
pull : always
image : golang:1.12
image : golang:1.12
pull : true
group : test
environment:
TAGS : bindata sqlite sqlite_unlock_notify
commands:
commands:
- make test
- make test
environment:
TAGS : bindata sqlite sqlite_unlock_notify
depends_on:
- build
when:
when:
event : [ push, pull_request ]
branch:
branch : [ release/* ]
- "release/*"
event:
- push
- pull_request
tag-test:
- name : tag-test
pull : always
image : golang:1.12
image : golang:1.12
pull : true
group : test
environment:
TAGS : bindata
commands:
commands:
- make test
- make test
environment:
TAGS : bindata
depends_on:
- build
when:
when:
event : [ tag ]
event:
- tag
test-sqlite:
- name : test-sqlite
pull : always
image : golang:1.12
image : golang:1.12
pull : true
group : test
environment:
TAGS : bindata
commands:
commands:
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- apt-get install -y git-lfs
- timeout -s ABRT 20m make test-sqlite-migration
- timeout -s ABRT 20m make test-sqlite-migration
- timeout -s ABRT 20m make test-sqlite
- timeout -s ABRT 20m make test-sqlite
when:
event : [ push, tag, pull_request ]
test-mysql:
image : golang:1.12
pull : true
group : test
environment:
environment:
TAGS : bindata
TAGS : bindata
TEST_LDAP : "1"
depends_on:
- build
- name : test-mysql
pull : always
image : golang:1.12
commands:
commands:
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
- " curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- apt-get install -y git-lfs
- make test-mysql-migration
- make test-mysql-migration
- make integration-test-coverage
- make integration-test-coverage
environment:
TAGS : bindata
TEST_LDAP : 1
depends_on:
- build
when:
when:
event : [ push, pull_request ]
branch:
branch : [ master ]
- master
event:
- push
- pull_request
tag-test-mysql:
- name : tag-test-mysql
pull : always
image : golang:1.12
image : golang:1.12
pull : true
group : test
environment:
TAGS : bindata
TEST_LDAP : "1"
commands:
commands:
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- apt-get install -y git-lfs
- timeout -s ABRT 20m make test-mysql-migration
- timeout -s ABRT 20m make test-mysql-migration
- timeout -s ABRT 20m make test-mysql
- timeout -s ABRT 20m make test-mysql
environment:
TAGS : bindata
TEST_LDAP : 1
depends_on:
- build
when:
when:
event : [ tag ]
event:
- tag
test-mysql8:
- name : test-mysql8
pull : always
image : golang:1.12
image : golang:1.12
pull : true
group : test
environment:
TAGS : bindata
TEST_LDAP : "1"
commands:
commands:
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- apt-get install -y git-lfs
- timeout -s ABRT 20m make test-mysql8-migration
- timeout -s ABRT 20m make test-mysql8-migration
- timeout -s ABRT 20m make test-mysql8
- timeout -s ABRT 20m make test-mysql8
when:
event : [ push, tag, pull_request ]
test-pgsql:
image : golang:1.12
pull : true
group : test
environment:
environment:
TAGS : bindata
TAGS : bindata
TEST_LDAP : "1"
TEST_LDAP : 1
depends_on:
- build
- name : test-pgsql
pull : always
image : golang:1.12
commands:
commands:
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
- " curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- apt-get install -y git-lfs
- timeout -s ABRT 20m make test-pgsql-migration
- timeout -s ABRT 20m make test-pgsql-migration
- timeout -s ABRT 20m make test-pgsql
- timeout -s ABRT 20m make test-pgsql
when:
event : [ push, tag, pull_request ]
test-mssql:
image : golang:1.12
pull : true
group : test
environment:
environment:
TAGS : bindata
TAGS : bindata
TEST_LDAP : "1"
TEST_LDAP : 1
depends_on:
- build
- name : test-mssql
pull : always
image : golang:1.12
commands:
commands:
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
- " curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash"
- apt-get install -y git-lfs
- apt-get install -y git-lfs
- make test-mssql-migration
- make test-mssql-migration
- make test-mssql
- make test-mssql
when:
event : [ push, tag, pull_request ]
# bench-sqlite:
# image: golang:1.12
# pull: true
# group: bench
# commands:
# - make bench-sqlite
# when:
# event: [ tag ]
# bench-mysql:
# image: golang:1.12
# pull: true
# group: bench
# commands:
# - make bench-mysql
# when:
# event: [ tag ]
# bench-mssql:
# image: golang:1.12
# pull: true
# group: bench
# commands:
# - make bench-mssql
# when:
# event: [ tag ]
# bench-pgsql:
# image: golang:1.12
# pull: true
# group: bench
# commands:
# - make bench-pgsql
# when:
# event: [ tag ]
generate-coverage:
image : golang:1.12
pull : true
environment:
environment:
TAGS : bindata
TAGS : bindata
TEST_LDAP : 1
depends_on:
- build
- name : generate-coverage
pull : always
image : golang:1.12
commands:
commands:
- make coverage
- make coverage
environment:
TAGS : bindata
depends_on:
- unit-test
- test-mysql
when:
when:
event : [ push, pull_request ]
branch:
branch : [ master ]
- master
event:
- push
- pull_request
coverage:
- name : coverage
pull : always
image : robertstettner/drone-codecov
image : robertstettner/drone-codecov
secrets : [ codecov_token ]
settings:
files:
files:
- coverage.all
- coverage.all
environment:
CODECOV_TOKEN:
from_secret : codecov_token
depends_on:
- generate-coverage
when:
when:
event : [ push, pull_request ]
branch:
branch : [ master ]
- master
event:
- push
- pull_request
static:
---
image : techknowlogick/xgo:latest
kind : pipeline
pull : true
name : translations
platform:
os : linux
arch : amd64
workspace:
base : /go
path : src/code.gitea.io/gitea
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:
environment:
TAGS : bindata sqlite sqlite_unlock_notify
CROWDIN_KEY:
commands:
from_secret : crowdin_key
- export PATH=$PATH:$GOPATH/bin
- make release
when:
event : [ push, tag ]
build-docs:
- name : update
image : webhippie/hugo:latest
pull : default
pull : true
image : alpine:3.10
commands:
commands:
- cd docs
- mv ./options/locale/locale_en-US.ini ./options/
- make trans-copy
- "sed -i -e 's/=\"/=/g' -e 's/\"$$//g' ./options/locale/*.ini"
- make clean
- "sed -i -e 's/\\\\\\\\\"/\"/g' ./options/locale/*.ini"
- make build
- mv ./options/locale_en-US.ini ./options/locale/
publish-docs:
- name : push
image : lucap/drone-netlify:latest
pull : always
pull : true
image : appleboy/drone-git-push
secrets : [ netlify_token ]
settings:
site_id : d2260bae-7861-4c02-8646-8f6440b12672
author_email : "teabot@gitea.io"
path : docs/public/
author_name : GiteaBot
when:
commit : true
event : [ push ]
commit_message : "[skip ci] Updated translations via Crowdin"
branch : [ master ]
remote : "git@github.com:go-gitea/gitea.git"
environment:
GIT_PUSH_SSH_KEY:
from_secret : git_push_ssh_key
docker-dryrun:
- name : upload_translations
image : plugins/docker:18.09
pull : always
pull : true
image : jonasfranz/crowdin
repo : gitea/gitea
settings:
cache_from : gitea/gitea
files:
dry_run : true
locale_en-US.ini : options/locale/locale_en-US.ini
when:
ignore_branch : true
event : [ pull_request ]
project_identifier : gitea
environment:
CROWDIN_KEY:
from_secret : crowdin_key
release-docker:
---
image : plugins/docker:18.09
kind : pipeline
pull : true
name : release-master
secrets : [ docker_username, docker_password ]
repo : gitea/gitea
tags : [ '${DRONE_BRANCH##release/v}' ]
cache_from : gitea/gitea
when:
event : [ push ]
branch : [ release/* ]
docker:
platform:
image : plugins/docker:18.09
os : linux
secrets : [ docker_username, docker_password ]
arch : amd64
pull : true
repo : gitea/gitea
workspace:
cache_from : gitea/gitea
base : /go
default_tags : true
path : src/code.gitea.io/gitea
when:
event : [ push, tag ]
trigger:
branch:
- master
- "release/*"
event:
- push
depends_on:
- testing
- translations
steps:
- name : fetch-tags
pull : default
image : docker:git
commands:
- git fetch --tags --force
gpg-sign:
- name : static
pull : always
image : techknowlogick/xgo:latest
commands:
- export PATH=$PATH:$GOPATH/bin
- make release
environment:
TAGS : bindata sqlite sqlite_unlock_notify
- name : gpg-sign
pull : always
image : plugins/gpgsign:1
image : plugins/gpgsign:1
pull : true
settings:
secrets : [ gpgsign_key, gpgsign_passphrase ]
detach_sign : true
detach_sign : true
files:
- dist/release/*
excludes:
excludes:
- dist/release/*.sha256
- "dist/release/*.sha256"
when:
files:
event : [ push, tag ]
- "dist/release/*"
environment:
tag-release:
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
image : plugins/s3:1
pull : true
settings:
secrets : [ aws_access_key_id, aws_secret_access_key ]
bucket : releases
acl : public-read
acl : public-read
bucket : releases
endpoint : https://storage.gitea.io
endpoint : https://storage.gitea.io
path_style : true
path_style : true
source : "dist/release/*"
strip_prefix : dist/release/
strip_prefix : dist/release/
source : dist/release/*
target : "/gitea/${DRONE_BRANCH##release/v}"
target : /gitea/${DRONE_TAG##v}
environment:
when:
AWS_ACCESS_KEY_ID:
event : [ tag ]
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
release-branch-release:
- name : release
pull : always
image : plugins/s3:1
image : plugins/s3:1
pull : true
settings:
secrets : [ aws_access_key_id, aws_secret_access_key ]
bucket : releases
acl : public-read
acl : public-read
bucket : releases
endpoint : https://storage.gitea.io
endpoint : https://storage.gitea.io
path_style : true
path_style : true
source : "dist/release/*"
strip_prefix : dist/release/
strip_prefix : dist/release/
source : dist/release/*
target : /gitea/master
target : /gitea/${DRONE_BRANCH##release/v}
environment:
when:
AWS_ACCESS_KEY_ID:
event : [ push ]
from_secret : aws_access_key_id
branch : [ release/* ]
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
release:
depends_on:
- testing
- translations
steps:
- name : fetch-tags
pull : default
image : docker:git
commands:
- git fetch --tags --force
- name : static
pull : always
image : techknowlogick/xgo:latest
commands:
- export PATH=$PATH:$GOPATH/bin
- make release
environment:
TAGS : bindata sqlite sqlite_unlock_notify
- 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
image : plugins/s3:1
pull : true
settings:
secrets : [ aws_access_key_id, aws_secret_access_key ]
bucket : releases
acl : public-read
acl : public-read
bucket : releases
endpoint : https://storage.gitea.io
endpoint : https://storage.gitea.io
path_style : true
path_style : true
source : "dist/release/*"
strip_prefix : dist/release/
strip_prefix : dist/release/
source : dist/release/*
target : "/gitea/${DRONE_TAG##v}"
target : /gitea/master
environment:
when:
AWS_ACCESS_KEY_ID:
event : [ push ]
from_secret : aws_access_key_id
branch : [ master ]
AWS_SECRET_ACCESS_KEY:
from_secret : aws_secret_access_key
github:
depends_on:
- gpg-sign
- name : github
pull : always
image : plugins/github-release:1
image : plugins/github-release:1
pull : true
settings:
secrets : [ github_token ]
files:
files:
- dist/release/*
- "dist/release/*"
when:
environment:
event : [ tag ]
GITHUB_TOKEN:
from_secret : github_token
depends_on:
- gpg-sign
upload_translations:
---
image : jonasfranz/crowdin
kind : pipeline
pull : true
name : docs
secrets : [ crowdin_key ]
project_identifier : gitea
ignore_branch : true
download : false
files:
locale_en-US.ini : options/locale/locale_en-US.ini
when:
event : [ push ]
branch : [ master ]
discord:
platform:
image : appleboy/drone-discord:1.0.0
os : linux
pull : true
arch : amd64
secrets : [ discord_webhook_id, discord_webhook_token ]
when:
event : [ push, tag, pull_request ]
status : [ changed, failure ]
services:
workspace:
mysql:
base : /go
image : mysql:5.7
path : src/code.gitea.io/gitea
environment:
- MYSQL_DATABASE=test
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
when:
event : [ push, tag, pull_request ]
mysql8:
trigger:
image : mysql:8.0
branch:
- master
event:
- push
steps:
- name : build-docs
pull : always
image : webhippie/hugo:latest
commands:
- cd docs
- make trans-copy
- make clean
- make build
- name : publish-docs
pull : always
image : lucap/drone-netlify:latest
settings:
path : docs/public/
site_id : d2260bae-7861-4c02-8646-8f6440b12672
environment:
environment:
- MYSQL_DATABASE=test
NETLIFY_TOKEN:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
from_secret : netlify_token
- MYSQL_DATABASE=testgitea
---
kind : pipeline
name : docker
platform:
os : linux
arch : amd64
workspace:
base : /go
path : src/code.gitea.io/gitea
steps:
- name : fetch-tags
pull : default
image : docker:git
commands:
- git fetch --tags --force
- name : dryrun
pull : always
image : plugins/docker:18.09
settings:
cache_from : gitea/gitea
dry_run : true
repo : gitea/gitea
when:
when:
event : [ push, tag, pull_request ]
event:
- pull_request
pgsql:
- name : release
image : postgres:9.5
pull : always
image : plugins/docker:18.09
settings:
cache_from : gitea/gitea
repo : gitea/gitea
tags:
- "${DRONE_BRANCH##release/v}"
environment:
environment:
- POSTGRES_DB=test
DOCKER_PASSWORD:
when:
from_secret : docker_password
event : [ push, tag, pull_request ]
DOCKER_USERNAME:
from_secret : docker_username
depends_on:
- dryrun
when:
branch:
- "release/*"
event:
- push
mssql:
- name : latest
image : microsoft/mssql-server-linux:latest
pull : always
image : plugins/docker:18.09
settings:
cache_from : gitea/gitea
default_tags : true
repo : gitea/gitea
environment:
environment:
- ACCEPT_EULA=Y
DOCKER_PASSWORD:
- SA_PASSWORD=MwantsaSecurePassword1
from_secret : docker_password
- MSSQL_PID=Standard
DOCKER_USERNAME:
when:
from_secret : docker_username
event : [ push, tag, pull_request ]
depends_on:
- dryrun
when:
branch:
- master
event:
- push
- tag
ldap:
---
image : gitea/test-openldap:latest
kind : pipeline
when:
name : notify
event : [ push, tag, pull_request ]
platform:
os : linux
arch : amd64
workspace:
base : /go
path : src/code.gitea.io/gitea
when:
status:
- success
- failure
depends_on:
- testing
- translations
- release-version
- release-master
- docker
- 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