diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 219a6c1..a3a0b84 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -1,24 +1,84 @@ -include: - - project: 'ldc-web/shared-ci' - ref: 'main' - file: 'lint/lint.yml' - - project: 'ldc-web/shared-ci' - ref: 'main' - file: 'security/security.yml' - - project: 'ldc-web/shared-ci' - ref: 'main' - file: 'build/build.yml' - - project: 'ldc-web/shared-ci' - ref: 'main' - file: 'test/test.yml' - - project: 'ldc-web/shared-ci' - ref: 'main' - file: 'deploy/deploy.yml' +composer-build: + stage: build + image: $CI_REGISTRY/ldc-web/projets/ldc-web-images-docker/ldcweb-qa-8.2:latest + before_script: + - composer config gitlab-token.lab.s-web.fr $CI_DEPLOY_USER $CI_DEPLOY_PASSWORD + cache: + paths: + - vendor/ + script: + - composer install --no-dev --optimize-autoloader --classmap-authoritative --no-scripts + artifacts: + expose_as: 'vendor' + paths: + - vendor + allow_failure: false + rules: + - if: $CI_COMMIT_TAG != null && $APP_ENV != null + +npm-build: + stage: build + image: $CI_REGISTRY/ldc-web/projets/ldc-web-images-docker/ldcweb-qa-8.2:latest + before_script: + - git submodule update init --recursive + - php artisan theme:switch $APP_THEME_NAME + - npm config set @ldc-web:registry https://${CI_SERVER_HOST}/api/v4/packages/npm/ + - npm config set -- '//${CI_SERVER_HOST}/api/v4/packages/npm/:_authToken' "${CI_DEPLOY_PASSWORD}" + - npm install + cache: + paths: + - public/ + script: + - npm run prod + artifacts: + expose_as: 'front-build' + paths: + - public/ + allow_failure: false + dependencies: + - composer-build + needs: + - job: composer-build + optional: true + rules: + - if: $CI_COMMIT_TAG != null && $APP_ENV != null + +.docker-build: + stage: build + image: + name: gcr.io/kaniko-project/executor:v1.9.1-debug + entrypoint: [""] + script: + - /kaniko/executor + --context "${CI_PROJECT_DIR}" + --dockerfile "${CI_PROJECT_DIR}/Dockerfile" + --destination "${IMAGE_TAG}" + allow_failure: false + dependencies: + - npm-build + - composer-build + needs: + - job: npm-build + optional: true + - job: composer-build + optional: true + +docker-build:staging: + extends: .docker-build + variables: + IMAGE_TAG: "${CI_REGISTRY_IMAGE}:s-${APP_THEME_NAME}-${CI_PIPELINE_IID}" + rules: + - if: $CI_COMMIT_TAG != null && $APP_ENV == "staging" + + +docker-build:production: + extends: .docker-build + variables: + IMAGE_TAG: "${CI_REGISTRY_IMAGE}:p-${APP_THEME_NAME}-${CI_PIPELINE_IID}" + rules: + - if: $CI_COMMIT_TAG != null && $APP_ENV == "production" stages: - - lint - - security - build - - test - deploy diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..a836b6e --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM registry.s-web.fr/ldc-web/projets/ldc-web-images-docker/ldcweb-production-8.2:latest +COPY --chown=www-data:www-data . /app/srcs +USER root +RUN chmod -R 755 /app/srcs/storage +USER www-data \ No newline at end of file