stages: - test - build - deploy ## Cache composer packages between all jobs and all branches ## of this project... cache: key: one-key-to-rull-them-all paths: - composer-cache/ # Test with PHP7.4 test:php74: image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/cylab/php74:latest stage: test before_script: - cp env.gitlab-ci .env - touch storage/app/db.sqlite - COMPOSER_CACHE_DIR=composer-cache composer install --ignore-platform-reqs - php artisan key:generate - php artisan migrate script: - vendor/bin/phpunit --coverage-text --colors=never --coverage-html build/coverage - vendor/bin/phpcs artifacts: paths: # contains code coverage - build/ expire_in: 1 month build: image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:19.03.1 stage: build tags: - dind services: - docker:19.03.1-dind variables: DOCKER_TLS_CERTDIR: "/certs" IMAGE_TAG: $CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG before_script: - docker info script: - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - docker build -t gitlab.cylab.be:8081/cylab/mark-web:$CI_COMMIT_REF_SLUG . - docker tag gitlab.cylab.be:8081/cylab/mark-web:$CI_COMMIT_REF_SLUG gitlab.cylab.be:8081/cylab/mark-web:latest - docker push gitlab.cylab.be:8081/cylab/mark-web:$CI_COMMIT_REF_SLUG - docker push gitlab.cylab.be:8081/cylab/mark-web:latest build:tagged: only: - tags image: ${CI_DEPENDENCY_PROXY_GROUP_IMAGE_PREFIX}/docker:19.03.1 stage: build tags: - dind services: - docker:19.03.1-dind variables: DOCKER_TLS_CERTDIR: "/certs" before_script: - docker info script: - docker build -t cylab/mark-web:$CI_COMMIT_TAG . - docker tag cylab/mark-web:$CI_COMMIT_TAG cylab/mark-web:latest - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD - docker push cylab/mark-web:$CI_COMMIT_TAG - docker push cylab/mark-web:latest