diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 94507eeb2636d3096a861543df35a590492a6f01..ed4f133d726208fc3f225fccbbd406ad41f7a202 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,15 +1,60 @@ -include: - - template: Security/License-Scanning.gitlab-ci.yml +stages: + - "build" + - "deploy" + +build_docker_main: + needs: [] + stage: "build" + image: + name: "gcr.io/kaniko-project/executor:debug" + entrypoint: [""] + script: + - "mkdir -p /kaniko/.docker" + - 'echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json' + - "/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:commit-$CI_COMMIT_SHORT_SHA --destination $CI_REGISTRY_IMAGE:latest" + rules: + - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH" + +build_docker_branches: + needs: [] + stage: "build" + image: + name: "gcr.io/kaniko-project/executor:debug" + entrypoint: [""] + script: + - "mkdir -p /kaniko/.docker" + - 'echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json' + - "/kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $CI_REGISTRY_IMAGE:commit-$CI_COMMIT_SHORT_SHA --destination $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG-latest" + rules: + - if: "$CI_COMMIT_BRANCH != $CI_DEFAULT_BRANCH" pages: needs: [] - image: node:14-alpine - stage: deploy + stage: "deploy" + image: "node:18-alpine" script: - - npm install - - npm run build + - "npm install" + - "npm run build" artifacts: paths: - - public - only: - - master + - "public" + rules: + - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH" + +deploy_to_caprover: + needs: + - "build_docker_main" + stage: "deploy" + image: + name: "caprover/cli-caprover:latest" + entrypoint: [""] + variables: + # We don't need the files, just tell CapRover to use the built docker image: + GIT_STRATEGY: none + script: + - "caprover deploy -h https://captain.$CAPROVER_URL -a $CAPROVER_APP --imageName $CI_REGISTRY_IMAGE:commit-$CI_COMMIT_SHORT_SHA" + environment: + name: "production" + url: "https://swk-project-effort-estimation.oh14.dev/" + rules: + - if: "$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH && $CAPROVER_URL && $CAPROVER_APP_TOKEN && $CAPROVER_APP"