Skip to content

Instantly share code, notes, and snippets.

@xb4dc0d3
xb4dc0d3 / .gitlab-ci.yml
Last active March 9, 2020 14:44
Base images, stages. and cache
image: python:latest
stages:
- test
- flake8
- build
- sonarqube
- deploy
variables:
dev-test:
stage: test
script:
- echo "SECRET_KEY=$SECRET_KEY_DJANGO" > .env.dev
- apt-get update -qq
- python manage.py collectstatic --settings=sip.settings.dev --no-input
- python manage.py runserver 8000 --settings=sip.settings.dev &
when: on_success
script:
- python manage.py test --settings=sip.settings.dev
...
lint:
stage: flake8
script:
- flake8
allow_failure: true
...
...
sonarqube:
image: nuga99/sonar-scanner-python
stage: sonarqube
before_script:
- python3 -V
- pip3 install -r requirements.txt
script:
- if [[ $CI_COMMIT_REF_NAME == staging ]]; then ENVIRON="sip.settings.staging"; else ENVIRON="sip.settings.dev"; fi
- coverage run --omit='manage.py,*/venv/*,**/python3.6/**,authentication/cas_wrapper.py,/usr/**' manage.py test --settings=${ENVIRON}
FROM ubuntu:18.04
RUN mkdir /opt/sonar-scanner && \
mkdir /opt/sonar-scanner/conf && \
mkdir /opt/sonar-scanner/bin
WORKDIR /opt/sonar-scanner
RUN apt-get update -y && apt-get install -y \
libpq-dev -y \
unzip \
wget \
default-jre \
backend-deploy:
image: ruby:2.4
stage: deploy
only:
- staging
before_script:
- gem install dpl
- wget -qO- https://cli-assets.heroku.com/install-ubuntu.sh | sh
script:
- dpl --provider=heroku --app=$HEROKU_APPNAME --api-key=$HEROKU_APIKEY
#!/bin/bash
sonar.host.url=http://localhost:9000
sonar.sourceEncoding=UTF-8
class LembagaTestViews(APITestCase):
def setUp(self):
user_full = User.objects.create_user(
username="username2",
email="username2@email.com",
password="password",
first_name="User",
last_name="Name"
)
...
factory = APIRequestFactory()
request = factory.get('/')
serializer_context = {
'request': Request(request),
}
class LembagaView(RetrieveAPIView):
from datetime import date
# Bad
x_time = date.now().isoformat()
# Good
currentDate = date.now().isoformat()