# place project specific paths in variables to make the rest of the script more generic variables: TEST_FOLDER: 'src\Tests\bin\Release' BASE_FOLDER: '' stages: - build - test - deploy .build: stage: build script: - 'id' - 'nvm use 9.10.1' - 'yarn install' - 'yarn build' - 'yarn prebuild:storybook' - 'yarn build-storybook' - 'docker build -t registry.sofology.local:5000/fabric.sofology.co.uk:$CONFIG-$CI_PIPELINE_IID -t registry.sofology.local:5000/fabric.sofology.co.uk:$CONFIG-latest .' - 'docker push registry.sofology.local:5000/fabric.sofology.co.uk:$CONFIG-$CI_PIPELINE_IID' - 'docker push registry.sofology.local:5000/fabric.sofology.co.uk:$CONFIG-latest' tags: - docker build: extends: .build variables: CONFIG: DEBUG only: - develop build sit: extends: .build variables: CI: 'false' CONFIG: SIT only: - master test: stage: test script: - echo 'Running fabric Tests...' dependencies: - build .deploy: stage: deploy script: - 'ssh build.service@$SERVER_ENV-docker-01 "docker stack rm fabric "' - 'sleep 30s' - 'ssh build.service@$SERVER_ENV-docker-01 "docker stack deploy --compose-file /var/docker-compose/fabric/docker-compose.yml fabric"' dependencies: - build - test tags: - docker deploy sit: extends: .deploy environment: sit variables: SERVER_ENV: sit CONFIG: SIT only: - master dependencies: - build sit - test