1
0
Fork 0
textual-engine/.gitlab-ci.yml

178 lines
2.8 KiB
YAML

include:
- local: /config/gitlab/ci-tools.yml
- local: /config/gitlab/ci-rules.yml
stages:
- build
- image
- publish
- status-post
# build jobs
build-cli:
stage: build
extends:
- .build-node
script:
- make ci
artifacts:
when: always
expire_in: 1 day
paths:
- out/
cache:
key: "${CI_COMMIT_REF_SLUG}"
policy: pull-push
paths:
- node_modules/
- out/api/
- out/cache/
- out/tmp/
build-bundle:
stage: build
extends:
- .build-node
script:
- make bundle
artifacts:
when: always
expire_in: 1 day
paths:
- out/
cache:
key: "${CI_COMMIT_REF_SLUG}"
policy: pull-push
paths:
- node_modules/
- out/api/
- out/cache/
- out/tmp/
build-image-cli-branch:
stage: image
extends: [.build-docker]
needs:
- build-cli
except:
- tags
script:
- ./scripts/docker-build.sh --push
variables:
IMAGE_ARCH: cli
build-image-cli-tag:
stage: image
extends:
- .build-docker
needs:
- build-cli
only:
- tags
script:
- ./scripts/docker-build.sh --push
variables:
IMAGE_ARCH: cli
build-image-server-branch:
stage: image
extends: [.build-docker]
needs:
- build-bundle
except:
- tags
script:
- ./scripts/docker-build.sh --push
variables:
IMAGE_ARCH: server
build-image-server-tag:
stage: image
extends:
- .build-docker
needs:
- build-bundle
only:
- tags
script:
- ./scripts/docker-build.sh --push
variables:
IMAGE_ARCH: server
# publish jobs
publish-npm:
stage: publish
extends:
- .build-node
- .deploy-tags
needs:
- build-cli
script:
- npm publish
# commit status
climate-success:
stage: status-post
extends:
- .build-climate
needs:
- build-bundle
- build-cli
script:
- make upload-climate
github-pending:
stage: build
extends:
- .build-curl
script:
- ./scripts/github-status.sh pending
github-failure:
stage: status-post
extends:
- .build-curl
needs:
- build-bundle
- build-cli
when: on_failure
script:
- ./scripts/github-status.sh failure
github-success:
stage: status-post
extends:
- .build-curl
needs:
- build-bundle
- build-cli
when: on_success
script:
- ./scripts/github-status.sh success
sonar-success:
stage: status-post
extends:
- .build-sonar
needs:
- build-bundle
- build-cli
when: on_success
script:
- make node_modules
- sonar-scanner
-Dsonar.projectKey=ssube_salty-dog
-Dsonar.projectVersion=${CI_COMMIT_REF_SLUG}
-Dsonar.organization=ssube-github
-Dsonar.sources=src/,test/
-Dsonar.host.url=https://sonarcloud.io
-Dsonar.login=${SONAR_SECRET}
-Dsonar.typescript.lcov.reportPaths=out/coverage/lcov.info