From f4301a8d8271e40c685eed647f02d20c87785c7a Mon Sep 17 00:00:00 2001 From: Bart Jaskulski <bjaskulski@protonmail.com> Date: Thu, 5 Dec 2024 16:40:14 +0100 Subject: [PATCH] feat: rewrite deploying to demo with parallel function Signed-off-by: Bart Jaskulski <bjaskulski@protonmail.com> --- gitlab-ci-1.2.yml | 1 + includes/deploy.yml | 62 +------------------------------- includes/deploy/demo.yml | 77 ++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 61 deletions(-) create mode 100644 includes/deploy/demo.yml diff --git a/gitlab-ci-1.2.yml b/gitlab-ci-1.2.yml index 968b3ad..c8fea6f 100644 --- a/gitlab-ci-1.2.yml +++ b/gitlab-ci-1.2.yml @@ -38,6 +38,7 @@ include: - '/includes/tests/codeception-parallel.yml' - '/includes/tests/integration.yml' - '/includes/deploy.yml' + - '/includes/deploy/demo.yml' - '/includes/mixins/.after-codeception.yml' - '/includes/mixins/.composer-auth.yml' - '/includes/mixins/.skip-mr.yml' diff --git a/includes/deploy.yml b/includes/deploy.yml index 6feb289..c3c8630 100644 --- a/includes/deploy.yml +++ b/includes/deploy.yml @@ -10,7 +10,7 @@ only: - tags -.template: &job-build-to_deploy +build to deploy: image: wpdesknet/phpunit-woocommerce:0-0 stage: pre-deploy tags: @@ -47,7 +47,6 @@ - rm -rf composer.lock auth.json phpcs.xml.dist phpunit-integration.xml phpunit-unit.xml composer.phar wp-cli.phar functional tmp_artifacts .tmp tools codeception.dist.yml .env.testing wp-install.sh - rm -rf phpcs.xml.dist phpunit-integration.xml phpunit-unit.xml wp-cli.phar functional tmp_artifacts scoper.inc.php phpstan.dist phpstan.neon.dist - rm -rf assets-src package.json package-lock.json .babelrc webpack.mix.js webpack.config.js README.md - - find ./vendor -type d -name "tests" -exec rm -rf {} \; 2>/dev/null || (exit 0) - find ./vendor -name "LICENSE" -delete - find ./vendor -name "README.md" -delete @@ -59,9 +58,6 @@ - $IS_LIBRARY - $IS_NPM_LIBRARY -build to deploy: - <<: *job-build-to_deploy - plugin zip: image: wpdesknet/phpunit-woocommerce:0-0 stage: pre-deploy @@ -125,62 +121,6 @@ deploy to license: - $IS_LIBRARY - $IS_NPM_LIBRARY -deploy to demo NET: - <<: *job-deploy-template - before_script: - - eval "$(ssh-agent -s)" - - chmod 600 "$GLOBAL_SSH_PRIV_KEY" - - ssh-add "$GLOBAL_SSH_PRIV_KEY" - - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' > ~/.ssh/known_hosts - script: - - rsync -rlDe 'ssh -p 40022' --delete release/${CI_PROJECT_NAME}/ serwer296287@serwer296287.lh.pl:/home/platne/serwer296287/public_html/demo.wpdesk.org/wp-content/plugins/${CI_PROJECT_NAME} - - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <${CI_PROJECT_URL}|${CI_PROJECT_NAME}> zdeployowany do demo w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}' - environment: - name: wpdesk demo net - url: https://demo.wpdesk.org - except: - variables: - - $IS_LIBRARY - - $IS_NPM_LIBRARY - -deploy to demo PL: - <<: *job-deploy-template - before_script: - - eval "$(ssh-agent -s)" - - chmod 600 "$GLOBAL_SSH_PRIV_KEY" - - ssh-add "$GLOBAL_SSH_PRIV_KEY" - - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' > ~/.ssh/known_hosts - script: - - rsync -rlDe 'ssh -p 40022' --delete release/${CI_PROJECT_NAME}/ serwer296287@serwer296287.lh.pl:/home/platne/serwer296287/public_html/demo.wpdesk.pl/wp-content/plugins/${CI_PROJECT_NAME} - - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <https://gitlab.com/wpdesk/${CI_PROJECT_NAME}|${CI_PROJECT_NAME}> zdeployowany do demo PL w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}' - environment: - name: wpdesk demo pl - url: https://demo.wpdesk.pl - except: - variables: - - $IS_LIBRARY - - $IS_NPM_LIBRARY - -deploy to demo octolize: - <<: *job-deploy-template - before_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: - - echo ${WPDESK_CI_VERSION} - - ssh-keyscan -H -p 222 s125.cyber-folks.pl >> ~/.ssh/known_hosts - - rsync -v --delete -rlDe 'ssh -p 222 -v -i ~/.ssh/id_rsa_demo_fs' ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME} wlgmnfabmq@s125.cyber-folks.pl:/home/wlgmnfabmq/domains/demo.octolize.com/public_html/wp-content/plugins - - rsync -v --delete -rlDe 'ssh -p 222 -v -i ~/.ssh/id_rsa_demo_fs' ${CI_PROJECT_DIR}/release/${CI_PROJECT_NAME} wlgmnfabmq@s125.cyber-folks.pl:/home/wlgmnfabmq/domains/stage.demo.octolize.com/public_html/wp-content/plugins - - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <${CI_PROJECT_URL}|${CI_PROJECT_NAME}> zdeployowany do demo.octolize.com w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}' - environment: - name: demo octolize - url: https://demo.octolize.com - except: - variables: - - $IS_LIBRARY - - $IS_NPM_LIBRARY - deploy to repository: <<: *job-deploy-template cache: diff --git a/includes/deploy/demo.yml b/includes/deploy/demo.yml new file mode 100644 index 0000000..7f54f65 --- /dev/null +++ b/includes/deploy/demo.yml @@ -0,0 +1,77 @@ +deploy:demo: + image: gitlab.wpdesk.dev:5050/wpdesk/docker-tests/amazon-svn-deploy:24.09 + variables: + DEPLOY_TARGETS: + value: "demo.wpdesk.org,demo.wpdesk.pl" + description: "Override this variable in project's .gitlab-ci.yml to support other servers. List supported targets separated by `,`. You may also use short name for deploy target, like \"wpdesk,octolize\" to support both wpdesk and both octolize targets. Currently supported targets: demo.wpdesk.org, demo.wpdesk.pl, demo.octolize.com, stage.demo.octolize.com, demo.flexibleinvoices." + environment: + name: $DEPLOY_SERVER + url: https://$DEPLOY_SERVER + stage: deploy + tags: + - deploy + needs: + - build to deploy + retry: 2 + parallel: + matrix: + - DEPLOY_SERVER: + - demo.wpdesk.org + - demo.wpdesk.pl + - demo.octolize.com + - stage.demo.octolize.com + - demo.flexibleinvoices.com + rules: + - if: $IS_LIBRARY || $IS_NPM_LIBRARY + when: never + # Run only for tagged deployments + - if: $CI_COMMIT_TAG == null + when: never + # Omit if server is not in deploy targets + - if: $DEPLOY_SERVER !~ $DEPLOY_TARGETS + when: never + # Specific server overrides + ## demo.wpdesk.pl + - if: $DEPLOY_SERVER == 'demo.wpdesk.pl' + variables: + SSH_DSN: serwer296287@serwer296287.lh.pl:/home/platne/serwer296287/public_html/demo.wpdesk.pl/wp-content/plugins + SSH_PORT: 40022 + ## demo.wpdesk.org + - if: $DEPLOY_SERVER == 'demo.wpdesk.org' + variables: + SSH_DSN: serwer296287@serwer296287.lh.pl:/home/platne/serwer296287/public_html/demo.wpdesk.org/wp-content/plugins + SSH_PORT: 40022 + ## demo.octolize.com + - if: $DEPLOY_SERVER == 'demo.octolize.com' + variables: + SSH_DSN: wlgmnfabmq@s125.cyber-folks.pl:/home/wlgmnfabmq/domains/demo.octolize.com/public_html/wp-content/plugins + SSH_PORT: 222 + GLOBAL_SSH_PRIV_KEY: $DEMO_FS_SSH_KEY + ## stage.demo.octolize.com + - if: $DEPLOY_SERVER == 'stage.demo.octolize.com' + variables: + SSH_DSN: wlgmnfabmq@s125.cyber-folks.pl:/home/wlgmnfabmq/domains/stage.demo.octolize.com/public_html/wp-content/plugins + SSH_PORT: 222 + GLOBAL_SSH_PRIV_KEY: $DEMO_FS_SSH_KEY + ## demo.flexibleinvoices.com + - if: $DEPLOY_SERVER == 'demo.flexibleinvoices.com' + variables: + SSH_DSN: serwer296287@serwer296287.lh.pl:/home/platne/serwer296287/public_html/demo.flexibleinvoices.com/wp-content/plugins + SSH_PORT: 40022 + before_script: + - eval "$(ssh-agent -s)" + - chmod 600 "$GLOBAL_SSH_PRIV_KEY" + - ssh-add "$GLOBAL_SSH_PRIV_KEY" + - echo "$SSH_KNOWN_HOSTS" | tr -d '\r' > ~/.ssh/known_hosts + script: + - rsync -rlDe "ssh -p $SSH_PORT" --delete "$CI_PROJECT_DIR/release/$CI_PROJECT_NAME" $SSH_DSN + - 'curl -X POST --data-urlencode "payload={\"text\": \"Projekt <${CI_PROJECT_URL}|${CI_PROJECT_NAME}> zdeployowany do <${CI_ENVIRONMENT_URL}|${CI_ENVIRONMENT_NAME}> w wersji ${CI_COMMIT_REF_NAME}\", }" https://hooks.slack.com/services/${SLACK_AUTH}' + +deploy to demo octolize: + <<: *job-deploy-template + before_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: + - ssh-keyscan -H -p 222 s125.cyber-folks.pl >> ~/.ssh/known_hosts -- GitLab