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

selenium: wondering if one CI file might work or if a split is better #1017

Merged
merged 25 commits into from May 2, 2021
Merged
88 changes: 57 additions & 31 deletions .github/workflows/ci.yml
Expand Up @@ -9,9 +9,37 @@ on:


jobs:
metadata:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.generate-matrix.outputs.matrix }}
steps:
- name: generate matrix
id: generate-matrix
run: |
echo "repo $GITHUB_REPOSITORY "
MATRIX_INCLUDE_JSON+="["

if [ x"$GITHUB_REPOSITORY" = "xfilesender/filesenderuici" ]; then
MATRIX_INCLUDE_JSON+="{\"testsuite\": \"selenium\", \"db\": \"mysql\", \"travis_sauce_connect\": \"true\"}"
else
MATRIX_INCLUDE_JSON+="{\"testsuite\": \"cron\", \"db\": \"pgsql\", \"travis_sauce_connect\": \"false\",\"sauce_username\": \"\"}"
MATRIX_INCLUDE_JSON+="{\"testsuite\": \"core\", \"db\": \"pgsql\", \"travis_sauce_connect\": \"false\",\"sauce_username\": \"\"}"
MATRIX_INCLUDE_JSON+="{\"testsuite\": \"core\", \"db\": \"mysql\", \"travis_sauce_connect\": \"false\",\"sauce_username\": \"\"}"
MATRIX_INCLUDE_JSON+="{\"testsuite\": \"dataset\", \"db\": \"pgsql\", \"travis_sauce_connect\": \"false\",\"sauce_username\": \"\"}"
fi

MATRIX_INCLUDE_JSON="${MATRIX_INCLUDE_JSON//\}\{/\}, \{}"
MATRIX_INCLUDE_JSON+="]"
MATRIX_JSON="{\"include\": ${MATRIX_INCLUDE_JSON}}"
echo "${MATRIX_JSON}"
echo "::set-output name=matrix::${MATRIX_JSON}"


build:
name: ${{ matrix.testsuite }}-${{ matrix.db }}
runs-on: Ubuntu-20.04
needs: metadata

env:
DB: ${{ matrix.db }}
Expand All @@ -20,28 +48,11 @@ jobs:
SAUCE_DONT_VERIFY_CERTS: 1
php_extensions: mbstring, pdo_mysql, pdo_pgsql, pgsql, mysqlnd
php_cache_key: cache_setup_php_key_v8
php_version: '7.2'
php_version: '7.4'
TESTINGUI: 0

strategy:
matrix:
include:
- testsuite: "cron"
db: "pgsql"
travis_sauce_connect: false
sauce_username: ""
- testsuite: "core"
db: "pgsql"
travis_sauce_connect: false
sauce_username: ""
- testsuite: "core"
db: "mysql"
travis_sauce_connect: false
sauce_username: ""
- testsuite: "dataset"
db: "pgsql"
travis_sauce_connect: false
sauce_username: ""

matrix: ${{ fromJson(needs.metadata.outputs.matrix) }}



Expand Down Expand Up @@ -128,7 +139,7 @@ jobs:

- name: Install composer.json packages
run: |
composer self-update
composer self-update --1
composer update --no-interaction


Expand Down Expand Up @@ -161,13 +172,14 @@ jobs:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432

- uses: saucelabs/sauce-connect-action@v1.1.2
if: ${{ env.TESTSUITE == 'selenium' }}
with:
username: ${{ secrets.SAUCE_USERNAME }}
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
tunnelIdentifier: cisel${{ matrix.db }}
noSSLBumpDomains: file_sender.app

# - uses: saucelabs/sauce-connect-action@v1.1.2
# with:
# username: ${{ secrets.SAUCE_USERNAME }}
# accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
# tunnelIdentifier: github-action-tunnel
# noSSLBumpDomains: file_sender.app



Expand All @@ -176,8 +188,7 @@ jobs:


- name: Run Primary Tests (MAIN JOB)
env:
TEST_SECRET: ${{ secrets.TestSecret }}
if: ${{ env.TESTSUITE != 'selenium' }}
run: |
if [ "$TESTSUITE" = "cron" ]; then
echo "testing task/cron job"
Expand All @@ -187,8 +198,23 @@ jobs:
echo "cron job complete"
fi
echo "testing $TESTSUITE on database $DB "
sudo -u www-data id
sudo -u www-data ./vendor/bin/phpunit --configuration ./unittests/config_tests_filesender.xml --testsuite=$TESTSUITE
if [ "$TESTSUITE" != "selenium" ]; then
sudo -u www-data id
sudo -u www-data ./vendor/bin/phpunit --configuration ./unittests/config_tests_filesender.xml --testsuite=$TESTSUITE
fi

- name: Run Primary Selenium Tests (MAIN JOB)
if: ${{ env.TESTSUITE == 'selenium' }}
env:
TEST_SECRET: ${{ secrets.TestSecret }}
SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
SAUCE_DONT_VERIFY_CERTS: 1
run: |
echo "testing $TESTSUITE on database $DB "
sudo -u www-data --preserve-env=SAUCE_USERNAME,SAUCE_ACCESS_KEY,SAUCE_TUNNEL_IDENTIFIER,SAUCE_DONT_VERIFY_CERTS ./vendor/bin/phpunit --configuration ./unittests/config_tests_filesender.xml --testsuite=$TESTSUITE



- name: Debug Information
if: ${{ always() }}
Expand Down