Skip to content

Bump cypress from 5.3.0 to 13.3.1 in /generators/client/templates/common #736

Bump cypress from 5.3.0 to 13.3.1 in /generators/client/templates/common

Bump cypress from 5.3.0 to 13.3.1 in /generators/client/templates/common #736

Workflow file for this run

#
# Copyright 2013-2020 the original author or authors from the JHipster project.
#
# This file is part of the JHipster project, see https://www.jhipster.tech/
# for more information.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
name: Webflux
on:
push:
branches-ignore:
- 'dependabot/**'
- 'skip_ci*'
pull_request:
branches:
- '*'
env:
JHI_RUN_APP: 1
JHI_JDK: 11
JHI_LIB_REPO: https://github.com/jhipster/jhipster.git
JHI_LIB_BRANCH: master
JHI_GEN_REPO: https://github.com/jhipster/generator-jhipster.git
JHI_GEN_BRANCH: master
SPRING_OUTPUT_ANSI_ENABLED: ALWAYS
SPRING_JPA_SHOW_SQL: false
JHI_DISABLE_WEBPACK_LOGS: true
JHI_E2E_HEADLESS: true
JHI_HOME: ${{ github.workspace }}/generator-jhipster
JHI_SCRIPTS: ${{ github.workspace }}/generator-jhipster/test-integration/scripts
JHI_FOLDER_APP: ${{ github.workspace }}/app
JHI_FOLDER_UAA: ${{ github.workspace }}/uaa
NG_CLI_ANALYTICS: 'false'
JHI_GITHUB_CI: true
FORCE_COLOR: 1
jobs:
applications:
name: ${{ matrix.app-type }}
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ${{ github.workspace }}/app
if: >-
!contains(github.event.head_commit.message, '[angular]') &&
!contains(github.event.head_commit.message, '[react]') &&
!contains(github.event.head_commit.message, '[vue]') &&
!contains(github.event.pull_request.title, '[angular]') &&
!contains(github.event.pull_request.title, '[react]') &&
!contains(github.event.pull_request.title, '[vue]') &&
!contains(github.event.head_commit.message, '[ci skip]') &&
!contains(github.event.head_commit.message, '[skip ci]') &&
!contains(github.event.pull_request.title, '[skip ci]') &&
!contains(github.event.pull_request.title, '[ci skip]') &&
(github.event.pull_request.draft == false || !contains(github.event.pull_request.labels.*.name, 'pr: skip-ci')) &&
!contains(github.event.pull_request.user.login, 'dependabot')
timeout-minutes: 40
strategy:
fail-fast: false
matrix:
node_version: [12.18.3]
os: [ubuntu-20.04]
app-type:
- webflux-mongodb
- webflux-mongodb-es-session
- webflux-mongodb-oauth2
- webflux-gateway-jwt
- webflux-gateway-oauth2
# - webflux-couchbase
# - webflux-couchbase-es-oauth2
- webflux-psql
- webflux-mysql
- webflux-mariadb-gradle
include:
- app-type: webflux-mongodb
entity: mongodb
profile: prod
war: 0
e2e: 1
testcontainers: 1
- app-type: webflux-mongodb-es-session
entity: mongodb
profile: prod
war: 0
e2e: 1
testcontainers: 1
- app-type: webflux-mongodb-oauth2
entity: mongodb
profile: prod
war: 0
e2e: 1
testcontainers: 1
- app-type: webflux-gateway-jwt
entity: none
profile: prod
war: 0
e2e: 1
testcontainers: 1
- app-type: webflux-gateway-oauth2
entity: none
profile: prod
war: 0
e2e: 1
testcontainers: 1
# - app-type: webflux-couchbase
# entity: couchbase
# profile: prod
# war: 0
# e2e: 1
# - app-type: webflux-couchbase-es-oauth2
# entity: couchbase
# profile: prod
# war: 0
# e2e: 1
- app-type: webflux-psql
entity: sql
profile: prod
war: 0
protractor: 1
testcontainers: 1
- app-type: webflux-mysql
entity: sqlfull
profile: prod
war: 0
e2e: 1
testcontainers: 0
- app-type: webflux-mariadb-gradle
entity: sqlfull
profile: prod
war: 0
e2e: 1
testcontainers: 1
env:
JHI_ENTITY: ${{ matrix.entity }}
JHI_APP: ${{ matrix.app-type }}
JHI_PROFILE: ${{ matrix.profile }}
JHI_WAR: ${{ matrix.war }}
JHI_TESTCONTAINERS: ${{ matrix.testcontainers }}
JHI_E2E: ${{ matrix.e2e }}
steps:
#----------------------------------------------------------------------
# Install all tools and check configuration
#----------------------------------------------------------------------
- name: 'SETUP: Checkout generator-jhipster'
uses: actions/checkout@v2
with:
path: generator-jhipster
fetch-depth: 2
- name: 'SETUP: Create required structure'
run: |
mkdir app
mkdir -p base/generator-jhipster
mkdir -p base/app
mkdir -p base/uaa
working-directory: ${{ github.workspace }}
- uses: actions/[email protected]
with:
node-version: ${{ matrix.node_version }}
- uses: actions/setup-java@v1
with:
java-version: '11.x'
- name: 'SETUP: Get chrome/chromedriver version'
id: chromedriver-version
run: |
CHROME_VERSION=$(google-chrome --version | cut -f 3 -d ' ' | cut -d '.' -f 1) \
&& CHROMEDRIVER_VERSION=$(curl --location --fail --retry 3 http://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION}) \
&& echo "::set-output name=version::$CHROMEDRIVER_VERSION"
- name: 'SETUP: Get date'
id: get-date
run: |
echo "::set-output name=date::$(/bin/date -u "+%Y%m%d")"
- name: 'SETUP: load npm cache'
uses: actions/cache@v2
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ matrix.app-type }}-${{ steps.get-date.outputs.date }}-${{ hashFiles('generator-jhipster/package-lock.json', 'generator-jhipster/**/package.json.ejs') }}
restore-keys: |
${{ runner.os }}-node-${{ matrix.app-type }}-${{ steps.get-date.outputs.date }}-
- name: 'SETUP: load maven cache'
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ matrix.app-type }}-${{ steps.get-date.outputs.date }}-${{ hashFiles('generator-jhipster/**/pom.xml.ejs') }}
restore-keys: |
${{ runner.os }}-maven-${{ matrix.app-type }}-${{ steps.get-date.outputs.date }}-
- name: 'SETUP: load gradle cache'
if: contains(matrix.app-type, 'gradle')
uses: actions/cache@v2
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ matrix.app-type }}-${{ hashFiles('generator-jhipster/**/build.gradle.ejs') }}
restore-keys: |
${{ runner.os }}-gradle-${{ matrix.app-type }}-
- name: 'SETUP: load e2e cache'
if: matrix.e2e == 1
uses: actions/cache@v2
with:
path: |
~/.cache/selenium/
~/.cache/Cypress/
key: ${{ runner.os }}-e2e-${{ matrix.app-type }}-${{ steps.chromedriver-version.outputs.version }}-${{ hashFiles('generator-jhipster/**/package.json.ejs') }}
restore-keys: |
${{ runner.os }}-e2e-${{ matrix.app-type }}-${{ steps.chromedriver-version.outputs.version }}-
- name: 'ENV: display variables'
run: $JHI_SCRIPTS/01-display-configuration.sh
- name: 'TOOLS: configure tools installed by the system'
run: $JHI_SCRIPTS/03-system.sh
- name: 'TOOLS: configure git'
run: $JHI_SCRIPTS/04-git-config.sh
#----------------------------------------------------------------------
# Install JHipster and generate project+entities
#----------------------------------------------------------------------
- name: 'GENERATION: install JHipster'
run: $JHI_SCRIPTS/10-install-jhipster.sh
- name: 'GENERATION: entities'
run: $JHI_SCRIPTS/11-generate-entities.sh
- name: 'GENERATION: project'
run: $JHI_SCRIPTS/12-generate-project.sh
- name: 'GENERATION: replace version in generated project'
run: $JHI_SCRIPTS/13-replace-version-generated-project.sh
- name: 'GENERATION: jhipster info'
run: $JHI_SCRIPTS/14-jhipster-info.sh
#----------------------------------------------------------------------
# Detect changes against base commit
#----------------------------------------------------------------------
- name: 'MERGE: Install base generator-jhipster'
continue-on-error: true
id: base-checkout
if: github.event.pull_request
working-directory: ${{ github.workspace }}/base/generator-jhipster
run: |
git clone ${{ github.workspace }}/generator-jhipster .
git checkout @~1
git log
npm uninstall -g generator-jhipster
npm install -g .
- name: 'MERGE: merge base project'
continue-on-error: true
id: base-app
if: steps.base-checkout.outcome == 'success'
working-directory: ${{ github.workspace }}/base/app
run: |
$JHI_SCRIPTS/11-generate-entities.sh
# 11-generate-entities.sh removes current dir, we need to switch to the new one
cd ../app
$JHI_SCRIPTS/12-generate-project.sh --skip-install --skip-git
env:
JHI_FOLDER_APP: ${{ github.workspace }}/base/app
JHI_FOLDER_UAA: ${{ github.workspace }}/base/uaa
- name: 'MERGE: merge uaa project diff'
continue-on-error: true
id: uaa-is-equal
if: steps.base-app.outcome == 'success'
working-directory: ${{ github.workspace }}/base/uaa
run: |
# Copy git repository (clone without the files)
cp -a ${{ github.workspace }}/uaa/.git ../uaa/ || exit 0
git log
# File keystore.p12 always changes
# File package-lock.json is not generated
# Verify if the generated source has changed
git add .
git -c color.ui=always diff -R --cached --exit-code -- . ':!package-lock.json' ':!src/main/resources/config/tls/keystore.p12' || echo "::set-output name=has-changes::true"
- name: 'MERGE: merge project diff'
continue-on-error: true
id: merge-is-equal
if: steps.base-app.outcome == 'success'
working-directory: ${{ github.workspace }}/base/app
run: |
# Copy git repository (clone without the files)
cp -a ${{ github.workspace }}/app/.git .
git log
# File keystore.p12 always changes
# File package-lock.json is not generated
# Verify if the generated source has changed
git add .
git -c color.ui=always diff -R --cached --exit-code -- . ':!package-lock.json' ':!src/main/resources/config/tls/keystore.p12' || echo "::set-output name=has-changes::true"
- name: 'MERGE: tests should be skipped'
id: tests-should-be-skipped
if: >
steps.uaa-is-equal.outcome == 'success' &&
steps.uaa-is-equal.outputs.has-changes != 'true' &&
steps.merge-is-equal.outcome == 'success' &&
steps.merge-is-equal.outputs.has-changes != 'true'
run: echo 'Skipping tests' && echo "::set-output name=skip-tests::true"
#----------------------------------------------------------------------
# Launch tests
#----------------------------------------------------------------------
- name: 'TESTS: Start docker-compose containers'
if: steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: $JHI_SCRIPTS/20-docker-compose.sh
- name: 'TESTS: backend'
if: steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: $JHI_SCRIPTS/21-tests-backend.sh
- name: 'TESTS: frontend'
if: steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: $JHI_SCRIPTS/22-tests-frontend.sh
- name: 'TESTS: packaging'
if: steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: $JHI_SCRIPTS/23-package.sh
- name: 'E2E: Synchronize chromedriver version'
if: matrix.e2e == 1 && steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: npm run e2e:update-webdriver -- --versions.chrome ${{ steps.chromedriver-version.outputs.version }}
working-directory: ${{ github.workspace }}/app
- name: 'E2E: Run'
id: e2e
if: steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: $JHI_SCRIPTS/24-tests-e2e.sh
- name: 'E2E: Store failure screenshots'
uses: actions/upload-artifact@v2
if: always() && steps.e2e.outcome == 'failure'
with:
name: screenshots-${{ matrix.app-type }}
path: ${{ github.workspace }}/app/target/cypress/screenshots
- name: 'ANALYSIS: Sonar analysis'
if: steps.tests-should-be-skipped.outputs.skip-tests != 'true'
run: $JHI_SCRIPTS/25-sonar-analyze.sh
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}