Skip to content

Commit 7bdaf4e

Browse files
committed
ci: add composer auto package tests
1 parent 376665b commit 7bdaf4e

File tree

3 files changed

+131
-1
lines changed

3 files changed

+131
-1
lines changed

.github/workflows/tests.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,3 +99,32 @@ jobs:
9999
run: composer install --no-interaction ${{ matrix.composer-options }}
100100
- name: Run resume from parse diff tests
101101
run: ./tests/resume-from-parse-test.sh
102+
103+
test-composer-package-auto-test:
104+
name: Run auto-package tests with php ${{ matrix.php-version }} on ${{ matrix.os }}
105+
runs-on: ${{ matrix.os }}
106+
continue-on-error: ${{ matrix.experimental }}
107+
strategy:
108+
fail-fast: false
109+
matrix:
110+
php-version: ["7.2", "7.3", "7.4", "8.0"]
111+
os: [ubuntu-latest]
112+
experimental: [false]
113+
composer-options: ['']
114+
include:
115+
- { php-version: '8.1', experimental: true, os: ubuntu-latest, composer-options: '--ignore-platform-reqs' }
116+
steps:
117+
- uses: actions/checkout@v2
118+
- name: Use php ${{ matrix.php-version }}
119+
uses: shivammathur/setup-php@v2
120+
with:
121+
php-version: ${{ matrix.php-version }}
122+
- name: Cache module
123+
uses: actions/cache@v2
124+
with:
125+
path: ~/.composer/cache/
126+
key: composer-cache
127+
- name: Run composer package self tests
128+
env:
129+
COMPOSER_CLI_OPTIONS: ${{ matrix.composer-options }}
130+
run: ./tests/composer-package-auto-test.sh
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
#!/bin/sh
2+
3+
set -e
4+
5+
ROOT="$(realpath "$(dirname $0)/../")"
6+
7+
echo "Running in: ${ROOT}"
8+
9+
recreateSetup() {
10+
git archive HEAD --output=./doctum-repository-composer-package-auto-test.tar
11+
cd "${TEMP_FOLDER}"
12+
tar -xf "${ROOT}/doctum-repository-composer-package-auto-test.tar" --directory "${TEMP_FOLDER_REPO}"
13+
rm "${ROOT}/doctum-repository-composer-package-auto-test.tar"
14+
cp "${ROOT}/tests/phar/data/doctum-absolute.conf.php" "${TEMP_FOLDER}/doctum-absolute.conf.php"
15+
mkdir "${TEMP_FOLDER}/src"
16+
cp -rp "${ROOT}/tests/phar/data/src/" "${TEMP_FOLDER}/src"
17+
printf '{
18+
"repositories": [
19+
{
20+
"type": "path",
21+
"url": "%s",
22+
"options": {
23+
"versions": {
24+
"code-lts/doctum": "5.x-dev"
25+
},
26+
"symlink": false
27+
}
28+
}
29+
],
30+
"require": {
31+
"code-lts/doctum": "5.x-dev"
32+
}
33+
}' "${TEMP_FOLDER_REPO}" > "${TEMP_FOLDER}/composer.json"
34+
composer update ${COMPOSER_CLI_OPTIONS}
35+
rm -rf "${TEMP_FOLDER_REPO}"
36+
cd - > /dev/null
37+
}
38+
39+
cleanWorkspace() {
40+
rm -r "${TEMP_FOLDER}/build"
41+
rm -r "${TEMP_FOLDER}/cache"
42+
}
43+
44+
checkRender() {
45+
if [ ! -f "${TEMP_FOLDER}/build/html/index.html" ]; then
46+
echo "Missing file ${TEMP_FOLDER}/build/html/index.html"
47+
exit 1
48+
fi
49+
}
50+
51+
checkPackage() {
52+
if [ -d "${TEMP_FOLDER}/vendor/code-lts/doctum/.github" ]; then
53+
echo "Found folder ${TEMP_FOLDER}/vendor/code-lts/doctum/.github"
54+
exit 1
55+
fi
56+
57+
if [ -d "${TEMP_FOLDER}/vendor/code-lts/doctum/tests" ]; then
58+
echo "Found folder ${TEMP_FOLDER}/vendor/code-lts/doctum/tests"
59+
exit 1
60+
fi
61+
62+
if [ ! -d "${TEMP_FOLDER}/vendor/code-lts/doctum/bin" ]; then
63+
echo "Missing folder ${TEMP_FOLDER}/vendor/code-lts/doctum/bin"
64+
exit 1
65+
fi
66+
}
67+
68+
TEMP_FOLDER="$(mktemp -d /tmp/doctum-composer-package-auto-test.XXXXXXXXX)"
69+
TEMP_FOLDER_REPO="$(mktemp -d /tmp/doctum-composer-package-auto-test-repo.XXXXXXXXX)"
70+
71+
echo "Using temp folder: ${TEMP_FOLDER}"
72+
echo "Using temp repo folder: ${TEMP_FOLDER_REPO}"
73+
74+
recreateSetup
75+
76+
cd "${TEMP_FOLDER}"
77+
78+
echo "Moved to: $PWD"
79+
80+
checkPackage
81+
82+
echo "Running parse"
83+
"${TEMP_FOLDER}/vendor/bin/doctum.php" parse -v --ignore-parse-errors --no-progress --no-ansi --force ./doctum-absolute.conf.php
84+
85+
echo "Running render"
86+
"${TEMP_FOLDER}/vendor/bin/doctum.php" render -v --ignore-parse-errors --no-progress --no-ansi --force ./doctum-absolute.conf.php
87+
88+
checkRender
89+
cleanWorkspace
90+
91+
echo "Running update"
92+
"${TEMP_FOLDER}/vendor/bin/doctum.php" update -v --ignore-parse-errors --no-progress --no-ansi --force ./doctum-absolute.conf.php
93+
94+
checkRender
95+
cleanWorkspace
96+
97+
cd - > /dev/null
98+
99+
rm -rf "${TEMP_FOLDER}"

tests/resume-from-parse-test.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ cleanWorkspace
1515

1616
TEMP_FOLDER="$(mktemp -d /tmp/doctum-resume-parse-test.XXXXXXXXX)"
1717

18-
echo "Using temp foler: ${TEMP_FOLDER}"
18+
echo "Using temp folder: ${TEMP_FOLDER}"
1919

2020
echo "Running parse"
2121
./bin/doctum.php parse -v --ignore-parse-errors --no-progress --no-ansi --force tests/phar/data/doctum-absolute.conf.php
@@ -44,3 +44,5 @@ diff --unified --color=always --minimal --suppress-common-lines --recursive test
4444
if [ $? -eq 0 ]; then
4545
echo "The build directories where the same"
4646
fi
47+
48+
rm -rf "${TEMP_FOLDER}"

0 commit comments

Comments
 (0)