Skip to content
Snippets Groups Projects
.gitlab-ci.yml 1.61 KiB
Newer Older
Tom Käsler's avatar
Tom Käsler committed
variables:
  BUILD_DIR: dist

Tom Käsler's avatar
Tom Käsler committed
stages:
  - test
  - build
Tom Käsler's avatar
Tom Käsler committed
  - review
Tom Käsler's avatar
Tom Käsler committed
  - deploy

tslint:
  stage: test
  tags:
    - nodejs
  allow_failure: false
  dependencies: []
  script:
    - echo "{}" > package.json
    - npm install tslint-angular
    - npm install tslint-eslint-rules
Tom Käsler's avatar
Tom Käsler committed
    - npm install @angular/compiler
    - npm install @angular/core
    - npm install typescript
    - npm install rxjs
    - node_modules/tslint/bin/tslint -p ./tsconfig.json -c ./tslint.json --project
Tom Käsler's avatar
Tom Käsler committed

Tom Käsler's avatar
Tom Käsler committed
ngbuild:
  stage: build
  tags:
    - angular
Tom Käsler's avatar
Tom Käsler committed
  allow_failure: false
  dependencies: []
  script:
Tom Käsler's avatar
Tom Käsler committed
    - npm install -g @angular/cli
Tom Käsler's avatar
Tom Käsler committed
    - npm install
    - ng build --prod --aot=false --build-optimizer=false
Tom Käsler's avatar
Tom Käsler committed
  artifacts:
    paths:
      - "$BUILD_DIR"

#review:
#  stage: review
#  script:
#    - rsync -av --delete "$BUILD_DIR" /srv/nginx/pages/$CI_BUILD_REF_SLUG
#  environment:
#    name: review/$CI_BUILD_REF_NAME
#    url: http://$CI_BUILD_REF_SLUG.$SERVER_URL
#    on_stop: stop_review
#  only:
#    - branches
#  except:
#    - master
#  tags:
#    - nginx
Tom Käsler's avatar
Tom Käsler committed

#stop_review:
#  stage: review
#  script:
#    - rm -rf "$BUILD_DIR" /srv/nginx/pages/$CI_BUILD_REF_SLUG
#  variables:
#    GIT_STRATEGY: none
#  when: manual
#  environment:
#    name: review/$CI_BUILD_REF_NAME
#    action: stop
#  tags:
#    - nginx
Tom Käsler's avatar
Tom Käsler committed


Tom Käsler's avatar
Tom Käsler committed
deploy:
  stage: deploy
  only:
    - master
  tags:
    - ssh
  dependencies:
    - tslint
Tom Käsler's avatar
Tom Käsler committed
    - ngbuild
Tom Käsler's avatar
Tom Käsler committed
  script:
    - eval $(ssh-agent -s)
    - mkdir ~/.ssh #&& echo "$SSH_KNOWN_HOSTS" > ~/.ssh/known_hosts
    - ssh-keyscan "$SERVER_URL" >> ~/.ssh/known_hosts
    - ssh-add <(echo "$SSH_PRIVATE_KEY")
    - scp -r "$BUILD_DIR"* "$SSH_URL"