123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773 |
- ---
- 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: node:10 # this step is kept at the lowest version of node that we support
- commands:
- - make css
- - make js
-
- - name: build-without-gcc
- pull: always
- image: golang:1.11 # this step is kept as the lowest version of golang that we support
- environment:
- GO111MODULE: on
- GOPROXY: off
- commands:
- - curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
- - go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag
-
- - name: build-linux-386
- pull: always
- image: golang:1.13
- environment:
- GO111MODULE: on
- GOPROXY: off
- GOOS: linux
- GOARCH: 386
- commands:
- - curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
- - go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit
-
- - name: build
- pull: always
- image: golang:1.13
- commands:
- - curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
- - make clean
- - make golangci-lint
- - make revive
- - make swagger-check
- - make swagger-validate
- - make test-vendor
- - make build
- 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: unit-test
- pull: always
- image: golang:1.13
- commands:
- - make unit-test-coverage
- environment:
- GOPROXY: off
- TAGS: bindata sqlite sqlite_unlock_notify
- depends_on:
- - build
- when:
- branch:
- - master
- event:
- - push
- - pull_request
-
- - name: release-test
- pull: always
- image: golang:1.13
- commands:
- - make test
- environment:
- GOPROXY: off
- 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.13
- commands:
- - make test
- environment:
- GOPROXY: off
- TAGS: bindata
- depends_on:
- - tag-pre-condition
- when:
- event:
- - tag
-
- - name: test-sqlite
- pull: always
- image: golang:1.13
- 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:
- GOPROXY: off
- TAGS: bindata
- depends_on:
- - build
-
- - name: test-mysql
- pull: always
- image: golang:1.13
- 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:
- GOPROXY: off
- TAGS: bindata
- TEST_LDAP: 1
- depends_on:
- - build
- when:
- branch:
- - master
- event:
- - push
- - pull_request
-
- - name: tag-test-mysql
- pull: always
- image: golang:1.13
- 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:
- GOPROXY: off
- TAGS: bindata
- TEST_LDAP: 1
- depends_on:
- - build
- when:
- event:
- - tag
-
- - name: test-mysql8
- pull: always
- image: golang:1.13
- 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:
- GOPROXY: off
- TAGS: bindata
- TEST_LDAP: 1
- depends_on:
- - build
-
- - name: test-pgsql
- pull: always
- image: golang:1.13
- 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:
- GOPROXY: off
- TAGS: bindata
- TEST_LDAP: 1
- depends_on:
- - build
-
- - name: test-mssql
- pull: always
- image: golang:1.13
- 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:
- GOPROXY: off
- TAGS: bindata
- TEST_LDAP: 1
- depends_on:
- - build
-
- - name: generate-coverage
- pull: always
- image: golang:1.13
- commands:
- - make coverage
- environment:
- GOPROXY: off
- 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.11
- 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:
- - apt update && apt -y install curl
- - curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
- - export PATH=$PATH:$GOPATH/bin
- - make release
- environment:
- GOPROXY: off
- 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-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
- 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
- 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:latest
- commands:
- - apt update && apt -y install curl
- - curl -sL https://deb.nodesource.com/setup_12.x | bash - && apt -y install nodejs
- - export PATH=$PATH:$GOPATH/bin
- - make release
- environment:
- GOPROXY: off
- 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
- 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: 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
- build_args:
- - GOPROXY=off
- 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
- 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
-
- 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
- build_args:
- - GOPROXY=off
- 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
- build_args:
- - GOPROXY=off
- 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
-
- clone:
- disable: true
-
- 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
|