2023-06-09 21:16:05 +00:00
|
|
|
---
|
|
|
|
|
|
|
|
stages:
|
|
|
|
- deps
|
2023-06-10 00:13:23 +00:00
|
|
|
- build
|
2023-07-13 23:04:04 +00:00
|
|
|
- sast
|
2023-06-10 01:36:49 +00:00
|
|
|
- image
|
2023-06-09 21:16:05 +00:00
|
|
|
|
|
|
|
before_script:
|
|
|
|
- export GOPATH="$CI_PROJECT_DIR/.go"
|
|
|
|
- mkdir -p .go
|
|
|
|
- mkdir -p deploy
|
|
|
|
|
|
|
|
cache:
|
|
|
|
paths:
|
|
|
|
- .go/pkg/mod/
|
|
|
|
- qa/ui/node_modules/
|
|
|
|
- frontend/ui/node_modules/
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
.build: &build-image
|
2023-06-10 01:36:49 +00:00
|
|
|
stage: build
|
|
|
|
image: golang:alpine3.18
|
|
|
|
variables:
|
|
|
|
CGO_ENABLED: 0
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
.push: &push-image
|
2023-06-10 01:36:49 +00:00
|
|
|
stage: image
|
|
|
|
interruptible: true
|
|
|
|
image:
|
|
|
|
name: gcr.io/kaniko-project/executor:v1.9.0-debug
|
|
|
|
entrypoint: [""]
|
|
|
|
before_script:
|
|
|
|
- mkdir -p /kaniko/.docker
|
|
|
|
- echo "{\"auths\":{\"${CI_REGISTRY}\":{\"username\":\"${CI_REGISTRY_USER}\",\"password\":\"${CI_REGISTRY_PASSWORD}\"}}}" > /kaniko/.docker/config.json
|
|
|
|
script:
|
|
|
|
- |
|
|
|
|
/kaniko/executor \
|
|
|
|
--context . \
|
|
|
|
--dockerfile "${DOCKERFILE}" \
|
2023-06-11 20:18:00 +00:00
|
|
|
--destination "${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_SLUG}/${CI_JOB_NAME}:${CI_COMMIT_SHA}" \
|
|
|
|
--destination "${CI_REGISTRY_IMAGE}/${CI_COMMIT_REF_SLUG}/${CI_JOB_NAME}:latest"
|
2023-07-13 23:41:25 +00:00
|
|
|
only:
|
|
|
|
- master
|
2023-06-10 01:36:49 +00:00
|
|
|
|
2023-06-09 21:16:05 +00:00
|
|
|
get-deps:
|
|
|
|
stage: deps
|
|
|
|
image: golang:alpine3.18
|
|
|
|
script:
|
|
|
|
- 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/repochecker/epita
|
|
|
|
- go get -v -d srs.epita.fr/fic-server/repochecker/file-inspector
|
|
|
|
- go get -v -d srs.epita.fr/fic-server/repochecker/grammalecte
|
|
|
|
- go get -v -d srs.epita.fr/fic-server/repochecker/pcap-inspector
|
|
|
|
- go get -v -d srs.epita.fr/fic-server/repochecker/videos
|
|
|
|
- go get -v -d srs.epita.fr/fic-server/qa
|
|
|
|
|
|
|
|
build-qa-ui:
|
2023-07-13 23:04:04 +00:00
|
|
|
stage: build
|
2023-06-09 21:16:05 +00:00
|
|
|
image: node:20-alpine3.18
|
|
|
|
script:
|
|
|
|
- cd qa/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
|
|
|
|
artifacts:
|
|
|
|
paths:
|
|
|
|
- qa/ui/build/
|
|
|
|
when: on_success
|
|
|
|
|
|
|
|
vet:
|
|
|
|
stage: sast
|
2023-07-13 23:04:04 +00:00
|
|
|
needs: ["build-qa-ui"]
|
2023-06-09 21:16:05 +00:00
|
|
|
dependencies:
|
|
|
|
- build-qa-ui
|
|
|
|
image: golang:alpine3.18
|
|
|
|
script:
|
|
|
|
- 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/libfic
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/admin/sync
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/admin/pki
|
|
|
|
- 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/repochecker/epita
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/repochecker/file-inspector
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/repochecker/grammalecte
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/repochecker/pcap-inspector
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/repochecker/videos
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/qa
|
|
|
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/settings
|
2023-06-10 00:13:23 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-backend:
|
|
|
|
<<: *build-image
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -v -buildvcs=false -o deploy/backend srs.epita.fr/fic-server/backend
|
2023-06-10 00:13:23 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
backend:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-backend
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-admin:
|
|
|
|
<<: *build-image
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -v -buildvcs=false -tags gitgo -o deploy/admin-gitgo srs.epita.fr/fic-server/admin
|
|
|
|
- go build -v -buildvcs=false -o deploy/admin srs.epita.fr/fic-server/admin
|
2023-06-10 00:13:23 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
admin:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-admin
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-evdist:
|
|
|
|
<<: *build-image
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -v -buildvcs=false -o deploy/evdist srs.epita.fr/fic-server/evdist
|
2023-06-10 00:13:23 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
evdist:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-evdist
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-frontend:
|
|
|
|
<<: *build-image
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -v -buildvcs=false -o deploy/frontend srs.epita.fr/fic-server/frontend
|
2023-06-10 00:13:23 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
frontend:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-frontend
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-06-10 00:13:23 +00:00
|
|
|
build-frontend-ui:
|
|
|
|
stage: build
|
|
|
|
image: node:20-alpine3.18
|
|
|
|
script:
|
|
|
|
- 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
|
|
|
|
|
2023-06-10 01:36:49 +00:00
|
|
|
frontend-ui:
|
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-frontend-ui
|
|
|
|
<<: *push-image
|
|
|
|
|
|
|
|
nginx:
|
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-nginx
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-dashboard:
|
|
|
|
<<: *build-image
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -v -buildvcs=false -o deploy/dashboard srs.epita.fr/fic-server/dashboard
|
2023-06-10 00:13:23 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
dashboard:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-dashboard
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-repochecker:
|
|
|
|
<<: *build-image
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
|
|
|
- apk --no-cache add build-base
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -buildvcs=false --tags checkupdate -v -o deploy/repochecker srs.epita.fr/fic-server/repochecker
|
|
|
|
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-epita-rules.so srs.epita.fr/fic-server/repochecker/epita
|
|
|
|
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-file-inspector-rules.so srs.epita.fr/fic-server/repochecker/file-inspector
|
|
|
|
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-grammalecte-rules.so srs.epita.fr/fic-server/repochecker/grammalecte
|
|
|
|
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-pcap-inspector-rules.so srs.epita.fr/fic-server/repochecker/pcap-inspector
|
|
|
|
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-videos-rules.so srs.epita.fr/fic-server/repochecker/videos
|
2023-06-10 00:13:23 +00:00
|
|
|
- grep "const version" repochecker/update.go | sed -r 's/^.*=\s*(\S.*)$/\1/' > deploy/repochecker.version
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
repochecker:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-repochecker
|
|
|
|
<<: *push-image
|
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
build-qa:
|
|
|
|
<<: *build-image
|
|
|
|
needs: ["build-qa-ui"]
|
|
|
|
dependencies:
|
|
|
|
- build-qa-ui
|
2023-06-10 00:13:23 +00:00
|
|
|
script:
|
2023-07-13 23:04:04 +00:00
|
|
|
- go build -v -buildvcs=false -o deploy/qa srs.epita.fr/fic-server/qa
|
2023-06-10 01:36:49 +00:00
|
|
|
|
2023-07-13 23:04:04 +00:00
|
|
|
qa:
|
2023-06-10 01:36:49 +00:00
|
|
|
variables:
|
|
|
|
DOCKERFILE: Dockerfile-qa
|
|
|
|
<<: *push-image
|