variables: CI_REGISTRY: 102167438644.dkr.ecr.us-east-1.amazonaws.com CI_REGISTRY_USER: "" CI_REGISTRY_IMAGE: 102167438644.dkr.ecr.us-east-1.amazonaws.com/code-coverage-helpers DOCKER_DRIVER: overlay2 DOCKER_TLS_CERTDIR: "" AWS_DEFAULT_REGION: us-east-1 WORDPRESS_DB_HOST: mysql WORDPRESS_DB_USER: 'root' WORDPRESS_DB_PASSWORD: 'test' MYSQL_ROOT_PASSWORD: 'test' MYSQL_ROOT_HOST: mysql MYSQL_USER: 'root' WIREMOCK_HOST: 'wiremock' WIREMOCK_PORT: '8080' include: - template: Jobs/Build.gitlab-ci.yml # https://gitlab.com/gitlab-org/gitlab-ce/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml - project: 'security/gitlab-templates' file: 'snyk-scanning.yml' .deploy_helpers: &deploy_helpers | function setup_docker() { if ! docker info; then if [[ -z "$DOCKER_HOST" ]] && [[ -n "$KUBERNETES_PORT" ]]; then export DOCKER_HOST='tcp://localhost:2375' fi fi } aws_install() { if ! hash aws 2>/dev/null then apk -v --update add \ python3 \ py3-pip \ && \ pip install --upgrade awscli fi } before_script: - *deploy_helpers - apk add build-base python3-dev .before_composer_vendorize_and_install: &before_composer_vendorize_and_install before_script: - ./bin/vendorize .before_npm_install: &before_npm_install before_script: - npm install build: stage: build image: 102167438644.dkr.ecr.us-east-1.amazonaws.com/devops/auto-devops-deploy:latest script: - aws_install - aws ecr describe-repositories --repository-names $CI_PROJECT_NAME 2>&1 > /dev/null || aws ecr create-repository --repository-name $CI_PROJECT_NAME > /dev/null - eval $(aws ecr get-login --no-include-email --region "${AWS_DEFAULT_REGION}") - setup_docker - | export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE} if [[ -z "$CI_COMMIT_TAG" ]]; then export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_SHA} else export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_TAG} fi - if [[ -n "$CI_COMMIT_TAG" ]]; then docker tag "$CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG" "$CI_APPLICATION_REPOSITORY:$CI_COMMIT_SHA"; docker push "$CI_APPLICATION_REPOSITORY:$CI_COMMIT_SHA"; fi - if [[ $CI_COMMIT_REF_NAME == "master" ]]; then docker tag "$CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG" "$CI_APPLICATION_REPOSITORY:latest"; docker push "$CI_APPLICATION_REPOSITORY:latest"; fi test:lint: stage: test image: $CI_REGISTRY_IMAGE:latest <<: *before_composer_vendorize_and_install script: - ./bin/vendorize && composer run lint #test:PHPUnit: # stage: test # image: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHA # services: # - mysql:5.6 # - name: rodolpheche/wiremock # alias: wiremock # variables: # MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' # MYSQL_ROOT_PASSWORD: 'test' # MYSQL_ROOT_HOST: '%' # MYSQL_USER: 'root' # MYSQL_DATABASE: PHPUnitTests # DB_DATABASE: PHPUnitTests # DB_PORT: '3306' # DB_HOST: mysql # DB_HOST_READER: mysql # DB_USERNAME: root # DB_PASSWORD: 'test' # WIREMOCK_HOST: 'wiremock' # WIREMOCK_PORT: '8080' # <<: *before_composer_vendorize_and_install # script: # - ./bin/install_wp_tests PHPUnitTests root test mysql:3306 && ./vendor/bin/phpunit --configuration phpunit.ci.xml --coverage-html=coverage # artifacts: # paths: # - coverage/* # reports: # junit: phpunit.ci.xml test:Karma: stage: test image: $CI_REGISTRY_IMAGE:latest <<: *before_npm_install script: - npm install && npm run ci test:Qunit: stage: test image: $CI_REGISTRY_IMAGE:latest <<: *before_npm_install script: - npm install && npm run qunit zip_for_deployment: stage: .post image: $CI_REGISTRY_IMAGE:latest <<: *before_composer_vendorize_and_install <<: *before_npm_install script: - DEPLOY=1 ./bin/vendorize && npm rebuild node-sass && npm run build && ./bin/create_build artifacts: paths: - activecampaign-for-woocommerce.zip