Select Git revision
.gitlab-ci.yml
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
.gitlab-ci.yml 1.79 KiB
stages:
- test
- release
test:
image: dbogatov/docker-sources:node--14.4-alpine3.12
stage: test
script:
- npm install
- npm run coverage
coverage: '/All files[^|]*\|[^|]*\s+([\d\.]+)/'
artifacts:
expire_in: 1 hour
paths:
- coverage/
reports:
junit: test-results.xml
cobertura: coverage/cobertura-coverage.xml
tags:
- docker
release:
image: dbogatov/docker-sources:node--14.4-alpine3.12
stage: release
script:
- |
cat <<EOT >> .npmrc
@dbogatov:registry=https://${CI_SERVER_HOST}/api/v4/packages/npm/
//${CI_SERVER_HOST}/api/v4/packages/npm/:_authToken=${CI_JOB_TOKEN}
//${CI_SERVER_HOST}/api/v4/projects/${CI_PROJECT_ID}/packages/npm/:_authToken=${CI_JOB_TOKEN}
EOT
- |
PACKAGE=$(cat package.json | grep name | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
- |
THIS_VERSION=$(cat package.json | grep version | head -1 | awk -F: '{ print $2 }' | sed 's/[",]//g' | tr -d '[[:space:]]')
- LATEST_VERSION=$(npm show $PACKAGE version)
- |
echo "This: $THIS_VERSION, latest: $LATEST_VERSION"
- |
if [ "$LATEST_VERSION" = "$THIS_VERSION" ]
then
echo "This version has already been published"
else
sed "s#\"$PACKAGE\"#\"@dbogatov/$PACKAGE\"#g" package.json
npm publish
fi
rules:
- if: '$CI_COMMIT_REF_NAME == "master"'
when: on_success
allow_failure: true
tags:
- docker
code_navigation:
image: dbogatov/docker-sources:node--14.4-alpine3.12
stage: release
script:
- npm install -g @sourcegraph/lsif-tsc
- apk add --update git
- lsif-tsc -p .
artifacts:
reports:
lsif: dump.lsif
rules:
- if: '$CI_COMMIT_REF_NAME == "master"'
when: on_success
tags:
- docker