Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • main
1 result

Target

Select target project
  • wpdesk/predators/shopify/tools/gitlab-ci
1 result
Select Git revision
  • main
1 result
Show changes
Commits on Source (4)
......@@ -2,59 +2,108 @@ variables:
PHP_ERROR_REPORTING: E_ALL
COMPOSER_ALLOW_SUPERUSER: 1
GIT_STRATEGY: fetch
PRODUCTION_SHOPIFY_API_KEY: ""
PRODUCTION_DEPLOY_HOST: s125.cyber-folks.pl
PRODUCTION_DEPLOY_PORT: 222
PRODUCTION_DEPLOY_USER: wlgmnfabmq
PRODUCTION_DEPLOY_DIR: ""
STAGE_SHOPIFY_API_KEY: ""
STAGE_DEPLOY_HOST: s125.cyber-folks.pl
STAGE_DEPLOY_PORT: 222
STAGE_DEPLOY_USER: wlgmnfabmq
STAGE_DEPLOY_DIR: ""
RUN_AFTER_DEPLOY: "pwd"
DEPLOY_AFTER_SCRIPT: ""
PREDATORS_GROUP_ID: 788
stages:
- build
- tests
- build
- deploy
- purge_cache
.template: &prepare-assets
tags:
- vendor
.template: &build-rules
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" || $CI_COMMIT_REF_NAME == "devel"'
when: always
variables:
APP_ENV: "staging"
SHOPIFY_APP_CLIENT_ID: $STAGING_SHOPIFY_APP_CLIENT_ID
MANTLE_PIXEL_TOKEN: $STAGING_MANTLE_PIXEL_TOKEN
- if: '$CI_COMMIT_TAG'
when: always
variables:
APP_ENV: "production"
SHOPIFY_APP_CLIENT_ID: $PRODUCTION_SHOPIFY_APP_CLIENT_ID
MANTLE_PIXEL_TOKEN: $PRODUCTION_MANTLE_PIXEL_TOKEN
.template: &deploy-rules
variables:
RELEASE_VERSION: $CI_JOB_ID
SHOPIFY_APP_CONFIG: "staging"
SHOPIFY_CLI_PARTNERS_TOKEN: $STAGING_SHOPIFY_CLI_PARTNERS_TOKEN
DEPLOY_DIR: $STAGING_DEPLOY_DIR
DEPLOY_USER: $STAGING_DEPLOY_USER
DEPLOY_PORT: $STAGING_DEPLOY_PORT
DEPLOY_HOST: $STAGING_DEPLOY_HOST
before_script:
- if [ "$RELEASE_VERSION" == "" ]; then echo "RELEASE_VERSION is empty" ; exit 1; fi
- if [ "$SHOPIFY_APP_CONFIG" == "" ]; then echo "SHOPIFY_APP_CONFIG is empty" ; exit 1; fi
- if [ "$SHOPIFY_CLI_PARTNERS_TOKEN" == "" ]; then echo "SHOPIFY_CLI_PARTNERS_TOKEN is empty" ; exit 1; fi
- if [ "$DEPLOY_DIR" == "" ]; then echo "DEPLOY_DIR is empty" ; exit 1; fi
- if [ "$DEPLOY_USER" == "" ]; then echo "DEPLOY_USER is empty" ; exit 1; fi
- if [ "$DEPLOY_PORT" == "" ]; then echo "DEPLOY_PORT is empty" ; exit 1; fi
- if [ "$DEPLOY_HOST" == "" ]; then echo "DEPLOY_HOST is empty" ; exit 1; fi
- echo $RELEASE_VERSION;
- echo $SHOPIFY_APP_CONFIG;
- echo $DEPLOY_DIR;
rules:
- if: '$CI_COMMIT_REF_NAME == "devel"' # Automatyczne na branchu `devel`
when: always
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"' # Manualne w kontekście Merge Request
when: manual
- if: '$CI_COMMIT_REF_NAME != "master" && $CI_COMMIT_TAG == ""' # Manualne na innych branchach (bez `master` i tagów)
when: manual
- if: '$CI_COMMIT_TAG' # Automatyczne na tagu (produkcja)
when: always
variables:
RELEASE_VERSION: $CI_COMMIT_TAG
SHOPIFY_APP_CONFIG: "production"
SHOPIFY_CLI_PARTNERS_TOKEN: $PRODUCTION_SHOPIFY_CLI_PARTNERS_TOKEN
DEPLOY_DIR: $PRODUCTION_DEPLOY_DIR
DEPLOY_USER: $PRODUCTION_DEPLOY_USER
DEPLOY_PORT: $PRODUCTION_DEPLOY_PORT
DEPLOY_HOST: $PRODUCTION_DEPLOY_HOST
build web frontend:
<<: *build-rules
image: node:latest
artifacts:
name: "assets"
paths:
- web/frontend/dist
image: node:latest
stage: build
interruptible: true
script:
- if [ "$SHOPIFY_API_KEY" == "" ]; then echo "SHOPIFY_API_KEY is empty" ; exit 1; fi
before_script:
- if [ "$APP_ENV" == "" ]; then echo "APP_ENV is empty" ; exit 1; fi
- if [ "$SHOPIFY_APP_CLIENT_ID" == "" ]; then echo "SHOPIFY_APP_CLIENT_ID is empty" ; exit 1; fi
- echo $APP_ENV;
- node -v
- cd web/frontend
- npm config set -- //${CI_SERVER_HOST}/:_authToken=${PREDATORS_DEPLOY_TOKEN}
- npm config set @octolize:registry=https://${CI_SERVER_HOST}/api/v4/packages/npm/
- npm config list
- npm ci
script:
- npm ci --prefer-offline --no-audit
- npm run build
.template: &deploy-template
build web backend:
<<: *build-rules
image: composer:latest
artifacts:
paths:
- web/backend/vendor
stage: build
script:
- php -v
- cd web/backend
- composer config gitlab-token.gitlab.wpdesk.dev gitlab-ci-token ${CI_JOB_TOKEN}
- composer install --optimize-autoloader --no-dev --no-scripts
deploy web:
<<: *deploy-rules
image: wpdesknet/amazon-svn-deploy
stage: deploy
tags:
- vendor
before_script:
script:
- echo "$DEMO_FS_SSH_KEY" | tr -d '\r' > ~/.ssh/id_rsa_demo_fs
- chmod 0600 ~/.ssh/id_rsa_demo_fs
- echo "$SSH_KNOWN_HOSTS" | tr -d '\r' > ~/.ssh/known_hosts
script:
- if [ "$DEPLOY_HOST" ] == "" ]; then echo "DEPLOY_HOST is empty" ; exit 1; fi
- if [ "$DEPLOY_USER" ] == "" ]; then echo "DEPLOY_USER is empty" ; exit 1; fi
- if [ "$DEPLOY_DIR" ] == "" ]; then echo "DEPLOY_DIR is empty" ; exit 1; fi
- if [ "$DEPLOY_PORT" ] == "" ]; then echo "DEPLOY_PORT is empty" ; exit 1; fi
- ls -al
- ssh-keyscan -H -p $DEPLOY_PORT $DEPLOY_HOST >> ~/.ssh/known_hosts
- export RSYNC_RSH="ssh -p $DEPLOY_PORT -v -i ~/.ssh/id_rsa_demo_fs"
......@@ -63,80 +112,14 @@ stages:
- ssh -p $DEPLOY_PORT -i ~/.ssh/id_rsa_demo_fs $DEPLOY_USER@$DEPLOY_HOST "cd $DEPLOY_DIR && php bin/console doctrine:migrations:migrate --no-interaction && php bin/console cache:clear && $RUN_AFTER_DEPLOY"
after_script:
- $DEPLOY_AFTER_SCRIPT
.template: &deploy-to-stage
<<: *deploy-template
variables:
DEPLOY_HOST: $STAGE_DEPLOY_HOST
DEPLOY_PORT: $STAGE_DEPLOY_PORT
DEPLOY_USER: $STAGE_DEPLOY_USER
DEPLOY_DIR: $STAGE_DEPLOY_DIR
dependencies:
- composer install
- prepare assets stage
- build web backend
- build web frontend
.template: &deploy-to-production
<<: *deploy-template
variables:
DEPLOY_HOST: $PRODUCTION_DEPLOY_HOST
DEPLOY_PORT: $PRODUCTION_DEPLOY_PORT
DEPLOY_USER: $PRODUCTION_DEPLOY_USER
DEPLOY_DIR: $PRODUCTION_DEPLOY_DIR
dependencies:
- composer install
- prepare assets production
composer install:
artifacts:
name: "vendor"
paths:
- web/backend/vendor
image: composer:latest
tags:
- vendor
stage: build
interruptible: true
deploy app:
<<: *deploy-rules
image: node:latest
stage: deploy
script:
- php -v
- cd web/backend
- composer config gitlab-token.gitlab.wpdesk.dev gitlab-ci-token ${CI_JOB_TOKEN}
- composer install --optimize-autoloader --no-dev --no-scripts
prepare assets stage:
<<: *prepare-assets
except:
- master
- tags
variables:
SHOPIFY_API_KEY: $STAGE_SHOPIFY_API_KEY
MANTLE_APP_TOKEN: $STAGE_MANTLE_APP_TOKEN
prepare assets production:
<<: *prepare-assets
only:
- master
- tags
variables:
SHOPIFY_API_KEY: $PRODUCTION_SHOPIFY_API_KEY
MANTLE_APP_TOKEN: $PRODUCTION_MANTLE_APP_TOKEN
deploy to stage:
<<: *deploy-to-stage
only:
- devel
deploy to stage manual:
<<: *deploy-to-stage
when: manual
deploy to production:
<<: *deploy-to-production
only:
- tags
deploy to production manual:
<<: *deploy-to-production
only:
- master
- tags
when: manual
- npm ci
- npm run deploy -- --force --version=$RELEASE_VERSION --config=$SHOPIFY_APP_CONFIG
\ No newline at end of file