# Global Variables stages: - build-buildimage - test - build - docs - deploy image: docker.beryju.org/passbook/build-base:latest services: - postgres:latest - redis:latest variables: POSTGRES_DB: passbook POSTGRES_USER: passbook POSTGRES_PASSWORD: "EK-5jnKfjrGRm<77" before_script: # Ensure all dependencies are installed, even those not included in passbook/build-base - pip install -r requirements-dev.txt create-build-image: image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] before_script: - echo "{\"auths\":{\"docker.beryju.org\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json script: - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile.build-base --destination docker.beryju.org/passbook/build-base:latest --destination docker.beryju.org/passbook/build-base:0.2.6-beta stage: build-buildimage only: refs: - tags - /^version/.*$/ isort: script: - isort -c -sg env stage: test migrations: script: - python manage.py migrate stage: test prospector: script: - prospector stage: test pylint: script: - pylint passbook stage: test coverage: script: - python manage.py collectstatic --no-input - coverage run manage.py test - coverage report stage: test bandit: script: - bandit -r passbook stage: test package-docker: image: name: gcr.io/kaniko-project/executor:debug entrypoint: [""] before_script: - echo "{\"auths\":{\"docker.beryju.org\":{\"auth\":\"$DOCKER_AUTH\"}}}" > /kaniko/.docker/config.json script: - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination docker.beryju.org/passbook/server:latest --destination docker.beryju.org/passbook/server:0.2.6-beta stage: build only: - tags - /^version/.*$/ package-helm: stage: build script: - curl https://raw.githubusercontent.com/helm/helm/master/scripts/get | bash - helm init --client-only - helm package helm/passbook artifacts: paths: - passbook-*.tgz expire_in: 2 days only: - tags - /^version/.*$/ package-client-package-allauth: script: - cd client-packages/allauth - python setup.py sdist - twine upload --username $TWINE_USERNAME --password $TWINE_PASSWORD dist/* stage: build only: refs: - tags - /^version/.*$/ changes: - client-packages/allauth/** package-client-package-sentry: script: - cd client-packages/sentry-auth-passbook - python setup.py sdist - twine upload --username $TWINE_USERNAME --password $TWINE_PASSWORD dist/* stage: build only: refs: - tags - /^version/.*$/ changes: - client-packages/sentry-auth-passbook/**