Skip to content

Instantly share code, notes, and snippets.

@Iqrar99
Created May 25, 2021 02:50
Show Gist options
  • Save Iqrar99/1310f8bfc539da989c51fb6d9fbc4bb5 to your computer and use it in GitHub Desktop.
Save Iqrar99/1310f8bfc539da989c51fb6d9fbc4bb5 to your computer and use it in GitHub Desktop.
CI/CD PPL 2021 Layanan Kegiatan MPKT 5 SKS dan Magang
stages:
- test
- analysis
- deploy
test:
stage: test
image: python:3.6
before_script:
- python -V
- pip install -r requirements.txt
services:
- mongo
variables:
MONGO_URI: 'mongodb://mongo:27017/siveri'
NODE_ENV: 'test'
script:
- python manage.py makemigrations
- python manage.py migrate
- python manage.py collectstatic --no-input
- python manage.py test
- coverage run --omit='.env/*,env/*,project/*,*/tests.py,manage.py' manage.py test
- coverage report -m
# Sonarqube Implementation start
SonarScanner Dev:
image:
name: sonarsource/sonar-scanner-cli:4.6
entrypoint: [""]
stage: analysis
script:
- sonar-scanner
-Dsonar.host.url=https://pmpl.cs.ui.ac.id/sonarqube
-Dsonar.login=$SONARQUBE_TOKEN
-Dsonar.projectKey=$SONARQUBE_PROJECT_KEY
-Dsonar.branch.name=$CI_COMMIT_REF_NAME
-Dsonar.branch.target=staging
except:
- master
- staging
SonarScanner:
image:
name: sonarsource/sonar-scanner-cli:4.6
entrypoint: [""]
stage: analysis
script:
- sonar-scanner
-Dsonar.host.url=https://pmpl.cs.ui.ac.id/sonarqube
-Dsonar.login=$SONARQUBE_TOKEN
-Dsonar.projectKey=$SONARQUBE_PROJECT_KEY
-Dsonar.branch.name=$CI_COMMIT_REF_NAME
only:
- master
- staging
# Sonarqube implementation end
black:
stage: analysis
image: milansuk/python-black:3.8
script:
- black --version
- black --diff .
- black --check .
staging:
stage: deploy
image: ruby:latest
before_script:
- gem install dpl
- wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh
script:
- dpl --provider=heroku --app=$HEROKU_APP_NAME --api-key=$HEROKU_API_KEY
- heroku run --app $HEROKU_APP_NAME python manage.py makemigrations
- heroku run --app $HEROKU_APP_NAME python manage.py migrate --run-syncdb
only:
- staging
environment:
name: staging
url: $HEROKU_APP_HOST
production:
stage: deploy
image: docker:latest
services:
- docker:dind
before_script:
- echo $CI_BUILD_TOKEN | docker login -u $CI_REGISTRY_USER --password-stdin $CI_REGISTRY
script:
- docker build -t $CI_REGISTRY_IMAGE -f Dockerfile .
- docker push $CI_REGISTRY_IMAGE
only:
- master
environment:
name: production
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment