Admin module Bootstrap5 conversion #558
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI | |
on: | |
push: | |
branches: [ develop ] | |
pull_request: | |
branches: [ develop, master ] | |
workflow_dispatch: | |
env: | |
TARGET_PHP: 8.1 | |
TARGET_MYSQL: 8 | |
DB_HOST: mysql-8 | |
DB_PORT: 3306 | |
DB_USERNAME: cmfive_test | |
DB_PASSWORD: cmfive_test | |
DB_DATABASE: cmfive_test | |
jobs: | |
# Lint | |
php-codesniffer74: | |
name: PHP CS 7.4 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Get phpcs | |
run: wget https://raw.githubusercontent.com/2pisoftware/cmfive-boilerplate/master/phpcs.xml | |
- name: Codesniffer | |
uses: pipeline-components/[email protected] | |
with: | |
options: -s -p --colors --extensions=php --runtime-set testVersion 7.4 | |
php-codesniffer80: | |
name: PHP CS 8.0 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Get phpcs | |
run: wget https://raw.githubusercontent.com/2pisoftware/cmfive-boilerplate/master/phpcs.xml | |
- name: Codesniffer | |
uses: pipeline-components/[email protected] | |
with: | |
options: -s -p --colors --extensions=php --runtime-set testVersion 8.0 | |
php-codesniffer81: | |
name: PHP CS 8.1 | |
runs-on: ubuntu-22.04 | |
steps: | |
- name: Get phpcs | |
run: wget https://raw.githubusercontent.com/2pisoftware/cmfive-boilerplate/master/phpcs.xml | |
- name: Codesniffer | |
uses: pipeline-components/[email protected] | |
with: | |
options: -s -p --colors --extensions=php --runtime-set testVersion 8.1 | |
# Test | |
run_test: | |
# Checkout Boilerplate | |
name: Unit/Acceptance tests | |
runs-on: ubuntu-22.04 | |
needs: [ php-codesniffer74, php-codesniffer80, php-codesniffer81 ] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
repository: '2pisoftware/cmfive-boilerplate' | |
ref: 'feature/PlaywrightMigration' | |
# Pre-requisites Prepare Cmfive Environment | |
- name: Setup cmfive Test Environment | |
run: | | |
cp .codepipeline/test_agent/configs/test_agent-config.php config.php | |
docker-compose -f test_agent-compose.yml up --build -d | |
sleep 5 | |
docker ps | |
docker exec -t nginx-php8.1 bash -c "chmod -R 777 ./*" | |
docker exec -t nginx-php8.1 bash -c "rm -rf ./system && ln -s ./composer/vendor/2pisoftware/cmfive-core/system ./system" | |
echo CoreInstall | |
docker exec -t nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php install core ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}} 8.1" | |
echo DBCreate | |
docker exec -t mysql-8 bash -c "mysql -h 127.0.0.1 -u'root' -p'root' --execute \"CREATE DATABASE cmfive_test; CREATE USER cmfive_test@'%' IDENTIFIED BY 'cmfive_test'; GRANT ALL PRIVILEGES ON cmfive_test.* TO cmfive_test@'%'; GRANT PROCESS ON *.* TO cmfive_test@'%'; FLUSH PRIVILEGES;\"" | |
docker exec -t nginx-php8.1 bash -c "chmod -R 777 cache/ storage/ uploads/" | |
docker start selenium314; | |
docker ps | |
- name: Inject configs into cmfive Test Environment | |
run: | | |
echo "Inheriting test_agent config from PIPELINE" | |
echo 'Config::append("tests", ["testrunner" => "ENABLED"]);' >> config.php | |
- name: Prepare cmfive Test Backend | |
run: | | |
docker exec nginx-php8.1 bash -c "cd ./test/ && sh ./.install/install.sh && chmod -R 777 /var/www/html/test/Codeception/tests" | |
- name: Apply cmfive Test Config to Core install | |
run: | | |
echo SeedingCmfive | |
docker exec nginx-php8.1 bash -c "cat config.php" | |
# docker exec -t nginx-php8.1 bash -c "php cmfive.php install core ${GITHUB_HEAD_REF:-${GITHUB_REF#refs/heads/}}" | |
docker exec -t nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php seed encryption" | |
docker exec -t nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php install migrations" | |
docker exec -t nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php seed admin admin admin [email protected] admin admin" | |
docker exec -t nginx-php8.1 bash -c "chmod -R 777 cache/ storage/ uploads/" | |
- name: Prepare cmfive Test DB | |
run: | | |
docker exec -t nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php testDB setup; exit \$?"; | |
# Build new layout | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Build new designs | |
run: | | |
docker exec -t nginx-php8.1 bash -c "chmod -R 777 system/templates/base" | |
cd system/templates/base | |
npm i | |
npm run prod | |
# Run Unit Tests | |
- name: "Run unit tests" | |
run: | | |
docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests unit all; exit \$?" | |
if [ $? -gt 0 ]; then | |
echo "Admin module tests failed" | |
fi | |
# Setup playwright | |
- name: Setup Playwright | |
run: | | |
cd test/playwright | |
npm ci | |
npx playwright install --with-deps | |
# Run Acceptance Tests | |
- name: "Confirm Codeception setup" | |
run: | | |
docker exec nginx-php8.1 bash -c "ls -lah -R /var/www/html/test/Codeception/tests && cat /var/www/html/test/Codeception/*.yml && cat /var/www/html/test/Codeception/tests/*.yml" | |
- name: "Run admin module tests" | |
run: | | |
npm run test --module="admin" --reporter="github" | |
if [ $? -gt 0 ]; then | |
echo "Admin module tests failed" | |
fi | |
- name: "Run channels module tests" | |
run: | | |
npm run test --module="channel" --reporter="github" | |
if [ $? -gt 0 ]; then | |
echo "Channels module tests failed" | |
fi | |
- name: "Run form module tests" | |
run: | | |
docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests module form silent; exit \$?" | |
if [ $? -gt 0 ]; then | |
echo "Form module tests failed" | |
fi | |
# - name: "Run inbox module tests" | |
# run: | | |
# docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests module inbox silent; exit \$?" | |
# if [ $? -gt 0 ]; then | |
# echo "Inbox module tests failed" | |
# fi | |
- name: "Run report module tests" | |
run: | | |
docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests module report silent; exit \$?" | |
if [ $? -gt 0 ]; then | |
echo "Report module tests failed" | |
fi | |
- name: "Run tag module tests" | |
run: | | |
docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests module tag silent; exit \$?" | |
if [ $? -gt 0 ]; then | |
echo "Tag module tests failed" | |
fi | |
- name: "Run task module tests" | |
run: | | |
docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests module task silent; exit \$?" | |
if [ $? -gt 0 ]; then | |
echo "Task module tests failed" | |
fi | |
- name: "Run timelog module tests" | |
run: | | |
docker exec nginx-php8.1 bash -c "DB_HOST=mysql-8 DB_USERNAME=cmfive_test DB_PASSWORD=cmfive_test DB_DATABASE=cmfive_test DB_PORT=3306 php cmfive.php tests module timelog silent; exit \$?" | |
if [ $? -gt 0 ]; then | |
echo "Timelog module tests failed" | |
fi | |
- name: Stop containers | |
# the containers should be stopped regardless of | |
# the test result | |
if: always() | |
run: docker-compose down | |
# Store Test Results | |
- name: Test results | |
if: ${{ failure() }} || ${{ success() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-output | |
path: | | |
test/Codeception/tests/_output/ | |
storage/log/ | |
test/playwright/test-results/ | |
test/playwright/playwright-report/ | |
retention-days: 5 |