feat(ci): add image builds
This commit is contained in:
parent
4856a2ce2d
commit
5cf894031c
1 changed files with 91 additions and 14 deletions
105
.gitlab-ci.yml
105
.gitlab-ci.yml
|
|
@ -4,6 +4,7 @@ stages:
|
||||||
- deps
|
- deps
|
||||||
- sast
|
- sast
|
||||||
- build
|
- build
|
||||||
|
- image
|
||||||
|
|
||||||
before_script:
|
before_script:
|
||||||
- export GOPATH="$CI_PROJECT_DIR/.go"
|
- export GOPATH="$CI_PROJECT_DIR/.go"
|
||||||
|
|
@ -16,6 +17,36 @@ cache:
|
||||||
- qa/ui/node_modules/
|
- qa/ui/node_modules/
|
||||||
- frontend/ui/node_modules/
|
- frontend/ui/node_modules/
|
||||||
|
|
||||||
|
variables:
|
||||||
|
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG
|
||||||
|
DOCKER_TLS_CERTDIR: ""
|
||||||
|
DOCKER_DRIVER: overlay2
|
||||||
|
DOCKER_HOST: tcp://dockerdaemon:2375/
|
||||||
|
|
||||||
|
.build-amd64: &build-amd64
|
||||||
|
stage: build
|
||||||
|
image: golang:alpine3.18
|
||||||
|
variables:
|
||||||
|
CGO_ENABLED: 0
|
||||||
|
BUILD_OS: linux
|
||||||
|
BUILD_ARCH: amd64
|
||||||
|
|
||||||
|
.build: &push-image
|
||||||
|
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}" \
|
||||||
|
--destination "${CI_REGISTRY_IMAGE}/${CI_JOB_NAME}/${CI_COMMIT_REF_SLUG}:${CI_COMMIT_SHA}"
|
||||||
|
|
||||||
get-deps:
|
get-deps:
|
||||||
stage: deps
|
stage: deps
|
||||||
image: golang:alpine3.18
|
image: golang:alpine3.18
|
||||||
|
|
@ -74,19 +105,17 @@ vet:
|
||||||
- go vet -v -buildvcs=false srs.epita.fr/fic-server/qa
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/qa
|
||||||
- go vet -v -buildvcs=false srs.epita.fr/fic-server/settings
|
- go vet -v -buildvcs=false srs.epita.fr/fic-server/settings
|
||||||
|
|
||||||
.build-backend: &build-amd64
|
build-backend-amd64:
|
||||||
stage: build
|
|
||||||
image: golang:alpine3.18
|
|
||||||
variables:
|
|
||||||
CGO_ENABLED: 0
|
|
||||||
BUILD_OS: linux
|
|
||||||
BUILD_ARCH: amd64
|
|
||||||
|
|
||||||
build-backend:
|
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
- go build -v -buildvcs=false -o deploy/backend-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/backend
|
- go build -v -buildvcs=false -o deploy/backend-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/backend
|
||||||
|
|
||||||
|
backend-amd64:
|
||||||
|
needs: ["build-backend-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-backend
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
build-admin-amd64:
|
build-admin-amd64:
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
|
|
@ -98,16 +127,34 @@ build-admin-amd64:
|
||||||
- deploy/htdocs-admin.tar.bz2
|
- deploy/htdocs-admin.tar.bz2
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
build-evdist:
|
admin-amd64:
|
||||||
|
needs: ["build-admin-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-admin
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
|
build-evdist-amd64:
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
- go build -v -buildvcs=false -o deploy/evdist-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/evdist
|
- go build -v -buildvcs=false -o deploy/evdist-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/evdist
|
||||||
|
|
||||||
build-frontend:
|
evdist-amd64:
|
||||||
|
needs: ["build-evdist-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-evdist
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
|
build-frontend-amd64:
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
- go build -v -buildvcs=false -o deploy/frontend-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/frontend
|
- go build -v -buildvcs=false -o deploy/frontend-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/frontend
|
||||||
|
|
||||||
|
frontend-amd64:
|
||||||
|
needs: ["build-frontend-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-frontend
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
build-frontend-ui:
|
build-frontend-ui:
|
||||||
stage: build
|
stage: build
|
||||||
image: node:20-alpine3.18
|
image: node:20-alpine3.18
|
||||||
|
|
@ -122,7 +169,19 @@ build-frontend-ui:
|
||||||
- deploy/htdocs-frontend.tar.bz2
|
- deploy/htdocs-frontend.tar.bz2
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
build-dashboard:
|
frontend-ui:
|
||||||
|
needs: ["build-frontend-ui"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-frontend-ui
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
|
nginx:
|
||||||
|
needs: ["build-frontend-ui"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-nginx
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
|
build-dashboard-amd64:
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
- go build -v -buildvcs=false -o deploy/dashboard-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/dashboard
|
- go build -v -buildvcs=false -o deploy/dashboard-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/dashboard
|
||||||
|
|
@ -132,7 +191,13 @@ build-dashboard:
|
||||||
- deploy/htdocs-dashboard.tar.bz2
|
- deploy/htdocs-dashboard.tar.bz2
|
||||||
when: on_success
|
when: on_success
|
||||||
|
|
||||||
build-repochecker:
|
dashboard-amd64:
|
||||||
|
needs: ["build-dashboard-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-dashboard
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
|
build-repochecker-amd64:
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
- apk --no-cache add build-base
|
- apk --no-cache add build-base
|
||||||
|
|
@ -144,7 +209,19 @@ build-repochecker:
|
||||||
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-videos-rules-${BUILD_OS}-${BUILD_ARCH}.so srs.epita.fr/fic-server/repochecker/videos
|
- go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-videos-rules-${BUILD_OS}-${BUILD_ARCH}.so srs.epita.fr/fic-server/repochecker/videos
|
||||||
- grep "const version" repochecker/update.go | sed -r 's/^.*=\s*(\S.*)$/\1/' > deploy/repochecker.version
|
- grep "const version" repochecker/update.go | sed -r 's/^.*=\s*(\S.*)$/\1/' > deploy/repochecker.version
|
||||||
|
|
||||||
build-qa:
|
repochecker-amd64:
|
||||||
|
needs: ["build-repochecker-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-repochecker
|
||||||
|
<<: *push-image
|
||||||
|
|
||||||
|
build-qa-amd64:
|
||||||
<<: *build-amd64
|
<<: *build-amd64
|
||||||
script:
|
script:
|
||||||
- go build -v -buildvcs=false -o deploy/qa-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/qa
|
- go build -v -buildvcs=false -o deploy/qa-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/qa
|
||||||
|
|
||||||
|
qa-amd64:
|
||||||
|
needs: ["build-qa-amd64"]
|
||||||
|
variables:
|
||||||
|
DOCKERFILE: Dockerfile-qa
|
||||||
|
<<: *push-image
|
||||||
|
|
|
||||||
Reference in a new issue