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..e02b46e4aea5ecd3e09476341a8dcd58741287d1 --- /dev/null +++ b/pantheon/default.yml @@ -0,0 +1,85 @@ +stages: + - test + - build + +variables: + GIT_SUBMODULE_STRATEGY: recursive + +test-deps: + stage: test + image: containers.ethitter.com:443/docker/images/php:7.3 + 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 + # TODO: add build steps here once things are converted to submodules. + # 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 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: + 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 + # TODO: add build steps here once things are converted to submodules. + # 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