Платформа ЦРНП "Мирокод" для разработки проектов
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.
824 lines
16 KiB
824 lines
16 KiB
--- |
|
kind: pipeline |
|
name: compliance |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
steps: |
|
- name: deps-frontend |
|
pull: always |
|
image: node:14 |
|
commands: |
|
- make node_modules |
|
|
|
- name: lint-frontend |
|
pull: always |
|
image: node:14 |
|
commands: |
|
- make lint-frontend |
|
depends_on: [deps-frontend] |
|
|
|
- name: lint-backend |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- make lint-backend |
|
environment: |
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |
|
GOSUMDB: sum.golang.org |
|
TAGS: bindata sqlite sqlite_unlock_notify |
|
|
|
- name: checks-frontend |
|
pull: always |
|
image: node:14 |
|
commands: |
|
- make checks-frontend |
|
depends_on: [deps-frontend] |
|
|
|
- name: checks-backend |
|
pull: always |
|
image: golang:1.14 |
|
commands: |
|
- make checks-backend |
|
depends_on: [lint-backend] |
|
|
|
- name: build-frontend |
|
pull: always |
|
image: node:14 |
|
commands: |
|
- make frontend |
|
depends_on: [lint-frontend] |
|
|
|
- name: build-backend-no-gcc |
|
pull: always |
|
image: golang:1.13 # this step is kept as the lowest version of golang that we support |
|
environment: |
|
GO111MODULE: on |
|
GOPROXY: off |
|
commands: |
|
- go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag |
|
depends_on: [checks-backend] |
|
|
|
- name: build-backend-arm64 |
|
pull: always |
|
image: golang:1.15 |
|
environment: |
|
GO111MODULE: on |
|
GOPROXY: off |
|
GOOS: linux |
|
GOARCH: arm64 |
|
TAGS: bindata |
|
commands: |
|
- make backend # test cross compile |
|
- rm ./gitea # clean |
|
depends_on: [checks-backend] |
|
|
|
- name: build-backend-386 |
|
pull: always |
|
image: golang:1.15 |
|
environment: |
|
GO111MODULE: on |
|
GOPROXY: off |
|
GOOS: linux |
|
GOARCH: 386 |
|
commands: |
|
- go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit |
|
depends_on: [checks-backend] |
|
|
|
--- |
|
kind: pipeline |
|
name: testing-amd64 |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
depends_on: |
|
- compliance |
|
|
|
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: mssql |
|
pull: default |
|
image: mcr.microsoft.com/mssql/server:latest |
|
environment: |
|
ACCEPT_EULA: Y |
|
MSSQL_PID: Standard |
|
SA_PASSWORD: MwantsaSecurePassword1 |
|
|
|
- name: ldap |
|
pull: default |
|
image: gitea/test-openldap:latest |
|
|
|
- name: elasticsearch |
|
pull: default |
|
environment: |
|
discovery.type: single-node |
|
image: elasticsearch:7.5.0 |
|
|
|
- name: minio |
|
image: minio/minio:RELEASE.2020-10-09T22-55-05Z |
|
commands: |
|
- minio server /data |
|
environment: |
|
MINIO_ACCESS_KEY: 123456 |
|
MINIO_SECRET_KEY: 12345678 |
|
|
|
steps: |
|
- name: fetch-tags |
|
pull: default |
|
image: docker:git |
|
commands: |
|
- git fetch --tags --force |
|
when: |
|
event: |
|
exclude: |
|
- pull_request |
|
|
|
- name: build |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- make backend |
|
environment: |
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |
|
GOSUMDB: sum.golang.org |
|
TAGS: bindata sqlite sqlite_unlock_notify |
|
|
|
- name: tag-pre-condition |
|
pull: always |
|
image: drone/git |
|
commands: |
|
- git update-ref refs/heads/tag_test ${DRONE_COMMIT_SHA} |
|
|
|
- name: unit-test |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- make unit-test-coverage test-check |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata sqlite sqlite_unlock_notify |
|
GITHUB_READ_TOKEN: |
|
from_secret: github_read_token |
|
|
|
- name: test-mysql |
|
pull: always |
|
image: golang:1.15 |
|
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 integration-test-coverage |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
USE_REPO_TEST_DIR: 1 |
|
TEST_INDEXER_CODE_ES_URL: "http://elastic:changeme@elasticsearch:9200" |
|
depends_on: |
|
- build |
|
|
|
- name: test-mysql8 |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |
|
- apt-get install -y git-lfs |
|
- timeout -s ABRT 40m make test-mysql8-migration test-mysql8 |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
USE_REPO_TEST_DIR: 1 |
|
depends_on: |
|
- build |
|
|
|
- name: test-mssql |
|
pull: always |
|
image: golang:1.15 |
|
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 test-mssql |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
USE_REPO_TEST_DIR: 1 |
|
depends_on: |
|
- build |
|
|
|
- name: generate-coverage |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- make coverage |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata |
|
depends_on: |
|
- unit-test |
|
- test-mysql |
|
when: |
|
branch: |
|
- master |
|
event: |
|
- push |
|
- pull_request |
|
|
|
- name: coverage-codecov |
|
pull: always |
|
image: plugins/codecov |
|
settings: |
|
files: |
|
- coverage.all |
|
token: |
|
from_secret: codecov_token |
|
depends_on: |
|
- generate-coverage |
|
when: |
|
branch: |
|
- master |
|
event: |
|
- push |
|
- pull_request |
|
|
|
--- |
|
kind: pipeline |
|
name: testing-arm64 |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
depends_on: |
|
- compliance |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
services: |
|
- name: pgsql |
|
pull: default |
|
image: postgres:9.5 |
|
environment: |
|
POSTGRES_DB: test |
|
POSTGRES_PASSWORD: postgres |
|
|
|
- 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: build |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- make backend |
|
environment: |
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |
|
GOSUMDB: sum.golang.org |
|
TAGS: bindata sqlite sqlite_unlock_notify |
|
|
|
- name: test-sqlite |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |
|
- apt-get install -y git-lfs |
|
- timeout -s ABRT 40m make test-sqlite-migration test-sqlite |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata |
|
USE_REPO_TEST_DIR: 1 |
|
depends_on: |
|
- build |
|
|
|
- name: test-pgsql |
|
pull: always |
|
image: golang:1.15 |
|
commands: |
|
- "curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | bash" |
|
- apt-get install -y git-lfs |
|
- timeout -s ABRT 40m make test-pgsql-migration test-pgsql |
|
environment: |
|
GOPROXY: off |
|
TAGS: bindata |
|
TEST_LDAP: 1 |
|
USE_REPO_TEST_DIR: 1 |
|
depends_on: |
|
- build |
|
|
|
--- |
|
kind: pipeline |
|
name: translations |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
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.12 |
|
commands: |
|
- ./build/update-locales.sh |
|
|
|
- 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-latest |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
trigger: |
|
branch: |
|
- master |
|
- "release/*" |
|
event: |
|
- push |
|
|
|
depends_on: |
|
- testing-amd64 |
|
- testing-arm64 |
|
- translations |
|
|
|
steps: |
|
- name: fetch-tags |
|
pull: default |
|
image: docker:git |
|
commands: |
|
- git fetch --tags --force |
|
|
|
- name: static |
|
pull: always |
|
image: techknowlogick/xgo:go-1.15.x |
|
commands: |
|
- curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs |
|
- export PATH=$PATH:$GOPATH/bin |
|
- make release |
|
environment: |
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |
|
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 |
|
|
|
- name: release-branch |
|
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 |
|
when: |
|
branch: |
|
- "release/*" |
|
event: |
|
- push |
|
|
|
- name: release-master |
|
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 |
|
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-arm64 |
|
- testing-amd64 |
|
|
|
steps: |
|
- name: fetch-tags |
|
pull: default |
|
image: docker:git |
|
commands: |
|
- git fetch --tags --force |
|
|
|
- name: static |
|
pull: always |
|
image: techknowlogick/xgo:go-1.15.x |
|
commands: |
|
- curl -sL https://deb.nodesource.com/setup_14.x | bash - && apt -y install nodejs |
|
- export PATH=$PATH:$GOPATH/bin |
|
- make release |
|
environment: |
|
GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |
|
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 |
|
|
|
- name: release-tag |
|
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 |
|
|
|
- name: github |
|
pull: always |
|
image: plugins/github-release:1 |
|
settings: |
|
files: |
|
- "dist/release/*" |
|
environment: |
|
GITHUB_TOKEN: |
|
from_secret: github_token |
|
|
|
--- |
|
kind: pipeline |
|
name: docs |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
depends_on: |
|
- compliance |
|
|
|
steps: |
|
- name: build-docs |
|
pull: always |
|
image: plugins/hugo:latest |
|
commands: |
|
- apk add --no-cache make bash curl |
|
- cd docs |
|
- make trans-copy clean build |
|
|
|
- name: publish-docs |
|
pull: always |
|
image: techknowlogick/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-release |
|
|
|
platform: |
|
os: linux |
|
arch: amd64 |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
depends_on: |
|
- testing-amd64 |
|
- testing-arm64 |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/master |
|
- "refs/tags/**" |
|
|
|
steps: |
|
- name: fetch-tags |
|
pull: default |
|
image: docker:git |
|
commands: |
|
- git fetch --tags --force |
|
|
|
- name: publish |
|
pull: always |
|
image: plugins/docker:linux-amd64 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: linux-amd64 |
|
repo: gitea/gitea |
|
build_args: |
|
- GOPROXY=off |
|
password: |
|
from_secret: docker_password |
|
username: |
|
from_secret: docker_username |
|
when: |
|
event: |
|
exclude: |
|
- pull_request |
|
--- |
|
kind: pipeline |
|
name: docker-linux-arm64-dry-run |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
depends_on: |
|
- compliance |
|
|
|
trigger: |
|
ref: |
|
- "refs/pull/**" |
|
|
|
steps: |
|
- name: dryrun |
|
pull: always |
|
image: plugins/docker:linux-arm64 |
|
settings: |
|
dry_run: true |
|
repo: gitea/gitea |
|
tags: linux-arm64 |
|
build_args: |
|
- GOPROXY=off |
|
environment: |
|
PLUGIN_MIRROR: |
|
from_secret: plugin_mirror |
|
when: |
|
event: |
|
- pull_request |
|
|
|
--- |
|
kind: pipeline |
|
name: docker-linux-arm64-release |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
workspace: |
|
base: /go |
|
path: src/code.gitea.io/gitea |
|
|
|
depends_on: |
|
- testing-amd64 |
|
- testing-arm64 |
|
|
|
trigger: |
|
ref: |
|
- refs/heads/master |
|
- "refs/tags/**" |
|
steps: |
|
- name: fetch-tags |
|
pull: default |
|
image: docker:git |
|
commands: |
|
- git fetch --tags --force |
|
|
|
- name: publish |
|
pull: always |
|
image: plugins/docker:linux-arm64 |
|
settings: |
|
auto_tag: true |
|
auto_tag_suffix: linux-arm64 |
|
repo: gitea/gitea |
|
build_args: |
|
- GOPROXY=off |
|
password: |
|
from_secret: docker_password |
|
username: |
|
from_secret: docker_username |
|
environment: |
|
PLUGIN_MIRROR: |
|
from_secret: plugin_mirror |
|
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-release |
|
- docker-linux-arm64-release |
|
|
|
--- |
|
kind: pipeline |
|
name: notifications |
|
|
|
platform: |
|
os: linux |
|
arch: arm64 |
|
|
|
clone: |
|
disable: true |
|
|
|
trigger: |
|
branch: |
|
- master |
|
- "release/*" |
|
event: |
|
- push |
|
- tag |
|
status: |
|
- success |
|
- failure |
|
|
|
depends_on: |
|
- testing-amd64 |
|
- testing-arm64 |
|
- translations |
|
- release-version |
|
- release-latest |
|
- docker-linux-amd64-release |
|
- docker-linux-arm64-release |
|
- docker-manifest |
|
- docs |
|
|
|
steps: |
|
- name: discord |
|
pull: always |
|
image: appleboy/drone-discord:1.2.4 |
|
settings: |
|
message: "{{#success build.status}} ✅ Build #{{build.number}} of `{{repo.name}}` succeeded.\n\n📝 Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n\n🌐 {{ build.link }} {{else}} ❌ Build #{{build.number}} of `{{repo.name}}` failed.\n\n📝 Commit by {{commit.author}} on `{{commit.branch}}`:\n``` {{commit.message}} ```\n\n🌐 {{ build.link }} {{/success}}\n" |
|
webhook_id: |
|
from_secret: discord_webhook_id |
|
webhook_token: |
|
from_secret: discord_webhook_token
|
|
|