diff --git a/README.md b/README.md index 1246b1b5cdc608b64e8bb2c713f466db7762eb64..b5e45869d772e0dc55768f7d82705e27dd174616 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,8 @@ # GitLab CI for WordPress -Shared `.gitlab-ci.yml` components for WordPress plugins and themes. +Shared `.gitlab-ci.yml` components for WordPress. + +## Features + +* `plugins`: PHPUnit, PHPCS, and deploys to WordPress.org. +* `pantheon`: deploy a site to Pantheon via their git integration. diff --git a/pantheon/default.yml b/pantheon/default.yml new file mode 100644 index 0000000000000000000000000000000000000000..dcbb121a12e423a4306f0cb57ea8bc5e1f004e7c --- /dev/null +++ b/pantheon/default.yml @@ -0,0 +1,74 @@ +stages: + - test + - build + +variables: + GIT_SUBMODULE_STRATEGY: recursive + +test-deps: + stage: test + image: containers.ethitter.com:443/docker/images/php:7.3 + before_script: + - curl -sL https://deb.nodesource.com/setup_10.x | bash - + - apt-get install -y nodejs + script: + - cd ${CI_PROJECT_DIR}/wp-content/mu-plugins/solr-power + - composer install --no-dev --no-ansi -n + - sed -i '/vendor\//d' .gitignore + - sed -i '/assets\/*/d' .gitignore + - npm install + - ./node_modules/grunt/bin/grunt + - rm -rf ./node_modules + +git-push: + stage: build + image: containers.ethitter.com:443/docker/images/php:7.3 + only: + - main + allow_failure: false + before_script: + - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )' + - eval $(ssh-agent -s) + - ssh-add <(echo "$GIT_SSH_PRIV_KEY") + + - git config --global user.email "$GIT_USER_EMAIL" + - git config --global user.name "$GIT_USER_NAME" + + - mkdir -p ~/.ssh + - echo "$SSH_KNOWN_HOSTS" >> ~/.ssh/known_hosts + - ssh-keygen -R "$PANTHEON_GIT_HOST" + - ssh-keyscan -t rsa -p "$PANTHEON_GIT_HOST_PORT" "$PANTHEON_GIT_HOST" >> ~/.ssh/known_hosts + + - composer install --no-dev --no-ansi -n -d wp-content/mu-plugins/solr-power + - sed -i '/vendor\//d' wp-content/mu-plugins/solr-power/.gitignore + - sed -i '/assets\/*/d' wp-content/mu-plugins/solr-power/.gitignore + + - curl -sL https://deb.nodesource.com/setup_10.x | bash - + - apt-get install -y nodejs + + - cd ${CI_PROJECT_DIR}/wp-content/mu-plugins/solr-power + - npm install + - ./node_modules/grunt/bin/grunt + - rm -rf ./node_modules + # TODO: add Terminus to handle pushes and cache clearing. + script: + - cd ${CI_PROJECT_DIR} + - ls -la + - rm -rf ${CI_PROJECT_DIR}/.git/ + - rm -rf ${CI_PROJECT_DIR}/.gitignore + - rm -rf ${CI_PROJECT_DIR}/.gitmodules + - rm -rf ${CI_PROJECT_DIR}/.gitlab-ci.yml + - rm -rf ${CI_PROJECT_DIR}/README.md + - rm -rf ${CI_PROJECT_DIR}/readme.txt + - ls -la + + - git init + - git remote add pantheon "$PANTHEON_GIT_REMOTE" + - git status -s + - git add -A + - git status -s + - git commit -m "Build from $CI_COMMIT_SHORT_SHA" + - git diff --exit-code + - git status -s + - git log -n 1 + - git push --force pantheon master