Платформа ЦРНП "Мирокод" для разработки проектов
https://git.mirocod.ru
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
744 lines
14 KiB
744 lines
14 KiB
--- |
|
kind: pipeline |
|
name: testing |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
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 |
|
image: docker:git |
|
commands: |
|
- git fetch --tags --force |
|
when: |
|
event: |
|
exclude: |
|
- pull_request |
|
|
|
- name: pre-build |
|
pull: always |
|
image: webhippie/nodejs:latest |
|
commands: |
|
- make css |
|
- make js |
|
|
|
- name: build-without-gcc |
|
pull: always |
|
image: golang:1.10 # this step is kept as the lowest version of golang that we support |
|
commands: |
|
- go build -o gitea_no_gcc # test if build succeeds without the sqlite tag |
|
|
|
- name: build |
|
pull: always |
|
image: golang:1.12 |
|
commands: |
|
- make clean |
|
- make generate |
|
- make golangci-lint |
|
- make revive |
|
- make swagger-check |
|
- make swagger-validate |
|
- make test-vendor |
|
- make build |
|
environment: |
|
TAGS: bindata sqlite sqlite_unlock_notify |
|
|
|
- name: unit-test |
|
pull: always |
|
image: golang:1.12 |
|
commands: |
|
- make unit-test-coverage |
|
environment: |
|
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: |
|
- make test |
|
environment: |
|
TAGS: bindata sqlite sqlite_unlock_notify |
|
depends_on: |
|
- build |
|
when: |
|
branch: |
|
- "release/*" |
|
event: |
|
- push |
|
- pull_request |
|
|
|
- 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 |
|
|
|
- name: tag-test |
|
pull: always |
|
image: golang:1.12 |
|
commands: |
|
- make test |
|
environment: |
|
TAGS: bindata |
|
depends_on: |
|
- tag-pre-condition |
|
when: |
|
event: |
|
- tag |
|
|
|
- name: test-sqlite |
|
pull: always |
|
image: golang:1.12 |
|
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: |
|
TAGS: bindata |
|
depends_on: |
|
- build |
|
|
|
- name: test-mysql |
|
pull: always |
|
image: golang:1.12 |
|
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 |
|
environment: |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
depends_on: |
|
- build |
|
when: |
|
branch: |
|
- master |
|
event: |
|
- push |
|
- pull_request |
|
|
|
- name: tag-test-mysql |
|
pull: always |
|
image: golang:1.12 |
|
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 |
|
environment: |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
depends_on: |
|
- build |
|
when: |
|
event: |
|
- tag |
|
|
|
- name: test-mysql8 |
|
pull: always |
|
image: golang:1.12 |
|
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 |
|
environment: |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
depends_on: |
|
- build |
|
|
|
- name: test-pgsql |
|
pull: always |
|
image: golang:1.12 |
|
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: |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
depends_on: |
|
- build |
|
|
|
- name: test-mssql |
|
pull: always |
|
image: golang:1.12 |
|
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 |
|
environment: |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
depends_on: |
|
- build |
|
|
|
- name: generate-coverage |
|
pull: always |
|
image: golang:1.12 |
|
commands: |
|
- make coverage |
|
environment: |
|
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:go-1.12.x |
|
commands: |
|
- export PATH=$PATH:$GOPATH/bin |
|
- make generate |
|
- 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-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:go-1.12.x |
|
commands: |
|
- export PATH=$PATH:$GOPATH/bin |
|
- make generate |
|
- 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 |
|
|
|
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: |
|
NETLIFY_TOKEN: |
|
from_secret: netlify_token |
|
when: |
|
branch: |
|
- master |
|
event: |
|
- push |
|
|
|
--- |
|
kind: pipeline |
|
name: docker-linux-amd64 |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
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-amd64 |
|
settings: |
|
dry_run: true |
|
repo: gitea/gitea |
|
tags: linux-amd64 |
|
when: |
|
event: |
|
- pull_request |
|
|
|
- name: publish |
|
pull: always |
|
image: plugins/docker:linux-amd64 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: linux-amd64 |
|
repo: gitea/gitea |
|
password: |
|
from_secret: docker_password |
|
username: |
|
from_secret: docker_username |
|
when: |
|
event: |
|
exclude: |
|
- pull_request |
|
|
|
|
|
|
|
--- |
|
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 |
|
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 |
|
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 |
|
|
|
--- |
|
kind: pipeline |
|
name: notify |
|
|
|
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-linux-amd64 |
|
- docker-linux-arm64 |
|
- docker-manifest |
|
- 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
|
|
|