Add new file
This commit is contained in:
parent
73f1a2d7a9
commit
d96c14cf7f
1 changed files with 72 additions and 0 deletions
72
slop-terminal/.gitlab.ci.yml
Normal file
72
slop-terminal/.gitlab.ci.yml
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
|
||||
variables:
|
||||
DOCKER_IMAGE_NAME: "slop-terminal"
|
||||
DOCKER_TAG: "$CI_COMMIT_REF_SLUG"
|
||||
|
||||
# Test stage
|
||||
test:
|
||||
stage: test
|
||||
image: python:3.9
|
||||
before_script:
|
||||
- pip install -r requirements.txt
|
||||
- pip install pytest pytest-cov
|
||||
script:
|
||||
- python -m pytest tests/ --cov=.
|
||||
coverage: '/TOTAL.+?(\d+\%)$/'
|
||||
artifacts:
|
||||
reports:
|
||||
coverage_report:
|
||||
coverage_format: cobertura
|
||||
path: coverage.xml
|
||||
|
||||
# Build Docker image
|
||||
build:
|
||||
stage: build
|
||||
image: docker:20.10.16
|
||||
services:
|
||||
- docker:20.10.16-dind
|
||||
before_script:
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
script:
|
||||
- docker build -t $CI_REGISTRY_IMAGE:$DOCKER_TAG .
|
||||
- docker push $CI_REGISTRY_IMAGE:$DOCKER_TAG
|
||||
- docker tag $CI_REGISTRY_IMAGE:$DOCKER_TAG $CI_REGISTRY_IMAGE:latest
|
||||
- docker push $CI_REGISTRY_IMAGE:latest
|
||||
only:
|
||||
- main
|
||||
- develop
|
||||
|
||||
# Deploy to staging
|
||||
deploy_staging:
|
||||
stage: deploy
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
script:
|
||||
- echo "Deploying to staging environment..."
|
||||
- curl -X POST "$STAGING_WEBHOOK_URL" -H "Content-Type: application/json" -d '{"image":"'$CI_REGISTRY_IMAGE:$DOCKER_TAG'"}'
|
||||
only:
|
||||
- develop
|
||||
environment:
|
||||
name: staging
|
||||
url: https://staging.your-domain.com
|
||||
|
||||
# Deploy to production
|
||||
deploy_production:
|
||||
stage: deploy
|
||||
image: alpine:latest
|
||||
before_script:
|
||||
- apk add --no-cache curl
|
||||
script:
|
||||
- echo "Deploying to production environment..."
|
||||
- curl -X POST "$PRODUCTION_WEBHOOK_URL" -H "Content-Type: application/json" -d '{"image":"'$CI_REGISTRY_IMAGE:$DOCKER_TAG'"}'
|
||||
only:
|
||||
- main
|
||||
environment:
|
||||
name: production
|
||||
url: https://your-domain.com
|
||||
when: manual
|
||||
Loading…
Add table
Add a link
Reference in a new issue