diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 8bb910d5..21220fac 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -2,8 +2,8 @@ stages: - deps - - sast - build + - sast - image before_script: @@ -17,15 +17,13 @@ cache: - qa/ui/node_modules/ - frontend/ui/node_modules/ -.build-amd64: &build-amd64 +.build: &build-image stage: build image: golang:alpine3.18 variables: CGO_ENABLED: 0 - BUILD_OS: linux - BUILD_ARCH: amd64 -.build: &push-image +.push: &push-image stage: image interruptible: true image: @@ -61,22 +59,21 @@ get-deps: - go get -v -d srs.epita.fr/fic-server/qa build-qa-ui: - stage: deps + stage: build 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 - - tar chjf ../../deploy/htdocs-qa.tar.bz2 build artifacts: paths: - qa/ui/build/ - - deploy/htdocs-qa.tar.bz2 when: on_success vet: stage: sast + needs: ["build-qa-ui"] dependencies: - build-qa-ui image: golang:alpine3.18 @@ -100,52 +97,47 @@ vet: - go vet -v -buildvcs=false srs.epita.fr/fic-server/qa - go vet -v -buildvcs=false srs.epita.fr/fic-server/settings -build-backend-amd64: - <<: *build-amd64 +build-backend: + <<: *build-image 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 srs.epita.fr/fic-server/backend -backend-amd64: - needs: ["build-backend-amd64"] +backend: + needs: ["build-backend"] variables: DOCKERFILE: Dockerfile-backend <<: *push-image -build-admin-amd64: - <<: *build-amd64 +build-admin: + <<: *build-image script: - - go build -v -buildvcs=false -tags gitgo -o deploy/admin-gitgo-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/admin - - go build -v -buildvcs=false -o deploy/admin-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/admin - - tar chjf deploy/htdocs-admin.tar.bz2 htdocs-admin - artifacts: - paths: - - deploy/htdocs-admin.tar.bz2 - when: on_success + - 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 -admin-amd64: - needs: ["build-admin-amd64"] +admin: + needs: ["build-admin"] variables: DOCKERFILE: Dockerfile-admin <<: *push-image -build-evdist-amd64: - <<: *build-amd64 +build-evdist: + <<: *build-image 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 srs.epita.fr/fic-server/evdist -evdist-amd64: - needs: ["build-evdist-amd64"] +evdist: + needs: ["build-evdist"] variables: DOCKERFILE: Dockerfile-evdist <<: *push-image -build-frontend-amd64: - <<: *build-amd64 +build-frontend: + <<: *build-image 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 srs.epita.fr/fic-server/frontend -frontend-amd64: - needs: ["build-frontend-amd64"] +frontend: + needs: ["build-frontend"] variables: DOCKERFILE: Dockerfile-frontend <<: *push-image @@ -158,11 +150,6 @@ build-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 - artifacts: - paths: - - deploy/htdocs-frontend.tar.bz2 - when: on_success frontend-ui: needs: ["build-frontend-ui"] @@ -176,47 +163,45 @@ nginx: DOCKERFILE: Dockerfile-nginx <<: *push-image -build-dashboard-amd64: - <<: *build-amd64 +build-dashboard: + <<: *build-image script: - - go build -v -buildvcs=false -o deploy/dashboard-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/dashboard - - tar chjf deploy/htdocs-dashboard.tar.bz2 htdocs-dashboard - artifacts: - paths: - - deploy/htdocs-dashboard.tar.bz2 - when: on_success + - go build -v -buildvcs=false -o deploy/dashboard srs.epita.fr/fic-server/dashboard -dashboard-amd64: - needs: ["build-dashboard-amd64"] +dashboard: + needs: ["build-dashboard"] variables: DOCKERFILE: Dockerfile-dashboard <<: *push-image -build-repochecker-amd64: - <<: *build-amd64 +build-repochecker: + <<: *build-image script: - apk --no-cache add build-base - - go build -buildvcs=false --tags checkupdate -v -o deploy/repochecker-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/repochecker - - go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-epita-rules-${BUILD_OS}-${BUILD_ARCH}.so srs.epita.fr/fic-server/repochecker/epita - - go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-file-inspector-rules-${BUILD_OS}-${BUILD_ARCH}.so srs.epita.fr/fic-server/repochecker/file-inspector - - go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-grammalecte-rules-${BUILD_OS}-${BUILD_ARCH}.so srs.epita.fr/fic-server/repochecker/grammalecte - - go build -buildvcs=false -buildmode=plugin -v -o deploy/repochecker-pcap-inspector-rules-${BUILD_OS}-${BUILD_ARCH}.so srs.epita.fr/fic-server/repochecker/pcap-inspector - - 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 --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 - grep "const version" repochecker/update.go | sed -r 's/^.*=\s*(\S.*)$/\1/' > deploy/repochecker.version -repochecker-amd64: - needs: ["build-repochecker-amd64"] +repochecker: + needs: ["build-repochecker"] variables: DOCKERFILE: Dockerfile-repochecker <<: *push-image -build-qa-amd64: - <<: *build-amd64 +build-qa: + <<: *build-image + needs: ["build-qa-ui"] + dependencies: + - build-qa-ui 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 srs.epita.fr/fic-server/qa -qa-amd64: - needs: ["build-qa-amd64"] +qa: + needs: ["build-qa"] variables: DOCKERFILE: Dockerfile-qa <<: *push-image