image: node:12.14.0 stages: - publish - release - upload - sonarqube-check before_script: - mkdir -p ~/.ssh - touch ~/.ssh/id_rsa - touch ~/.ssh/config - chmod 700 ~/.ssh/id_rsa - echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa - echo "$SSH_CONFIG" > ~/.ssh/config - | case "$CI_COMMIT_REF_NAME" in "master") PUBLISH_OPTS="--verbose" ;; *) PUBLISH_OPTS="--verbose --tag=alpha" ;; esac publish: cache: untracked: true key: ${CI_COMMIT_REF_SLUG} paths: - build stage: publish rules: - if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_TAG =~ "/^$/"' when: manual - if: '$CI_COMMIT_REF_NAME == "master" && $CI_COMMIT_TAG =~ "/^$/"' when: manual script: - npm install --registry https://registry.npm.taobao.org/ - npm run build - npm config set //registry.npmjs.org/:_authToken ${NPM_TOKEN} - npm publish ${PUBLISH_OPTS} - echo "记得同步 taobao 源哦: https://npm.taobao.org/sync/authing-js-sdk 🚀" artifacts: untracked: false paths: - build expire_in: 30 days release: stage: release rules: - if: '$CI_COMMIT_REF_NAME == "master" && $CI_COMMIT_TAG =~ "/^$/"' before_script: - git clone https://lizuoqiang:lzq123456@git.authing.co/sdk/authing-js-sdk.git - git config --global user.email "gitlab@authing.cn" - git config --global user.name "GitLab CI/CD" - export VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]') script: - echo ${VERSION} - cd authing-js-sdk - echo $CI_COMMIT_REF_NAME - git tag -a ${VERSION} -m "${VERSION}" - git push origin master --tag dependencies: - publish upload: stage: upload # when: manual image: name: fuergaosi/ossutil:latest script: - export VERSION=$(cat package.json | grep version | head -1 | awk -F= "{ print $2 }" | sed 's/[version:,\",]//g' | tr -d '[[:space:]]') - echo 上传包到 cdn - echo 版本 $VERSION - > ossutil --access-key-id ${ALIYUN_ACCESS_KEY} --access-key-secret ${ALIYUN_ACCESS_KEY_SECRET} -e ${OSS_REGION_PROD} cp -r -f build oss://${CDN_OSS_PROD}/packages/authing-js-sdk/${VERSION}/ dependencies: - publish sonarqube-check: stage: sonarqube-check image: name: sonarsource/sonar-scanner-cli:latest entrypoint: [""] variables: SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" GIT_DEPTH: "0" cache: key: "${CI_JOB_NAME}" paths: - .sonar/cache script: - sonar-scanner allow_failure: true only: - master