641 lines
17 KiB
YAML
641 lines
17 KiB
YAML
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: build-amd64
|
|
|
|
platform:
|
|
os: linux
|
|
arch: amd64
|
|
|
|
workspace:
|
|
base: /go
|
|
path: src/srs.epita.fr/fic-server
|
|
|
|
steps:
|
|
- name: get deps
|
|
image: golang:alpine
|
|
commands:
|
|
- apk --no-cache add git
|
|
- go get -v -d srs.epita.fr/fic-server/admin
|
|
- go get -v -d srs.epita.fr/fic-server/backend
|
|
- go get -v -d srs.epita.fr/fic-server/evdist
|
|
- go get -v -d srs.epita.fr/fic-server/frontend
|
|
- go get -v -d srs.epita.fr/fic-server/dashboard
|
|
- go get -v -d srs.epita.fr/fic-server/repochecker
|
|
- go get -v -d srs.epita.fr/fic-server/qa
|
|
- mkdir deploy
|
|
|
|
- name: vet
|
|
image: golang:alpine
|
|
commands:
|
|
- apk --no-cache add build-base
|
|
- go vet -v -buildvcs=false -tags gitgo srs.epita.fr/fic-server/admin
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/admin
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/backend
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/evdist
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/frontend
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/dashboard
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/repochecker
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/qa
|
|
|
|
- name: build admin
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -tags gitgo -o deploy/admin-gitgo-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/admin
|
|
- go build -v -buildvcs=false -o deploy/admin-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/admin
|
|
- tar chjf deploy/htdocs-admin.tar.bz2 htdocs-admin
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build backend
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/backend-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/backend
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build evdist
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/evdist-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/evdist
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build frontend
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/frontend-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/frontend
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build frontend ui
|
|
image: node:16-alpine3.15
|
|
commands:
|
|
- apk --no-cache add python2 build-base
|
|
- cd frontend/ui
|
|
- npm install --network-timeout=100000
|
|
- sed -i 's!@popperjs/core/dist/esm/popper!@popperjs/core!' node_modules/sveltestrap/src/*.js node_modules/sveltestrap/src/*.svelte
|
|
- npm run build
|
|
- tar chjf ../../deploy/htdocs-frontend.tar.bz2 build
|
|
|
|
- name: build dashboard
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/dashboard-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/dashboard
|
|
- tar chjf deploy/htdocs-dashboard.tar.bz2 htdocs-dashboard
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build repochecker
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -buildvcs=false --tags checkupdate -v -o deploy/repochecker-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/repochecker
|
|
- grep "const version" repochecker/update.go | sed -r 's/^.*=\s*(\S.*)$/\1/' > deploy/repochecker.version
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build repochecker for macOS
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -buildvcs=false --tags checkupdate -v -o deploy/repochecker-darwin-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/repochecker
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
GOOS: darwin
|
|
GOARCH: amd64
|
|
|
|
- name: build qa
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/qa-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/qa
|
|
- tar chjf deploy/htdocs-qa.tar.bz2 htdocs-qa
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: deploy
|
|
image: appleboy/drone-scp
|
|
settings:
|
|
tar_tmp_path: /tmp/
|
|
host: srs.nemunai.re
|
|
target: /var/www/nemunai.re/srs/fic-binaries/${DRONE_BRANCH//\//-}
|
|
source: deploy/*
|
|
strip_components: 1
|
|
username:
|
|
from_secret: ssh_username
|
|
key:
|
|
from_secret: deploy_key
|
|
port:
|
|
from_secret: ssh_port
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: docker admin
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-admin
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-admin
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker backend
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-backend
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-backend
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker evdist
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-evdist
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-evdist
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker frontend
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-frontend
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-frontend
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker frontend nginx
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-nginx
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-nginx
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker frontend ui
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-frontend-ui
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-frontend-ui
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker dashboard
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-dashboard
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-dashboard
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker qa
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-qa
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-qa
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker repochecker
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-repochecker
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-repochecker
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker remote-scores-sync-zqds
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-remote-scores-sync-zqds
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-remote-scores-sync-zqds
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
#- name: docker remote-challenge-sync-airbus
|
|
# image: plugins/docker
|
|
# settings:
|
|
# username:
|
|
# from_secret: docker_username
|
|
# password:
|
|
# from_secret: docker_password
|
|
# repo: nemunaire/fic-remote-challenge-sync-airbus
|
|
# auto_tag: true
|
|
# auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
# dockerfile: Dockerfile-remote-challenge-sync-airbus
|
|
# when:
|
|
# branch:
|
|
# - master
|
|
|
|
trigger:
|
|
event:
|
|
- cron
|
|
- push
|
|
- tag
|
|
|
|
---
|
|
kind: pipeline
|
|
type: docker
|
|
name: build-arm64
|
|
|
|
platform:
|
|
os: linux
|
|
arch: arm64
|
|
|
|
workspace:
|
|
base: /go
|
|
path: src/srs.epita.fr/fic-server
|
|
|
|
steps:
|
|
- name: get deps
|
|
image: golang:alpine
|
|
commands:
|
|
- apk --no-cache add git
|
|
- go get -v -d srs.epita.fr/fic-server/admin
|
|
- go get -v -d srs.epita.fr/fic-server/backend
|
|
- go get -v -d srs.epita.fr/fic-server/evdist
|
|
- go get -v -d srs.epita.fr/fic-server/frontend
|
|
- go get -v -d srs.epita.fr/fic-server/dashboard
|
|
|
|
- name: build admin
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/admin-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/admin
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build backend
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/backend-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/backend
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build evdist
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/evdist-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/evdist
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build frontend
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/frontend-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/frontend
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build frontend ui
|
|
image: node:16-alpine3.15
|
|
commands:
|
|
- apk --no-cache add python2 build-base
|
|
- cd frontend/ui
|
|
- npm install --network-timeout=100000
|
|
- sed -i 's!@popperjs/core/dist/esm/popper!@popperjs/core!' node_modules/sveltestrap/src/*.js node_modules/sveltestrap/src/*.svelte
|
|
- npm run build
|
|
|
|
- name: build dashboard
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/dashboard-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/dashboard
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build repochecker
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -buildvcs=false --tags checkupdate -v -o deploy/repochecker-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/repochecker
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: build repochecker for macOS
|
|
image: golang:alpine
|
|
commands:
|
|
- apk --no-cache add build-base
|
|
- go build -buildvcs=false --tags checkupdate -v -o deploy/repochecker-darwin-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/repochecker
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
GOOS: darwin
|
|
GOARCH: arm64
|
|
|
|
- name: build qa
|
|
image: golang:alpine
|
|
commands:
|
|
- go build -v -buildvcs=false -o deploy/qa-${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH} srs.epita.fr/fic-server/qa
|
|
environment:
|
|
CGO_ENABLED: 0
|
|
|
|
- name: deploy
|
|
image: appleboy/drone-scp
|
|
settings:
|
|
tar_tmp_path: /tmp/
|
|
host: srs.nemunai.re
|
|
target: /var/www/nemunai.re/srs/fic-binaries/${DRONE_BRANCH//\//-}
|
|
source: deploy/*
|
|
strip_components: 1
|
|
username:
|
|
from_secret: ssh_username
|
|
key:
|
|
from_secret: deploy_key
|
|
port:
|
|
from_secret: ssh_port
|
|
when:
|
|
event:
|
|
exclude:
|
|
- pull_request
|
|
|
|
- name: docker admin
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-admin
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-admin
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker backend
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-backend
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-backend
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker evdist
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-evdist
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-evdist
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker frontend
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-frontend
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-frontend
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker frontend nginx
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-nginx
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-nginx
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker dashboard
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-dashboard
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-dashboard
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker qa
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-qa
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-qa
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
- name: docker repochecker
|
|
image: plugins/docker
|
|
settings:
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
repo: nemunaire/fic-repochecker
|
|
auto_tag: true
|
|
auto_tag_suffix: ${DRONE_STAGE_OS}-${DRONE_STAGE_ARCH}
|
|
dockerfile: Dockerfile-repochecker
|
|
when:
|
|
branch:
|
|
- master
|
|
|
|
trigger:
|
|
event:
|
|
- cron
|
|
- push
|
|
- tag
|
|
|
|
---
|
|
kind: pipeline
|
|
name: docker-manifest
|
|
steps:
|
|
- name: publish admin
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-admin.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish backend
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-backend.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish evdist
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-evdist.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish frontend
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-frontend.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish frontend nginx
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-nginx.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish dashboard
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-dashboard.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish repochecker
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-repochecker.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
- name: publish qa
|
|
image: plugins/manifest
|
|
settings:
|
|
auto_tag: true
|
|
ignore_missing: true
|
|
spec: .drone-manifest-fic-qa.yml
|
|
username:
|
|
from_secret: docker_username
|
|
password:
|
|
from_secret: docker_password
|
|
|
|
trigger:
|
|
event:
|
|
- push
|
|
- tag
|
|
|
|
depends_on:
|
|
- build-amd64
|
|
- build-arm64
|