Skip to content

Commit

Permalink
Merge pull request #9 from ConductionNL/staging
Browse files Browse the repository at this point in the history
update
  • Loading branch information
rubenvdlinde authored Dec 10, 2019
2 parents f81695d + ba69f3c commit 6020d5f
Show file tree
Hide file tree
Showing 48 changed files with 2,915 additions and 1,858 deletions.
76 changes: 60 additions & 16 deletions .env
Original file line number Diff line number Diff line change
@@ -1,26 +1,52 @@
##################################################
#
# General settings for your component
#
# General settings for your component
#
##################################################

##################################################
# Enviroment settings
##################################################

# Depracticed, now set as CONTAINER_PROJECT_NAME
# The shortcode for this component, should be a small set of letters reprecentint the application
APP_NAME=vtc
# Do you want to dsiplay the symfony debug toolbar?
# The Full title of the application
APP_TITLE=Verzoek Type Catalogus
# The current version of the application
APP_VERSION=V.0.1
# Do you want to display the symfony debug toolbar?
APP_DEBUG=1
# What is the enviroment type you want to use for local production? (choose between dec,stag,prod, acce or test)
APP_ENV=dev
# We use a build to tag images, this is swithced to the version on master and to env on other branches
APP_BUILD=dev
# The description for this api
APP_DESCRIPTION='Naast deze JSON rest API is er ook een [graphql](/graphql) interface beschikbaar.'

# The urls on wich this api is available
TRUSTED_PROXIES=10.0.0.0/8,172.16.0.0/12,192.168.0.0/16
TRUSTED_HOSTS=^(.+\.)?conduction\.nl$|^(.+\.)?huwelijksplanner\.online$|^(.+\.)?larping\.eu$|^(.+\.)?common-ground\.nl$|^(.+\.)?trouwplanner\.online$|^(.+\.)?zaakonline\.nl$|localhost

##################################################
# Orgization details
##################################################

# The following details describe your organisations and are used for both certificate creation and common-ground.dev

ORGANIZATION_NAME=Conduction
ORGANIZATION_EMAIL_ADDRESS=[email protected]
ORGANIZATION_COUNTRY_NAME=Netherlands
ORGANIZATION_STATE=Noord-Holland
ORGANIZATION_LOCALITY=Amsterdam
ORGANIZATION_UNIT_NAME=Common-Ground

##################################################
# Documentation settings
##################################################

APP_DEMO=dev
APP_REPRO=dev
APP_DOMAIN=conduction.nl
APP_DEMO=vtc.zaakonline.nl
APP_REPRO=https://github.com/ConductionNL/verzoektypecatalogus

##################################################
# Docker settings
Expand All @@ -29,36 +55,54 @@ APP_REPRO=dev
CONTAINER_REGISTRY_BASE=docker.io/conduction
CONTAINER_PROJECT_TITLE=Verzoek Type Catalogus
CONTAINER_PROJECT_NAME=vtc
CONTAINER_PROJECT_VERSION=V.0.1
APP_NAME=pc
## Eviroment Setup
CONTAINER_REPRO=https://hub.docker.com/repository/docker/conduction/vtc-php

##################################################
# Websub settings
# Notifcation settings
##################################################

WEBSUB_PROVIDER=sasd
WEBSUB_AUTHORIZATION=sasd
NOTIFICATION_ENABLED=falsedxfddxf
NOTIFICATION_PROVIDER=sasdasd
NOTIFICATION_ENABLED_AUTHORIZATION=sasd

##################################################
# Authorization settings
##################################################

AUTH_ENABLED=false
AUTH_PROVIDER=sasd
AUTH_AUTHORIZATION=sasd

##################################################
# NLX Setup, read more at https://docs.nlx.io/get-started/#
# Auditrail settings
##################################################

AUDITTRAIL_ENABLED=false

##################################################
# Healthcheck settings
##################################################

HEALTH_ENABLED=false

##################################################
# Archive settings
##################################################

ARCHIVE_ENABLED=false

##################################################
# NLX Setup, read more at https://docs.nlx.io/get-started/#
##################################################

# Do you want to provide an nlx outway? (option for your component to reach nlx services)
NLX_OUTWAY=true
NLX_OUTWAY=true

# Do you want to provice an nlx inway (option for nlx services to reach your api)
NLX_INWAY=false
NLX_INWAY=false

# NLX Certification Details
NLX_COUNTRY_NAME=Netherlands
NLX_COUNTRY_NAME=Netherlands
NLX_STATE=Noord-Holland
NLX_LOCALITY=Amsterdam
NLX_ORGANIZATION_NAME=Conduction
Expand Down
4 changes: 4 additions & 0 deletions .github/deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# View examples and documentation at https://deliverybot.dev/docs/
production:
environment: production
production_environment: true
132 changes: 132 additions & 0 deletions .github/workflows/dockerimage.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: Docker Image CI

on:
pull_request:
branches:
- master
- staging
- development
push:
branches:
- master
- staging
- development

jobs:

build:

runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- name: Pulling old images, if any
run: docker-compose pull --ignore-pull-failures
- name: Setting APP_NAME
run: |
export NAME=$(grep APP_NAME= .env | cut -d '=' -f2)
echo ::set-env name=APP_NAME::$NAME
- name: Print app name
run: echo "APP_NAME = $APP_NAME"
- name: Setting APP_ENV to dev
run: |
echo ::set-env name=APP_ENV::dev
echo ::set-env name=APP_BUILD::dev
echo "set APP_ENV to $APP_ENV"
- name: Setting APP_ENV to prod
if: contains( github.ref, 'master' ) || contains( github.base_ref, 'master' )
run: |
echo ::set-env name=APP_ENV::prod
echo "set APP_ENV to $APP_ENV"
- name: Set APP_BUILD to APP_VERSION
if: contains( github.ref, 'master' )
run: |
export VERSION=$(grep APP_VERSION= .env | cut -d '=' -f2)
echo ::set-env name=APP_BUILD::$VERSION
echo "set APP_BUILD to $APP_BUILD"
- name: Setting APP_ENV to stag
if: contains( github.ref, 'staging' ) || contains( github.base_ref, 'staging' )
run: |
echo ::set-env name=APP_ENV::stag
echo ::set-env name=APP_BUILD::stag
echo "set APP_ENV to $APP_ENV"
- name: Print definitive APP_ENV
run: echo "APP_ENV is now $APP_ENV"
- name: Build the Docker image
run: docker-compose build --pull --build-arg APP_ENV=$APP_ENV --build-arg APP_BUILD=$APP_BUILD
- name: Run the docker image
run: docker-compose up -d
- name: Taking some sleep
run: sleep 100
- name: Check if all containers are running
run: docker ps
- name: Dumping the logs
run: docker-compose logs
- name: Security Checks
run: docker-compose exec -T php composer req sensiolabs/security-checker
- name: Database Update
run: docker-compose exec -T php bin/console doctrine:schema:update --force
- name: Database Check
run: docker-compose exec -T php bin/console doctrine:schema:validate
- name: Chores
run: docker-compose down
- name: Login to DockerHub Registry
id: dockerhub-login
run: |
if [ "${{ secrets.DOCKERHUB_PASSWORD }}" != "" ] && [ "${{ secrets.DOCKERHUB_USERNAME }}" != "" ]; then
echo ${{ secrets.DOCKERHUB_PASSWORD }} | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
echo "##[set-output name=success;]true"
else
echo "##[set-output name=success;]false"
fi
- if: steps.dockerhub-login.outputs.success == 'true'
name: Push to docker hub
run: docker-compose push
- name: Create kube config
id: kubeconfig
if: contains( github.ref, 'master' ) || contains( github.ref, 'staging' ) || contains( github.ref, 'development' )
run: |
if [ "${{ secrets.KUBECONFIG }}" != "" ]; then
printf "${{ secrets.KUBECONFIG }}" > kubeconfig.yaml
echo "##[set-output name=success]true"
else
echo "##[set-output name=success]false"
fi
- name: Set correct helm version
if: (contains( github.ref, 'master' ) || contains( github.ref, 'staging' ) || contains( github.ref, 'development' )) && steps.kubeconfig.outputs.success == 'true'
run: helm init --upgrade --kubeconfig="kubeconfig.yaml"
- name: Deploy through helm
id: helm-install
if: (contains( github.ref, 'master' ) || contains( github.ref, 'staging' ) || contains( github.ref, 'development' )) && steps.kubeconfig.outputs.success == 'true'
run: helm upgrade $APP_NAME-$APP_ENV ./api/helm --kubeconfig="kubeconfig.yaml" --namespace=$APP_ENV --set settings.env=$APP_ENV,settings.debug=1
- name: Install through helm
if: failure()
run: helm install --name $APP_NAME-$APP_ENV ./api/helm --kubeconfig="kubeconfig.yaml" --namespace=$APP_ENV --set settings.env=$APP_ENV,settings.debug=1
- name: Rollout new containers
if: (contains( github.ref, 'master' ) || contains( github.ref, 'staging' ) || contains( github.ref, 'development' )) && steps.kubeconfig.outputs.success == 'true' && success()
run: |
kubectl rollout restart deployment/$APP_NAME-php --kubeconfig="kubeconfig.yaml" --namespace=$APP_ENV
kubectl rollout restart deployment/$APP_NAME-nginx --kubeconfig="kubeconfig.yaml" --namespace=$APP_ENV
kubectl rollout restart deployment/$APP_NAME-varnish --kubeconfig="kubeconfig.yaml" --namespace=$APP_ENV
- name: Export release code
if: (success() || failure())
id: releasecode
run: |
export RELEASE=$APP_BUILD-$(git rev-parse --short $GITHUB_SHA)
echo "##[set-output name=releasename]$RELEASE"
- name: Print release name
if: (success() || failure())
run: echo $RELEASENAME
env:
RELEASENAME: ${{ steps.releasecode.outputs.releasename }}
- name: Create Release
if: contains( github.ref, 'master' ) && steps.kubeconfig.outputs.success == 'true' && ( success() || failure() )
id: create_release
uses: actions/create-release@v1
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This token is provided by Actions, you do not need to create your own token
with:
tag_name: ${{ steps.releasecode.outputs.releasename }}
release_name: ${{ steps.releasecode.outputs.releasename }}
draft: false
prerelease: false
Loading

0 comments on commit 6020d5f

Please sign in to comment.