Merge pull request #4327 from GaryReckard/bug/7.x/return-image-hw-on-… #1475
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: Tests (full) | |
on: | |
push: | |
branches: | |
- '*.dev' | |
- 'release/**' | |
- '!release/**-alpha' | |
jobs: | |
cancel-running-tests: | |
runs-on: ubuntu-latest | |
timeout-minutes: 3 | |
steps: | |
- name: Cancel running tests | |
uses: fkirc/skip-duplicate-actions@master | |
with: | |
cancel_others: true | |
build-for-testing: | |
needs: cancel-running-tests | |
name: Build EE for testing | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Cache repository info | |
uses: actions/cache@v4 | |
with: | |
path: .git | |
key: cache-ee-git-${{ github.sha }} | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: '8.1' | |
extensions: dom, curl, sqlite, libxml, mbstring, zip, pcntl, pdo, mysql, bcmath, soap, intl, gd, exif, iconv, imagick | |
coverage: none | |
ini-values: error_log=/home/runner/php_errors.log, memory_limit=128M | |
- name: Checkout RedactorX | |
uses: actions/checkout@v4 | |
with: | |
repository: ExpressionEngine/RedactorX | |
token: ${{ secrets.ORG_ACCESS_TOKEN }} | |
path: __redactorx | |
- name: Setup node | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '10' | |
- name: Install build tool dependencies | |
working-directory: build-tools | |
run: npm install | |
- name: Get version | |
id: build_json | |
working-directory: build-tools | |
run: | | |
content=`node -pe 'JSON.parse(process.argv[1]).tag' "$(cat build.json)"` | |
echo "BUILD_VERSION=$content" >> $GITHUB_OUTPUT | |
- name: Run build process | |
working-directory: build-tools | |
env: | |
RELEASE_PRIVATE_KEY: ${{ secrets.RELEASE_PRIVATE_KEY }} | |
RELEASE_KEY_PASSWORD: ${{ secrets.RELEASE_KEY_PASSWORD }} | |
APP_REPO_PATH: ${{ github.workspace }} | |
REDACTORX_REPO_PATH: ${{ github.workspace }}/__redactorx | |
run: gulp build-app --local --nogit --head --skip-lint --skip-pro --version=${{ steps.build_json.outputs.BUILD_VERSION }} | |
- name: Rename build directory | |
working-directory: build-tools/builds | |
run: | | |
mv ExpressionEngine${{ steps.build_json.outputs.BUILD_VERSION }} ExpressionEngine | |
- name: Cache built EE version | |
uses: actions/cache@v4 | |
with: | |
path: build-tools/builds/ExpressionEngine | |
key: cache-ee-build-${{ github.sha }} | |
enableCrossOsArchive: true | |
- name: Directory Listing on Failure | |
if: failure() | |
run: | | |
ls -latr build-tools/builds | |
ls -latr build-tools/builds/ExpressionEngine | |
cypress: | |
needs: build-for-testing | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: false | |
matrix: | |
php: [7.4, 8.0] | |
os: [ubuntu-20.04] | |
containers: [0, 1, 2, 3, 4 , 5] | |
include: | |
- php: 8.1 | |
os: ubuntu-latest | |
containers: 0 | |
- php: 8.1 | |
os: ubuntu-latest | |
containers: 1 | |
- php: 8.1 | |
os: ubuntu-latest | |
containers: 2 | |
- php: 8.1 | |
os: ubuntu-latest | |
containers: 3 | |
- php: 8.1 | |
os: ubuntu-latest | |
containers: 4 | |
- php: 8.1 | |
os: ubuntu-latest | |
containers: 5 | |
- php: 8.2 | |
os: ubuntu-latest | |
containers: 0 | |
- php: 8.2 | |
os: ubuntu-latest | |
containers: 1 | |
- php: 8.2 | |
os: ubuntu-latest | |
containers: 2 | |
- php: 8.2 | |
os: ubuntu-latest | |
containers: 3 | |
- php: 8.2 | |
os: ubuntu-latest | |
containers: 4 | |
- php: 8.2 | |
os: ubuntu-latest | |
containers: 5 | |
- php: 8.3 | |
os: ubuntu-latest | |
containers: 0 | |
- php: 8.3 | |
os: ubuntu-latest | |
containers: 1 | |
- php: 8.3 | |
os: ubuntu-latest | |
containers: 2 | |
- php: 8.3 | |
os: ubuntu-latest | |
containers: 3 | |
- php: 8.3 | |
os: ubuntu-latest | |
containers: 4 | |
- php: 8.3 | |
os: ubuntu-latest | |
containers: 5 | |
name: Cypress Tests, PHP${{ matrix.php }} - ${{ matrix.os }} ${{ matrix.containers }} | |
steps: | |
- name: Use cached EE build | |
uses: actions/cache@v4 | |
with: | |
path: build-tools/builds/ExpressionEngine | |
key: cache-ee-build-${{ github.sha }} | |
fail-on-cache-miss: true | |
enableCrossOsArchive: true | |
- name: Move files to webroot | |
run: | | |
cp -R build-tools/builds/ExpressionEngine/* ./ | |
- name: Restore cached git history | |
uses: actions/cache@v4 | |
with: | |
path: .git | |
key: cache-ee-git-${{ github.sha }} | |
- name: Copy config.php | |
run: | | |
rm -f system/user/config/config.php | |
cp -f tests/cypress/support/config/config.php system/user/config/config.php | |
- name: Copy .env.php | |
run: | | |
rm -f .env.php | |
cp -f tests/cypress/support/config/.env.php .env.php | |
- name: Copy avatar file | |
run: | | |
cp -f tests/cypress/support/file-sync/images/8bit_kevin.png images/avatars/8bit_kevin.png | |
- name: Remove installer | |
run: | | |
mv system/ee/installer system/ee/_installer | |
- name: Add logs folder | |
run: | | |
mkdir system/user/logs | |
- name: Setup Permissions | |
run: | | |
sudo chmod 666 system/user/config/config.php | |
sudo chmod 777 system/user/config | |
sudo chmod -R 777 system/user/cache | |
sudo chmod -R 777 system/user/templates | |
sudo chmod -R 777 system/user/language | |
sudo chmod -R 777 system/user/logs | |
sudo chmod -R 777 tests/cypress/support/tmp | |
sudo chmod -R 777 tests/cypress/support/file-sync/uploads | |
sudo chmod -R 777 images | |
sudo chmod -R 777 themes/user | |
sudo chmod -R 777 tests/cypress/cypress/screenshots | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php }} | |
extensions: dom, curl, sqlite, libxml, mbstring, zip, pcntl, pdo, mysql, bcmath, soap, intl, gd, exif, iconv, imagick | |
coverage: none | |
ini-values: error_log=/home/runner/php_errors.log, memory_limit=128M | |
- name: Configure MySQL | |
run: | | |
sudo systemctl start mysql | |
mysql -u root -proot -e 'CREATE DATABASE `ee-test`;' | |
mysql -u root -proot -e 'SET GLOBAL sql_mode="ONLY_FULL_GROUP_BY,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION";' | |
- name: Install Testing PHP dependencies | |
working-directory: tests/cypress | |
run: composer install | |
- name: Start PHP Server | |
run: php tests/serve.php & | |
- name: Start SMTP Server | |
run: | | |
npm install -g maildev | |
maildev & | |
# - name: Get Cypress Specs | |
# run: | | |
# echo "::set-output name=SPECS::$(node tests/cypress-split.js 4 ${{ matrix.containers }})" | |
# id: specs | |
- name: Install Chrome | |
uses: browser-actions/setup-chrome@latest | |
with: | |
chrome-version: latest | |
- name: Run Cypress Tests | |
if: matrix.php != '5.6' | |
uses: cypress-io/github-action@v6 | |
with: | |
# spec: ${{ steps.specs.outputs.SPECS }} | |
browser: chrome | |
working-directory: tests/cypress | |
record: true | |
parallel: true | |
group: PHP${{ matrix.php }} | |
env: | |
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run Cypress Tests (PHP 5.6) | |
if: matrix.php == '5.6' | |
uses: cypress-io/github-action@v6 | |
with: | |
browser: chrome | |
working-directory: tests/cypress | |
config: specPattern=cypress/integration/!(updater|pro)/**.ee6.js | |
record: true | |
parallel: true | |
group: PHP${{ matrix.php }} | |
env: | |
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run Cypress Tests (Electron) | |
uses: cypress-io/github-action@v6 | |
if: matrix.php == '8.1' | |
with: | |
browser: electron | |
working-directory: tests/cypress | |
config-file: electron.cypress.config.js | |
env: | |
CYPRESS_PROJECT_ID: ${{ secrets.CYPRESS_PROJECT_ID }} | |
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }} | |
- name: Archive screenshots | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: cypress-tests-PHP${{ matrix.php }}-${{ matrix.containers }} | |
path: tests/cypress/cypress/screenshots/ | |
- name: Archive server errors | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: error.PHP${{ matrix.php }}-${{ matrix.containers }}.log | |
path: /home/runner/php_errors.log | |
- name: Archive JS errors | |
uses: actions/upload-artifact@v4 | |
if: failure() | |
with: | |
name: js-error.PHP${{ matrix.php }}-${{ matrix.containers }}.log | |
path: tests/cypress/cypress/downloads/js.log.txt | |
- name: Archive EE error logs | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ee-error-logs.PHP${{ matrix.php }}-${{ matrix.containers }} | |
path: system/user/logs/ |