--- stages: - deps - sast - build 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/ 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: stage: deps 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 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 .build-backend: &build-amd64 stage: build image: golang:alpine3.18 variables: CGO_ENABLED: 0 BUILD_OS: linux BUILD_ARCH: amd64 build-backend: <<: *build-amd64 script: - go build -v -buildvcs=false -o deploy/backend-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/backend build-admin-amd64: <<: *build-amd64 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 build-evdist: <<: *build-amd64 script: - go build -v -buildvcs=false -o deploy/evdist-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/evdist build-frontend: <<: *build-amd64 script: - go build -v -buildvcs=false -o deploy/frontend-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/frontend 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 - tar chjf ../../deploy/htdocs-frontend.tar.bz2 build artifacts: paths: - deploy/htdocs-frontend.tar.bz2 when: on_success build-dashboard: <<: *build-amd64 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 build-repochecker: <<: *build-amd64 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 - grep "const version" repochecker/update.go | sed -r 's/^.*=\s*(\S.*)$/\1/' > deploy/repochecker.version build-qa: <<: *build-amd64 script: - go build -v -buildvcs=false -o deploy/qa-${BUILD_OS}-${BUILD_ARCH} srs.epita.fr/fic-server/qa