Loading .dockerignore +2 −1 Original line number Diff line number Diff line Loading @@ -9,3 +9,4 @@ Dockerfile .gitignore .vscode **/.env* .gitlab-ci.yml No newline at end of file .eslintrc.json 0 → 100644 +9 −0 Original line number Diff line number Diff line { "root": true, "ignorePatterns": ["node_modules", "packages/**/dist"], "plugins": ["simple-import-sort"], "rules": { "simple-import-sort/imports": "error", "simple-import-sort/exports": "error" } } .gitlab-ci.yml 0 → 100644 +75 −0 Original line number Diff line number Diff line stages: - lint - build - test - deploy include: - component: sc07.dev/sc07/ci/wiki@main inputs: wiki_token: $CI_TOKEN eslint client: stage: lint rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - packages/client/src/**/* image: node:23-alpine script: - npm i --include=dev - npm -w packages/client run lint artifacts: reports: codequality: packages/client/gl-codequality.json eslint server: stage: lint rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - packages/server/src/**/* image: node:23-alpine script: - npm i --include=dev - npm -w packages/server run lint artifacts: reports: codequality: packages/server/gl-codequality.json jest server: stage: test rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - packages/server/src/**/* image: node:23-alpine services: - name: postgres:14-alpine alias: postgres variables: POSTGRES_DB: canvas POSTGRES_USER: canvas POSTGRES_PASSWORD: canvas POSTGRES_HOST_AUTH_METHOD: trust variables: DATABASE_URL: postgres://canvas@postgres/canvas script: - apk update && apk add git - npm i --include=dev - npx -w packages/server prisma migrate reset --force - npm -w packages/server run test:ci coverage: /All\sfiles.*?\s+([\d\.]+)/ artifacts: reports: coverage_report: coverage_format: cobertura path: packages/server/coverage/cobertura-coverage.xml deploy: stage: deploy trigger: include: .gitlab/ci/deploy.yml allow_failure: true rules: - if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH .gitlab/ci/deploy.yml 0 → 100644 +33 −0 Original line number Diff line number Diff line variables: REGISTRY: registry.sc07.dev IMAGE_NAME: sc07/canvas:edge publish: stage: build tags: - red interruptible: true before_script: - echo $PAT | docker login $REGISTRY -u $GITLAB_USER_LOGIN --password-stdin script: - | docker build --tag $REGISTRY/$IMAGE_NAME \ --build-arg VERSION=$CI_COMMIT_SHA \ --build-arg SENTRY_URL=$SENTRY_URL \ --build-arg SENTRY_ORG=$SENTRY_ORG \ --build-arg CLIENT_SENTRY_PROJECT=$CLIENT_SENTRY_PROJECT \ --build-arg CLIENT_SENTRY_DSN=$CLIENT_SENTRY_DSN \ --build-arg SERVER_SENTRY_PROJECT=$SERVER_SENTRY_PROJECT \ --build-arg SERVER_SENTRY_DSN=$SERVER_SENTRY_DSN \ --build-arg SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN . - docker push $REGISTRY/$IMAGE_NAME deploy: stage: deploy tags: - red interruptible: true script: - cd $WORK_DIR - docker compose pull - docker compose up -d .gitlab/ci/wiki.yml 0 → 100644 +16 −0 Original line number Diff line number Diff line # sync /doc/ to internal wiki repo for UI access # see #151 build-wiki: image: alpine stage: build before_script: - apk add --no-cache git git-subtree script: - git config user.email "ci@sc07.company" - git config user.name "ci" - git remote remove gitlab-wiki || true - git remote add gitlab-wiki "https://ci:$CI_TOKEN@sc07.dev/sc07/canvas.wiki.git" - git status - git checkout main - git pull --rebase - git push gitlab-wiki `git subtree split -P doc main`:main --force Loading
.dockerignore +2 −1 Original line number Diff line number Diff line Loading @@ -9,3 +9,4 @@ Dockerfile .gitignore .vscode **/.env* .gitlab-ci.yml No newline at end of file
.eslintrc.json 0 → 100644 +9 −0 Original line number Diff line number Diff line { "root": true, "ignorePatterns": ["node_modules", "packages/**/dist"], "plugins": ["simple-import-sort"], "rules": { "simple-import-sort/imports": "error", "simple-import-sort/exports": "error" } }
.gitlab-ci.yml 0 → 100644 +75 −0 Original line number Diff line number Diff line stages: - lint - build - test - deploy include: - component: sc07.dev/sc07/ci/wiki@main inputs: wiki_token: $CI_TOKEN eslint client: stage: lint rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - packages/client/src/**/* image: node:23-alpine script: - npm i --include=dev - npm -w packages/client run lint artifacts: reports: codequality: packages/client/gl-codequality.json eslint server: stage: lint rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - packages/server/src/**/* image: node:23-alpine script: - npm i --include=dev - npm -w packages/server run lint artifacts: reports: codequality: packages/server/gl-codequality.json jest server: stage: test rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" changes: - packages/server/src/**/* image: node:23-alpine services: - name: postgres:14-alpine alias: postgres variables: POSTGRES_DB: canvas POSTGRES_USER: canvas POSTGRES_PASSWORD: canvas POSTGRES_HOST_AUTH_METHOD: trust variables: DATABASE_URL: postgres://canvas@postgres/canvas script: - apk update && apk add git - npm i --include=dev - npx -w packages/server prisma migrate reset --force - npm -w packages/server run test:ci coverage: /All\sfiles.*?\s+([\d\.]+)/ artifacts: reports: coverage_report: coverage_format: cobertura path: packages/server/coverage/cobertura-coverage.xml deploy: stage: deploy trigger: include: .gitlab/ci/deploy.yml allow_failure: true rules: - if: $CI_PIPELINE_SOURCE != "merge_request_event" && $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
.gitlab/ci/deploy.yml 0 → 100644 +33 −0 Original line number Diff line number Diff line variables: REGISTRY: registry.sc07.dev IMAGE_NAME: sc07/canvas:edge publish: stage: build tags: - red interruptible: true before_script: - echo $PAT | docker login $REGISTRY -u $GITLAB_USER_LOGIN --password-stdin script: - | docker build --tag $REGISTRY/$IMAGE_NAME \ --build-arg VERSION=$CI_COMMIT_SHA \ --build-arg SENTRY_URL=$SENTRY_URL \ --build-arg SENTRY_ORG=$SENTRY_ORG \ --build-arg CLIENT_SENTRY_PROJECT=$CLIENT_SENTRY_PROJECT \ --build-arg CLIENT_SENTRY_DSN=$CLIENT_SENTRY_DSN \ --build-arg SERVER_SENTRY_PROJECT=$SERVER_SENTRY_PROJECT \ --build-arg SERVER_SENTRY_DSN=$SERVER_SENTRY_DSN \ --build-arg SENTRY_AUTH_TOKEN=$SENTRY_AUTH_TOKEN . - docker push $REGISTRY/$IMAGE_NAME deploy: stage: deploy tags: - red interruptible: true script: - cd $WORK_DIR - docker compose pull - docker compose up -d
.gitlab/ci/wiki.yml 0 → 100644 +16 −0 Original line number Diff line number Diff line # sync /doc/ to internal wiki repo for UI access # see #151 build-wiki: image: alpine stage: build before_script: - apk add --no-cache git git-subtree script: - git config user.email "ci@sc07.company" - git config user.name "ci" - git remote remove gitlab-wiki || true - git remote add gitlab-wiki "https://ci:$CI_TOKEN@sc07.dev/sc07/canvas.wiki.git" - git status - git checkout main - git pull --rebase - git push gitlab-wiki `git subtree split -P doc main`:main --force