a71cabbd53
* add 'npm' and 'npm-update' make targets and lockfile - `make npm` installs and updates node_modules, triggered automatically on `make css` and `make js` as it completes reasonably fast and ensures consistent modules. - `make npm-update` updates all dependencies to their latest version, regenerates `node_modules` from scratch and updates `package-lock.json`. It uses npm modules `updates` written by yours truly to find the latest version of each dependency. * add suggested make dependencies * remove package-lock.json during npm-update * regenerate package-lock.json
450 lines
9.9 KiB
YAML
450 lines
9.9 KiB
YAML
workspace:
|
|
base: /go
|
|
path: src/code.gitea.io/gitea
|
|
|
|
pipeline:
|
|
fetch-tags:
|
|
image: docker:git
|
|
commands:
|
|
- git fetch --tags --force
|
|
when:
|
|
event:
|
|
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.7
|
|
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:
|
|
image: webhippie/nodejs:latest
|
|
pull: true
|
|
commands:
|
|
- make css
|
|
- make js
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
build-without-gcc:
|
|
image: golang:1.10 # this step is kept as the lowest version of golang that we support
|
|
pull: true
|
|
commands:
|
|
- go build -o gitea_no_gcc # test if build succeeds without the sqlite tag
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
build:
|
|
image: golang:1.12
|
|
pull: true
|
|
environment:
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
commands:
|
|
- make clean
|
|
- make generate
|
|
- make golangci-lint
|
|
- make revive
|
|
- make swagger-check
|
|
- make swagger-validate
|
|
- make test-vendor
|
|
- make build
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
unit-test:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
commands:
|
|
- make unit-test-coverage
|
|
when:
|
|
event: [ push, pull_request ]
|
|
branch: [ master ]
|
|
|
|
release-test:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
commands:
|
|
- make test
|
|
when:
|
|
event: [ push, pull_request ]
|
|
branch: [ release/* ]
|
|
|
|
tag-test:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
commands:
|
|
- make test
|
|
when:
|
|
event: [ tag ]
|
|
|
|
test-sqlite:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
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
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
test-mysql:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
TEST_LDAP: "1"
|
|
commands:
|
|
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
|
|
- apt-get install -y git-lfs
|
|
- make test-mysql-migration
|
|
- make integration-test-coverage
|
|
when:
|
|
event: [ push, pull_request ]
|
|
branch: [ master ]
|
|
|
|
tag-test-mysql:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
TEST_LDAP: "1"
|
|
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-mysql-migration
|
|
- timeout -s ABRT 20m make test-mysql
|
|
when:
|
|
event: [ tag ]
|
|
|
|
test-mysql8:
|
|
image: golang:1.11
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
TEST_LDAP: "1"
|
|
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-mysql8-migration
|
|
- timeout -s ABRT 20m make test-mysql8
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
test-pgsql:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
TEST_LDAP: "1"
|
|
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
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
test-mssql:
|
|
image: golang:1.12
|
|
pull: true
|
|
group: test
|
|
environment:
|
|
TAGS: bindata
|
|
TEST_LDAP: "1"
|
|
commands:
|
|
- curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash
|
|
- apt-get install -y git-lfs
|
|
- make test-mssql-migration
|
|
- 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:
|
|
TAGS: bindata
|
|
commands:
|
|
- make coverage
|
|
when:
|
|
event: [ push, pull_request ]
|
|
branch: [ master ]
|
|
|
|
coverage:
|
|
image: robertstettner/drone-codecov
|
|
secrets: [ codecov_token ]
|
|
files:
|
|
- coverage.all
|
|
when:
|
|
event: [ push, pull_request ]
|
|
branch: [ master ]
|
|
|
|
static:
|
|
image: techknowlogick/xgo:latest
|
|
pull: true
|
|
environment:
|
|
TAGS: bindata sqlite sqlite_unlock_notify
|
|
commands:
|
|
- export PATH=$PATH:$GOPATH/bin
|
|
- make release
|
|
when:
|
|
event: [ push, tag ]
|
|
|
|
build-docs:
|
|
image: webhippie/hugo:latest
|
|
pull: true
|
|
commands:
|
|
- cd docs
|
|
- make trans-copy
|
|
- make clean
|
|
- make build
|
|
|
|
publish-docs:
|
|
image: lucap/drone-netlify:latest
|
|
pull: true
|
|
secrets: [ netlify_token ]
|
|
site_id: d2260bae-7861-4c02-8646-8f6440b12672
|
|
path: docs/public/
|
|
when:
|
|
event: [ push ]
|
|
branch: [ master ]
|
|
|
|
docker-dryrun:
|
|
image: plugins/docker:17.12
|
|
pull: true
|
|
repo: gitea/gitea
|
|
cache_from: gitea/gitea
|
|
dry_run: true
|
|
when:
|
|
event: [ pull_request ]
|
|
|
|
release-docker:
|
|
image: plugins/docker:17.12
|
|
pull: true
|
|
secrets: [ docker_username, docker_password ]
|
|
repo: gitea/gitea
|
|
tags: [ '${DRONE_BRANCH##release/v}' ]
|
|
cache_from: gitea/gitea
|
|
when:
|
|
event: [ push ]
|
|
branch: [ release/* ]
|
|
|
|
docker:
|
|
image: plugins/docker:17.12
|
|
secrets: [ docker_username, docker_password ]
|
|
pull: true
|
|
repo: gitea/gitea
|
|
cache_from: gitea/gitea
|
|
default_tags: true
|
|
when:
|
|
event: [ push, tag ]
|
|
|
|
gpg-sign:
|
|
image: plugins/gpgsign:1
|
|
pull: true
|
|
secrets: [ gpgsign_key, gpgsign_passphrase ]
|
|
detach_sign: true
|
|
files:
|
|
- dist/release/*
|
|
excludes:
|
|
- dist/release/*.sha256
|
|
when:
|
|
event: [ push, tag ]
|
|
|
|
tag-release:
|
|
image: plugins/s3:1
|
|
pull: true
|
|
secrets: [ aws_access_key_id, aws_secret_access_key ]
|
|
bucket: releases
|
|
acl: public-read
|
|
endpoint: https://storage.gitea.io
|
|
path_style: true
|
|
strip_prefix: dist/release/
|
|
source: dist/release/*
|
|
target: /gitea/${DRONE_TAG##v}
|
|
when:
|
|
event: [ tag ]
|
|
|
|
release-branch-release:
|
|
image: plugins/s3:1
|
|
pull: true
|
|
secrets: [ aws_access_key_id, aws_secret_access_key ]
|
|
bucket: releases
|
|
acl: public-read
|
|
endpoint: https://storage.gitea.io
|
|
path_style: true
|
|
strip_prefix: dist/release/
|
|
source: dist/release/*
|
|
target: /gitea/${DRONE_BRANCH##release/v}
|
|
when:
|
|
event: [ push ]
|
|
branch: [ release/* ]
|
|
|
|
release:
|
|
image: plugins/s3:1
|
|
pull: true
|
|
secrets: [ aws_access_key_id, aws_secret_access_key ]
|
|
bucket: releases
|
|
acl: public-read
|
|
endpoint: https://storage.gitea.io
|
|
path_style: true
|
|
strip_prefix: dist/release/
|
|
source: dist/release/*
|
|
target: /gitea/master
|
|
when:
|
|
event: [ push ]
|
|
branch: [ master ]
|
|
|
|
github:
|
|
image: plugins/github-release:1
|
|
pull: true
|
|
secrets: [ github_token ]
|
|
files:
|
|
- dist/release/*
|
|
when:
|
|
event: [ tag ]
|
|
|
|
upload_translations:
|
|
image: jonasfranz/crowdin
|
|
pull: true
|
|
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:
|
|
image: appleboy/drone-discord:1.0.0
|
|
pull: true
|
|
secrets: [ discord_webhook_id, discord_webhook_token ]
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
status: [ changed, failure ]
|
|
|
|
services:
|
|
mysql:
|
|
image: mysql:5.7
|
|
environment:
|
|
- MYSQL_DATABASE=test
|
|
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
mysql8:
|
|
image: mysql:8.0
|
|
environment:
|
|
- MYSQL_DATABASE=test
|
|
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
|
|
- MYSQL_DATABASE=testgitea
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
pgsql:
|
|
image: postgres:9.5
|
|
environment:
|
|
- POSTGRES_DB=test
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
mssql:
|
|
image: microsoft/mssql-server-linux:latest
|
|
environment:
|
|
- ACCEPT_EULA=Y
|
|
- SA_PASSWORD=MwantsaSecurePassword1
|
|
- MSSQL_PID=Standard
|
|
when:
|
|
event: [ push, tag, pull_request ]
|
|
|
|
ldap:
|
|
image: gitea/test-openldap:latest
|
|
when:
|
|
event: [ push, tag, pull_request ]
|