Merge branch 'feature/ci-cd' into 'main'
Copied CI/CD from neshura-websites/readyornot See merge request neshura-websites/www!1
This commit is contained in:
commit
f3c2a1e8bf
1 changed files with 65 additions and 0 deletions
65
.gitlab-ci.yml
Normal file
65
.gitlab-ci.yml
Normal file
|
@ -0,0 +1,65 @@
|
||||||
|
stages:
|
||||||
|
- lint
|
||||||
|
#- test
|
||||||
|
- build
|
||||||
|
- deploy
|
||||||
|
|
||||||
|
variables:
|
||||||
|
IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_TAG
|
||||||
|
IMAGE_LATEST: $CI_REGISTRY_IMAGE:develop
|
||||||
|
|
||||||
|
|
||||||
|
.node:
|
||||||
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/node:latest
|
||||||
|
|
||||||
|
|
||||||
|
.docker:
|
||||||
|
image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:20
|
||||||
|
rules:
|
||||||
|
- if: $CI_COMMIT_TAG && $CI_COMMIT_TAG !~ /(^t)+.*/
|
||||||
|
variables:
|
||||||
|
IMAGE_LATEST: $CI_REGISTRY_IMAGE:latest
|
||||||
|
- if: $CI_COMMIT_TAG
|
||||||
|
|
||||||
|
|
||||||
|
linter:
|
||||||
|
image: !reference [.node, image]
|
||||||
|
stage: lint
|
||||||
|
before_script:
|
||||||
|
- yarn install
|
||||||
|
script:
|
||||||
|
- yarn lint
|
||||||
|
|
||||||
|
|
||||||
|
build:
|
||||||
|
image: !reference [.docker, image]
|
||||||
|
stage: build
|
||||||
|
before_script:
|
||||||
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
script:
|
||||||
|
- docker build -t $IMAGE_TAG .
|
||||||
|
after_script:
|
||||||
|
- docker save $IMAGE_TAG > docker.tar
|
||||||
|
artifacts:
|
||||||
|
expire_in: 30 mins
|
||||||
|
paths:
|
||||||
|
- docker.tar
|
||||||
|
rules:
|
||||||
|
- !reference [.docker, rules]
|
||||||
|
|
||||||
|
|
||||||
|
push:
|
||||||
|
image: !reference [.docker, image]
|
||||||
|
stage: deploy
|
||||||
|
needs:
|
||||||
|
- job: build
|
||||||
|
artifacts: true
|
||||||
|
before_script:
|
||||||
|
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||||
|
- docker load -i docker.tar
|
||||||
|
script:
|
||||||
|
- docker tag $IMAGE_TAG $IMAGE_LATEST
|
||||||
|
- docker push $IMAGE_TAG
|
||||||
|
- docker push $IMAGE_LATEST
|
||||||
|
rules:
|
||||||
|
- !reference [.docker, rules]
|
Loading…
Reference in a new issue