image: isobartw/node:20-alpine-gm stages: - test - build - deploy - prod include: - project: 'project/isobar/gitlab-ci-templates' file: 'docker.yml' rules: - if: $CI_COMMIT_REF_NAME =~ /^release\/(\d+\.\d+\.\d+)$/ before_deploy: stage: build tags: - shell-tag script: - echo "project_path:${CI_PROJECT_PATH}" - echo "docker_name_tag:isobar/${CI_PROJECT_NAME}:${CI_COMMIT_SHORT_SHA}" - echo "docker_name_tag:isobar/${CI_PROJECT_NAME}:${CI_COMMIT_TAG}" - echo "namespace:${CI_PROJECT_NAMESPACE}" - echo "client:${CI_PROJECT_NAMESPACE:8}" - echo "host:${STAGING_HOST}" - echo "port:${PROJECT_PORT}" - id - pwd - ssh -i ~/.ssh/devops-ssh-key devops-user@${STAGING_HOST} test -f /mnt/nfs_shares/conf/${CI_PROJECT_NAMESPACE:8}/${CI_PROJECT_NAME}/docker-compose.yml deploy-staging: stage: deploy tags: - shell-tag script: - echo "Deploy staging" - ssh -i ~/.ssh/devops-ssh-key devops-user@${STAGING_HOST} deploy-nginx-staging.sh -c ${CI_PROJECT_NAMESPACE:8} -p ${CI_PROJECT_NAME} rules: - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH pages: tags: - docker-tag script: - cd web - npm ci - cd ../storybook - npm ci - npm run build-storybook - mv storybook-static ../public artifacts: paths: - public rules: - if: $CI_COMMIT_REF_NAME == "storybook"