Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[#1137] Moved docs publishing to GHA. #1139

Merged
merged 2 commits into from
Jan 13, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 0 additions & 47 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -616,40 +616,6 @@ jobs:
# the main workflow are separated from this one.
DREVOPS_CI_DB_CACHE_BRANCH: drevops-dev-didi-ii

#-----------------------------------------------------------------------------
# Publish docs to docs.drevops.com
# @todo Move this to GitHub Actions.
#-----------------------------------------------------------------------------
drevops-dev-deploy-docs:
<<: *runner_config
steps:
- checkout
- *step_process_codebase
- *step_setup_remote_docker
- *step_setup_docker_network
- add_ssh_keys:
fingerprints:
- "22:fe:71:f4:65:8d:cb:81:9c:31:09:4e:03:0b:33:b7"
- run:
name: Build and test docs
command: |
cd .drevops/docs
ahoy build
ahoy lint
ahoy test
- run:
name: Publish docs
command: |
cd .drevops/docs
export DOCS_PUBLISH_REMOTE_URL=https://github.com/drevops/drevops_docs.git
export DOCS_PUBLISH_SRC_TAG=${CIRCLE_TAG:-}
export DOCS_PUBLISH_SRC_BRANCH=${CIRCLE_BRANCH:-}
export DOCS_PUBLISH_SSH_FINGERPRINT="22:fe:71:f4:65:8d:cb:81:9c:31:09:4e:03:0b:33:b7"
export DOCS_PUBLISH_CANARY_BRANCH="develop"
export DOCS_PUBLISH_COMMIT_MESSAGE="Automatically pushed from drevops/drevops"
export DOCS_PUBLISH_GIT_EMAIL="[email protected]"
./.utils/publish.sh

#-----------------------------------------------------------------------------
# Publish installer to install.drevops.com
# @todo Move this to GitHub Actions.
Expand Down Expand Up @@ -810,19 +776,6 @@ workflows:
tags:
only: /^[0-9]+(\.[0-9]+)+(-rc[0-9]+)?$/

# Build and publish DrevOps docs.
- drevops-dev-deploy-docs:
requires:
- build
- drevops-dev-test
- drevops-dev-test-workflow
filters:
branches:
# 'main' or any branch with 'docs' in the name.
only: /^main$|^develop$|.*docs.*/
tags:
only: /^[0-9]+(\.[0-9]+)+(-rc[0-9]+)?$/

# Publish DrevOps installer.
- drevops-dev-deploy-installer:
requires:
Expand Down
12 changes: 12 additions & 0 deletions .drevops/docs/.utils/.aspell.en.pws
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ PHPMD
PHPStan
PHPUnit
PRs
PSR
Packagist
PhpStorm
Profiler
Expand Down Expand Up @@ -80,10 +81,13 @@ Upgradable
VueJS
WIP
Webhook
Webserver
Xdebug
YAML
YOURORG
YOURSITE
acquia
amazee
amazeeio
assignees
autotesting
Expand All @@ -95,10 +99,12 @@ changelog
checkstyle
codebase
commandfiles
config
contrib
cron
customisations
dev
docblock
drush
env
fe
Expand All @@ -116,21 +122,27 @@ md
newrelic
npm
onboarding
overcomplicated
php
phpcs
pre
readme
roadmap
runtime
runtime's
sanitization
scaffolded
scalability
sql
suboptimal
toc
tokenizes
toolset
txt
uat
uncommented
unmapped
untrusted
upgradable
url
webhook
Expand Down
1 change: 1 addition & 0 deletions .drevops/docs/.utils/composer.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "drevops/docs",
"require": {
"php": ">=8.1",
"alexskrypnyk/shellvar": "^0.5"
},
"authors": [
Expand Down
6 changes: 4 additions & 2 deletions .drevops/docs/.utils/composer.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

16 changes: 8 additions & 8 deletions .drevops/docs/.utils/lint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@
set -eu
[ "${DREVOPS_DEBUG-}" = "1" ] && set -x

CUR_DIR="$(dirname "${BASH_SOURCE[0]}")"
cur_dir="$(dirname "${BASH_SOURCE[0]}")"

DICTIONARY="${CUR_DIR}/.aspell.en.pws"
dictionary="${cur_dir}/.aspell.en.pws"

targets=()
while IFS= read -r -d $'\0'; do
targets+=("${REPLY}")
done < <(
find \
"${CUR_DIR}/.." \
"${cur_dir}/.." \
-type f \
\( -name "*.md" \) \
-not -path "*vendor*" -not -path "*node_modules*" \
-print0
)

echo -n "==> Validating dictionary."
if head -1 "${DICTIONARY}" | grep -q "personal_ws-1.1 en 28"; then
echo -n "==> Validating dictionary... "
if head -1 "${dictionary}" | grep -q "personal_ws-1.1 en 28"; then
echo "OK"
else
echo "ERROR: invalid dictionary format"
Expand All @@ -45,14 +45,14 @@ for file in "${targets[@]}"; do
# Remove HTML.
sed -E 's/<([^<]+)>//g' |
# Remove code blocks.
sed -n '/\`\`\`/,/\`\`\`/ !p' |
sed '/^[[:space:]]*```/,/^[[:space:]]*```/d' |
# Remove inline code.
sed -n '/\`/,/\`/ !p' |
sed 's/`[^`]*`//g' |
# Remove anchors.
sed -E 's/\[.+\]\([^\)]+\)//g' |
# Remove links.
sed -E 's/http(s)?:\/\/([^ ]+)//g' |
aspell --lang=en --encoding=utf-8 --personal="${DICTIONARY}" list | tee /dev/stderr | [ "$(wc -l)" -eq 0 ]
aspell --lang=en --encoding=utf-8 --personal="${dictionary}" list | tee /dev/stderr | [ "$(wc -l)" -eq 0 ]

if [ "$?" -ne 0 ]; then
exit 1
Expand Down
2 changes: 2 additions & 0 deletions .drevops/docs/.utils/publish.sh
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,8 @@ push_to_remote() {
# Directory with files to push to remote.
local src_dir="${1:-}"

echo "Pushing ${src_dir} to remote."

configure_ssh

# Temp directory to use for the local repo.
Expand Down
2 changes: 1 addition & 1 deletion .drevops/docs/.utils/terminalizer/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ npm install -g terminalizer
terminalizer record <recording-name>
```

2. Update produced YML file with settings from `example.yml`.
2. Update produced YAML file with settings from `example.yml`.

3. Render
```shell
Expand Down
2 changes: 1 addition & 1 deletion .drevops/docs/content/workflows/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ variable as a comma-separated list of one or multiple supported deployment types

After setting up the deployment integration, you can begin using it by adding
the `$DREVOPS_DEPLOY_PROCEED` variable with a value of `1` in the CircleCI user
interface. This variable is used as a failsafe to prevent accidental
interface. This variable is used as a fail-safe to prevent accidental
deployments while setting up DrevOps.

## Using deployments
Expand Down
2 changes: 1 addition & 1 deletion .drevops/docs/content/workflows/variables.md
Original file line number Diff line number Diff line change
Expand Up @@ -445,7 +445,7 @@ Defined in: `ACQUIA ENVIRONMENT`

Overwrite existing database if it exists.

Usually set to `0` in deployed environments and can be temporary set to `1` for<br />a specific deployment.<br />Set this to `1` in .env.local to override when developing localy.
Usually set to `0` in deployed environments and can be temporary set to `1` for<br />a specific deployment.<br />Set this to `1` in .env.local to override when developing locally.

Default value: `UNDEFINED`

Expand Down
3 changes: 3 additions & 0 deletions .drevops/installer/src/Command/InstallCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -567,6 +567,9 @@ protected function processDrevopsInternal($dir) {
static::rmdirRecursive("$dir/.drevops/tests");
static::rmdirRecursive("$dir/scripts/drevops/utils");
@unlink("$dir/.github/FUNDING.yml");
foreach (glob("$dir/.github/drevops-*.yml") as $file) {
@unlink($file);
}

// Remove other unhandled tokenized comments.
$this->removeTokenLine('#;<', $dir);
Expand Down
1 change: 1 addition & 0 deletions .drevops/tests/bats/_helper.bash
Original file line number Diff line number Diff line change
Expand Up @@ -414,6 +414,7 @@ assert_files_present_drevops() {
assert_dir_not_exists ".drevops"
assert_file_not_exists "LICENSE"
assert_file_not_exists ".github/FUNDING.yml"
assert_file_not_exists ".github/drevops-publish-docs.yml"
assert_file_not_contains ".circleci/config.yml" "drevops-dev-test"
assert_file_not_contains ".circleci/config.yml" "drevops-dev-test-workflow"
assert_file_not_contains ".circleci/config.yml" "drevops-dev-test-deployment"
Expand Down
2 changes: 1 addition & 1 deletion .env
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ DREVOPS_PROVISION_USE_PROFILE=0
#
# Usually set to 0 in deployed environments and can be temporary set to 1 for
# a specific deployment.
# Set this to 1 in .env.local to override when developing localy.
# Set this to 1 in .env.local to override when developing locally.
DREVOPS_PROVISION_OVERRIDE_DB=0

# Skip database sanitization.
Expand Down
57 changes: 57 additions & 0 deletions .github/workflows/drevops-publish-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# This action is used for DrevOps maintenance. It will not be used in the scaffolded project.
name: Publish DrevOps documentation

on:
push:
tags:
- '*'
branches:
- develop
- '**docs**'

jobs:
drevops-publish-docs:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install Ahoy
run: os=$(uname -s | tr [:upper:] [:lower:]) && architecture=$(case $(uname -m) in x86_64 | amd64) echo "amd64" ;; aarch64 | arm64 | armv8) echo "arm64" ;; *) echo "amd64" ;; esac) && sudo wget -q https://github.com/ahoy-cli/ahoy/releases/latest/download/ahoy-bin-$os-$architecture -O /usr/local/bin/ahoy && sudo chown $USER /usr/local/bin/ahoy && chmod +x /usr/local/bin/ahoy

- name: Install Aspell
run: sudo apt-get update -y && sudo apt-get install -y aspell

- name: Setup PHP
uses: shivammathur/setup-php@v2

- name: Build site
working-directory: .drevops/docs
run: ahoy build

- name: Check spelling
working-directory: .drevops/docs
run: ahoy lint

- name: Run tests
working-directory: .drevops/docs
run: ahoy test

- name: Setup SSH private key
uses: webfactory/[email protected]
with:
ssh-private-key: ${{ secrets.DOCS_PUBLISH_SSH_PRIVATE_KEY }}

- name: Publish docs
run: |
cd .drevops/docs
export [email protected]:drevops/drevops_docs.git
export DOCS_PUBLISH_SRC_TAG=${{ github.ref_type == 'tag' && github.ref_name || '' }}
export DOCS_PUBLISH_SRC_BRANCH=${{ github.ref_type == 'branch' && github.ref_name || '' }}
export DOCS_PUBLISH_CANARY_BRANCH="develop"
export DOCS_PUBLISH_COMMIT_MESSAGE="Automatically pushed from drevops/drevops"
export DOCS_PUBLISH_GIT_EMAIL="[email protected]"
./.utils/publish.sh
40 changes: 40 additions & 0 deletions .github/workflows/drevops-test-docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# This action is used for DrevOps maintenance. It will not be used in the scaffolded project.
name: Test DrevOps documentation

on:
push:
tags:
- '**'
branches:
- '**'

jobs:
drevops-test-docs:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Install Ahoy
run: os=$(uname -s | tr [:upper:] [:lower:]) && architecture=$(case $(uname -m) in x86_64 | amd64) echo "amd64" ;; aarch64 | arm64 | armv8) echo "arm64" ;; *) echo "amd64" ;; esac) && sudo wget -q https://github.com/ahoy-cli/ahoy/releases/latest/download/ahoy-bin-$os-$architecture -O /usr/local/bin/ahoy && sudo chown $USER /usr/local/bin/ahoy && chmod +x /usr/local/bin/ahoy

- name: Install Aspell
run: sudo apt-get update -y && sudo apt-get install -y aspell

- name: Setup PHP
uses: shivammathur/setup-php@v2

- name: Build site
working-directory: .drevops/docs
run: ahoy build

- name: Check spelling
working-directory: .drevops/docs
run: ahoy lint

- name: Run tests
working-directory: .drevops/docs
run: ahoy test