mirror of
1
Fork 0

chore: update drone format to 1.0 (#6602)

* chore: update drone format to 1.0

* Converted old drone config

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Moved translations to seperate pipeline

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Split the steps in multiple pipelines and add dependencies

Signed-off-by: konrad <konrad@kola-entertainments.de>

* format

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed step depenednecies

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed discord notify

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Exclude translations and docs pipelines from prs

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed exclude prs

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed exclude prs

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Moved releases to seperate pipeline

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Re-trigger drone

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Disable release step

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed depending step

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Adopted dependencies

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Changed pipeline conditions

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Replaced pipeline conditions with triggers

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed coverage step

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Import changes from #7331

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Add comment for lowest go version

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Exclude fetch-tags from prs

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Re-added comment about no tags

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Removed unneeded conditions

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Moved release version and release latest to different pipelines

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Fixed depending pipeline

Signed-off-by: konrad <konrad@kola-entertainments.de>

* Removed the conditions for all services

Signed-off-by: konrad <konrad@kola-entertainments.de>
This commit is contained in:
Bo-Yi Wu 2019-07-01 07:53:41 +08:00 committed by techknowlogick
parent 0dca17b760
commit e5a4d784e8
1 changed files with 543 additions and 339 deletions

View File

@ -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: - name: pre-build
image: jonasfranz/crowdin pull: always
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:
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
when:
event: [ push, pull_request ]
branch: [ master ]
release-test:
image: golang:1.12
pull: true
group: test
environment: environment:
TAGS: bindata sqlite sqlite_unlock_notify TAGS: bindata sqlite sqlite_unlock_notify
depends_on:
- build
when:
branch:
- master
event:
- push
- pull_request
- name: release-test
pull: always
image: golang:1.12
commands: commands:
- make test - make test
when:
event: [ push, pull_request ]
branch: [ release/* ]
tag-test:
image: golang:1.12
pull: true
group: test
environment: environment:
TAGS: bindata TAGS: bindata sqlite sqlite_unlock_notify
depends_on:
- build
when:
branch:
- "release/*"
event:
- push
- pull_request
- name: tag-test
pull: always
image: golang:1.12
commands: commands:
- make test - make test
when:
event: [ tag ]
test-sqlite:
image: golang:1.12
pull: true
group: test
environment: environment:
TAGS: bindata TAGS: bindata
depends_on:
- build
when:
event:
- tag
- name: test-sqlite
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-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
when:
event: [ push, pull_request ]
branch: [ master ]
tag-test-mysql:
image: golang:1.12
pull: true
group: test
environment: environment:
TAGS: bindata TAGS: bindata
TEST_LDAP: "1" TEST_LDAP: 1
depends_on:
- build
when:
branch:
- master
event:
- push
- pull_request
- name: tag-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
- 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
when:
event: [ tag ]
test-mysql8:
image: golang:1.12
pull: true
group: test
environment: environment:
TAGS: bindata TAGS: bindata
TEST_LDAP: "1" TEST_LDAP: 1
depends_on:
- build
when:
event:
- tag
- name: test-mysql8
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-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
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: environment:
TAGS: bindata sqlite sqlite_unlock_notify TAGS: bindata
depends_on:
- unit-test
- test-mysql
when:
branch:
- master
event:
- push
- pull_request
- name: coverage
pull: always
image: robertstettner/drone-codecov
settings:
files:
- coverage.all
environment:
CODECOV_TOKEN:
from_secret: codecov_token
depends_on:
- generate-coverage
when:
branch:
- master
event:
- push
- pull_request
---
kind: pipeline
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:
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
image: techknowlogick/xgo:latest
commands: commands:
- export PATH=$PATH:$GOPATH/bin - export PATH=$PATH:$GOPATH/bin
- make release - make release
when: environment:
event: [ push, tag ] TAGS: bindata sqlite sqlite_unlock_notify
build-docs: - 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
- 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
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
trigger:
branch:
- master
event:
- push
steps:
- name: build-docs
pull: always
image: webhippie/hugo:latest image: webhippie/hugo:latest
pull: true
commands: commands:
- cd docs - cd docs
- make trans-copy - make trans-copy
- make clean - make clean
- make build - make build
publish-docs: - name: publish-docs
pull: always
image: lucap/drone-netlify:latest image: lucap/drone-netlify:latest
pull: true settings:
secrets: [ netlify_token ] path: docs/public/
site_id: d2260bae-7861-4c02-8646-8f6440b12672 site_id: d2260bae-7861-4c02-8646-8f6440b12672
path: docs/public/ environment:
when: NETLIFY_TOKEN:
event: [ push ] from_secret: netlify_token
branch: [ master ]
docker-dryrun: ---
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 image: plugins/docker:18.09
pull: true settings:
repo: gitea/gitea cache_from: gitea/gitea
cache_from: gitea/gitea dry_run: true
dry_run: true repo: gitea/gitea
when: when:
event: [ pull_request ] event:
- pull_request
release-docker: - name: release
pull: always
image: plugins/docker:18.09 image: plugins/docker:18.09
pull: true settings:
secrets: [ docker_username, docker_password ] cache_from: gitea/gitea
repo: gitea/gitea repo: gitea/gitea
tags: [ '${DRONE_BRANCH##release/v}' ] tags:
cache_from: gitea/gitea - "${DRONE_BRANCH##release/v}"
environment:
DOCKER_PASSWORD:
from_secret: docker_password
DOCKER_USERNAME:
from_secret: docker_username
depends_on:
- dryrun
when: when:
event: [ push ] branch:
branch: [ release/* ] - "release/*"
event:
- push
docker: - name: latest
pull: always
image: plugins/docker:18.09 image: plugins/docker:18.09
secrets: [ docker_username, docker_password ] settings:
pull: true cache_from: gitea/gitea
repo: gitea/gitea default_tags: true
cache_from: gitea/gitea repo: gitea/gitea
default_tags: true environment:
DOCKER_PASSWORD:
from_secret: docker_password
DOCKER_USERNAME:
from_secret: docker_username
depends_on:
- dryrun
when: when:
event: [ push, tag ] branch:
- master
event:
- push
- tag
gpg-sign: ---
image: plugins/gpgsign:1 kind: pipeline
pull: true name: notify
secrets: [ gpgsign_key, gpgsign_passphrase ]
detach_sign: true
files:
- dist/release/*
excludes:
- dist/release/*.sha256
when:
event: [ push, tag ]
tag-release: platform:
image: plugins/s3:1 os: linux
pull: true arch: amd64
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: workspace:
image: plugins/s3:1 base: /go
pull: true path: src/code.gitea.io/gitea
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: when:
image: plugins/s3:1 status:
pull: true - success
secrets: [ aws_access_key_id, aws_secret_access_key ] - failure
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: depends_on:
image: plugins/github-release:1 - testing
pull: true - translations
secrets: [ github_token ] - release-version
files: - release-master
- dist/release/* - docker
when: - docs
event: [ tag ]
upload_translations: steps:
image: jonasfranz/crowdin - name: discord
pull: true pull: always
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 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: environment:
- MYSQL_DATABASE=test DISCORD_WEBHOOK_ID:
- MYSQL_ALLOW_EMPTY_PASSWORD=yes from_secret: discord_webhook_id
when: DISCORD_WEBHOOK_TOKEN:
event: [ push, tag, pull_request ] from_secret: discord_webhook_token
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 ]