stages: - build # - test # - package image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] variables: KANIKO_CACHE_ARGS: "--cache=true --cache-copy-layers=true --cache-ttl=24h" ng_build_merge_request: stage: build variables: script: - mkdir -p /kaniko/.docker - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > "/kaniko/.docker/config.json" - /kaniko/executor --context . $KANIKO_CACHE_ARGS --cache-repo $CI_REGISTRY_IMAGE --no-push rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: always ng_build: stage: build variables: IMAGE_TAG_BASE: $CI_REGISTRY_IMAGE:$CI_COMMIT_BRANCH-$CI_COMMIT_SHORT_SHA LATEST_TAG: $CI_REGISTRY_IMAGE:latest script: - export IMAGE_TAG="$IMAGE_TAG_BASE-$(date +%F.%H%M%S)" - mkdir -p /kaniko/.docker - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > "/kaniko/.docker/config.json" - /kaniko/executor --context . $KANIKO_CACHE_ARGS --destination $IMAGE_TAG --destination $CI_REGISTRY_IMAGE/$APP_NAME:latest rules: - if: $CI_COMMIT_BRANCH == "master" when: always # cache: # key: # files: # - package-lock.json # paths: # - node_modules/ # policy: pull # image: node:alpine # variables: # PROJECT_PATH: "$CI_PROJECT_DIR" # APP_OUTPUT_PATH: "$CI_PROJECT_DIR/dist/cic-staff-client" # OUTPUT_PATH: "$CI_PROJECT_DIR/dist" # CLI_VERSION: 10.2.0 # install_dependencies: # stage: install # tags: # - docker # script: # - npm install -g @angular/cli@$CLI_VERSION # - npm install # only: # refs: # - merge_requests # - master # changes: # - package-lock.json # build: # stage: build # tags: # - docker # script: # - npm ng build --prod # after_script: # - mv $PROJECT_PATH/nginx.conf $PROJECT_PATH/default.conf # - cp $PROJECT_PATH/default.conf $APP_OUTPUT_PATH # - cp $PROJECT_PATH/Dockerfile $APP_OUTPUT_PATH # artifacts: # name: "cic-staff-client-pipeline" # expire_in: 1 days # paths: # - $APP_OUTPUT_PATH # test:karma: # stage: test # allow_failure: false # tags: # - docker # before_script: # - apk add chromium # - export CHROME_BIN=/usr/bin/chromium-browser # script: # - npm ng test --code-coverage --progress false --watch false --browsers=GitlabChromeHeadless # coverage: '/Statements\s+:\s\d+.\d+%/' # artifacts: # name: "tests-and-coverage" # reports: # junit: # - $OUTPUT_PATH/tests/junit-test-results.xml # cobertura: # - $OUTPUT_PATH/coverage/cobetura-coverage.xml # paths: # - coverage/ # test:e2e: # stage: test # allow_failure: false # tags: # - docker # script: # - npm ng e2e # test:nglint: # stage: test # tags: # - docker # script: # - npm ng lint # docker-build: # stage: package # image: docker:latest # services: # - docker:dind # variables: # IMAGE_TAG: "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-$CI_COMMIT_SHORT_SHA" # before_script: # - docker login -u $CI_DEPLOY_USER -p $CI_DEPLOY_PASSWORD $CI_REGISTRY # script: # - docker build -t $IMAGE_TAG -f Dockerfile . # - docker push $IMAGE_TAG # only: # - master