name: 'Tests' on: push: branches: - master pull_request: paths-ignore: - 'docs/**' jobs: lint: name: 'lint (node: ${{ matrix.node }})' runs-on: ubuntu-latest strategy: matrix: node: [12, 14, 16] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2-beta with: node-version: ${{ matrix.node }} - uses: ./.github/actions/install-modules - name: Run lint run: yarn run -s lint unit_back: name: 'unit_back (node: ${{ matrix.node }})' needs: [lint] runs-on: ubuntu-latest env: CODECOV_TOKEN: ${{ secrets.codecov }} strategy: matrix: node: [12, 14, 16] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2-beta with: node-version: ${{ matrix.node }} - uses: ./.github/actions/install-modules with: globalPackages: codecov - name: Run tests run: yarn run -s test:unit --coverage && codecov -C -F unit unit_front: name: 'unit_front (node: ${{ matrix.node }})' needs: [lint] runs-on: ubuntu-latest env: CODECOV_TOKEN: ${{ secrets.codecov }} strategy: matrix: node: [12, 14, 16] steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2-beta with: node-version: ${{ matrix.node }} - uses: ./.github/actions/install-modules with: globalPackages: codecov - name: Build run: yarn build - name: Run test run: yarn run -s test:front && codecov -C -F front e2e_ce_pg: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[CE] E2E (postgres, node: ${{ matrix.node }})' strategy: matrix: node: [12, 14, 16] max-parallel: 3 services: postgres: # Docker Hub image image: postgres # Provide the password for postgres env: POSTGRES_USER: strapi POSTGRES_PASSWORD: strapi POSTGRES_DB: strapi_test # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: # Maps tcp port 5432 on service container to the host - 5432:5432 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2-beta with: node-version: ${{ matrix.node }} - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=postgres --dbhost=localhost --dbport=5432 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' e2e_ce_mysql: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[CE] E2E (mysql, node: ${{ matrix.node }})' strategy: matrix: node: [12, 14, 16] max-parallel: 3 services: mysql: image: mysql options: >- --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e MYSQL_ROOT_PASSWORD=strapi -e MYSQL_ROOT_HOST="%" -e MYSQL_USER=strapi -e MYSQL_PASSWORD=strapi -e MYSQL_DATABASE=strapi_test --entrypoint sh mysql -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password" ports: # Maps tcp port 5432 on service container to the host - 3306:3306 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: yarn - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=mysql --dbhost=localhost --dbport=3306 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' e2e_ce_mysql_5: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[CE] E2E (mysql:5 , node: ${{ matrix.node }})' strategy: matrix: node: [12, 14, 16] max-parallel: 3 services: mysql: image: mysql:5 options: >- --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e MYSQL_ROOT_PASSWORD=strapi -e MYSQL_ROOT_HOST="%" -e MYSQL_USER=strapi -e MYSQL_PASSWORD=strapi -e MYSQL_DATABASE=strapi_test --entrypoint sh mysql -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password" ports: # Maps tcp port 5432 on service container to the host - 3306:3306 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: yarn - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=mysql --dbhost=localhost --dbport=3306 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' e2e_ce_sqlite: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[CE] E2E (sqlite, node: ${{ matrix.node }})' strategy: matrix: node: [12, 14, 16] max-parallel: 3 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: yarn - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=sqlite --dbfile=./tmp/data.db' # EE e2e_ee_pg: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[EE] E2E (postgres, node: ${{ matrix.node }})' if: github.event.pull_request.head.repo.full_name == github.repository && !(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]') env: STRAPI_LICENSE: ${{ secrets.strapiLicense }} strategy: matrix: node: [12, 14, 16] max-parallel: 3 services: postgres: # Docker Hub image image: postgres # Provide the password for postgres env: POSTGRES_USER: strapi POSTGRES_PASSWORD: strapi POSTGRES_DB: strapi_test # Set health checks to wait until postgres has started options: >- --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: # Maps tcp port 5432 on service container to the host - 5432:5432 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: yarn - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=postgres --dbhost=localhost --dbport=5432 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' runEE: true e2e_ee_mysql: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[EE] E2E (mysql, node: ${{ matrix.node }})' if: github.event.pull_request.head.repo.full_name == github.repository && !(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]') env: STRAPI_LICENSE: ${{ secrets.strapiLicense }} strategy: matrix: node: [12, 14, 16] max-parallel: 3 services: mysql: image: mysql options: >- --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 -e MYSQL_ROOT_PASSWORD=strapi -e MYSQL_ROOT_HOST="%" -e MYSQL_USER=strapi -e MYSQL_PASSWORD=strapi -e MYSQL_DATABASE=strapi_test --entrypoint sh mysql -c "exec docker-entrypoint.sh mysqld --default-authentication-plugin=mysql_native_password" ports: # Maps tcp port 5432 on service container to the host - 3306:3306 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: yarn - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=mysql --dbhost=localhost --dbport=3306 --dbname=strapi_test --dbusername=strapi --dbpassword=strapi' runEE: true e2e_ee_sqlite: runs-on: ubuntu-latest needs: [lint, unit_back, unit_front] name: '[EE] E2E (sqlite, node: ${{ matrix.node }})' if: github.event.pull_request.head.repo.full_name == github.repository && !(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]') env: STRAPI_LICENSE: ${{ secrets.strapiLicense }} strategy: matrix: node: [12, 14, 16] max-parallel: 3 steps: - uses: actions/checkout@v2 - uses: actions/setup-node@v2 with: node-version: ${{ matrix.node }} cache: yarn - uses: ./.github/actions/install-modules - uses: ./.github/actions/run-e2e-tests with: dbOptions: '--dbclient=sqlite --dbfile=./tmp/data.db' runEE: true