Skip to content

Commit 19ff2ff

Browse files
authored
Merge pull request #4 from Metadrop/tests-github-actions-revamped
Tests GitHub actions revamped
2 parents b12f8c9 + 24fd834 commit 19ff2ff

File tree

3 files changed

+65
-30
lines changed

3 files changed

+65
-30
lines changed

.github/workflows/tests.yml

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,62 @@
11
name: tests
22
on:
33
pull_request:
4+
paths-ignore:
5+
- "**.md"
46
push:
5-
branches: [ main ]
7+
branches:
8+
- main
9+
- 'tests**'
10+
paths-ignore:
11+
- "**.md"
612

713
schedule:
8-
- cron: '25 08 * * *'
14+
- cron: '32 01 * * 0'
915

16+
# Manual trigger with optional debug using SSH.
17+
# See https://github.com/mxschmitt/action-tmate
18+
# This action is already included in ddev/github-action-add-on-test@v2.
1019
workflow_dispatch:
1120
inputs:
1221
debug_enabled:
1322
type: boolean
14-
description: Debug with tmate
23+
description: Debug with tmate (SSH access)
1524
required: false
1625
default: false
1726

18-
# This is required for "gautamkrishnar/keepalive-workflow"
1927
permissions:
20-
contents: write
28+
contents: read
2129

2230
jobs:
31+
# Job for code quality checks.
32+
code_quality:
33+
runs-on: ubuntu-latest
34+
steps:
35+
- name: "Check out code"
36+
uses: actions/checkout@v3
37+
- name: "ShellChecker"
38+
uses: a5k-actions/shellchecker@v0
39+
with:
40+
severity: error
41+
42+
# Actual functional tests.
2343
tests:
2444
strategy:
2545
matrix:
2646
ddev_version: [stable, HEAD]
2747
fail-fast: false
28-
2948
runs-on: ubuntu-latest
3049

3150
steps:
51+
# Sets Bash in a strict fashion.
52+
- name: Action Setup Bash
53+
uses: release-engineers/action-setup-bash@v1
54+
55+
# Official DDEV action to test add-ons.
3256
- uses: ddev/github-action-add-on-test@v2
3357
with:
3458
ddev_version: ${{ matrix.ddev_version }}
3559
token: ${{ secrets.GITHUB_TOKEN }}
36-
debug_enabled: ${{ github.event.inputs.debug_enabled }}
37-
addon_repository: ${{ env.GITHUB_REPOSITORY }}
38-
addon_ref: ${{ env.GITHUB_REF }}
60+
debug_enabled: ${{ inputs.debug_enabled }}
61+
addon_repository: ${{ github.repository }}
62+
addon_ref: ${{ github.ref }}

install.yaml

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,5 @@ post_install_actions:
99
- test -d ${DDEV_APPROOT}/docs || mkdir -p ${DDEV_APPROOT}/docs
1010
- test -d ${DDEV_APPROOT}/docs/docs || mkdir -p ${DDEV_APPROOT}/docs/docs
1111
- test -f ${DDEV_APPROOT}/docs/mkdocs.yml || cp docs/mkdocs.yml ${DDEV_APPROOT}/docs/mkdocs.yml
12-
- test -f ${DDEV_APPROOT}/docs/docs/index.md || echo "## Welcome to Mkdocs" > ${DDEV_APPROOT}/docs/docs/index.md
12+
- test -f ${DDEV_APPROOT}/docs/docs/index.md || echo "## Welcome to MkDocs" > ${DDEV_APPROOT}/docs/docs/index.md
1313
- echo "Mkdocs install finished. Please restart ddev with 'ddev restart'"
14-

tests/test.bats

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,55 @@
1+
#!/usr/bin/env bats
2+
3+
# Standard DDEV add-on setup code taken from official DDEV add-ons.
14
setup() {
25
set -eu -o pipefail
3-
export DIR="$( cd "$( dirname "$BATS_TEST_FILENAME" )" >/dev/null 2>&1 && pwd )/.."
4-
export TESTDIR=~/tmp/test-mkdocs
5-
mkdir -p $TESTDIR
6-
export PROJNAME=test-mkdocs
7-
export DDEV_NON_INTERACTIVE=true
8-
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1 || true
6+
export GITHUB_REPO=Metadrop/ddev-aljibe-assistant
7+
TEST_BREW_PREFIX="$(brew --prefix 2>/dev/null || true)"
8+
export BATS_LIB_PATH="${BATS_LIB_PATH}:${TEST_BREW_PREFIX}/lib:/usr/lib/bats"
9+
bats_load_library bats-assert
10+
bats_load_library bats-file
11+
bats_load_library bats-support
12+
13+
# shellcheck disable=SC2155
14+
export DIR="$(cd "$(dirname "${BATS_TEST_FILENAME}")/.." >/dev/null 2>&1 && pwd)"
15+
# shellcheck disable=SC2155
16+
export PROJNAME="test-$(basename "${GITHUB_REPO}")"
17+
18+
mkdir -p ~/tmp
19+
# shellcheck disable=SC2155
20+
export TESTDIR=$(mktemp -d ~/tmp/${PROJNAME}.XXXXXX)
21+
export DDEV_NONINTERACTIVE=true
22+
export DDEV_NO_INSTRUMENTATION=true
23+
ddev delete -Oy "${PROJNAME}" >/dev/null 2>&1 || true
24+
925
cd "${TESTDIR}"
10-
ddev config --project-name=${PROJNAME}
11-
ddev get metadrop/ddev-aljibe
12-
ddev start -y >/dev/null
13-
ddev aljibe-assistant --auto
26+
run ddev config --project-name="${PROJNAME}" --project-tld=ddev.site
27+
assert_success
28+
run ddev start -y
29+
assert_success
1430
}
1531

1632
health_checks() {
1733
echo "Checking mkdocs health" >&3
18-
ddev exec wget http://mkdocs:8000 -q -O - | grep Welcome | grep -m1 "Welcome to Mkdocs"
34+
run ddev exec wget http://mkdocs:8000 -q -O -
35+
assert_output --partial "Welcome to MkDocs"
1936
}
2037

2138
check_build_mkdocs() {
2239
echo "Checking mkdocs build" >&3
2340
ddev mkdocs build
2441
}
2542

26-
t() {
27-
set -eu -o pipefail
28-
cd ${TESTDIR} || ( printf "unable to cd to ${TESTDIR}\n" && exit 1 )
29-
ddev delete -Oy ${PROJNAME} >/dev/null 2>&1
30-
[ "${TESTDIR}" != "" ] && rm -rf ${TESTDIR}
31-
}
32-
3343
@test "Install from folder" {
3444
set -eu -o pipefail
3545
cd ${TESTDIR}
3646
echo "# ddev get ${DIR} with project ${PROJNAME} in ${TESTDIR} ($(pwd))" >&3
3747
ddev get ${DIR}
3848
echo "Installed add-on from directory, restarting ddev" >&3
39-
ddev restart
49+
ddev restart -y
4050
echo "Testing mkdocs" >&3
51+
4152
health_checks
53+
4254
check_build_mkdocs
4355
}

0 commit comments

Comments
 (0)