Bump NUnit.Analyzers from 4.5.0 to 4.6.0 in /eFormAPI/Plugins/BackendConfiguration.Pn #527
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: .NET Pull requests | |
on: | |
pull_request: | |
branches: [ master, stable, angular15 ] | |
paths-ignore: | |
- '**.md' | |
jobs: | |
backend-pn-build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: eform-backendconfiguration-plugin | |
- name: 'Preparing Frontend checkout' | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
repository: microting/eform-angular-frontend | |
ref: stable | |
path: eform-angular-frontend | |
- name: 'Preparing items planning checkout' | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
repository: microting/eform-angular-items-planning-plugin | |
ref: stable | |
path: eform-angular-items-planning-plugin | |
- name: 'Preparing time planning checkout' | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
repository: microting/eform-angular-timeplanning-plugin | |
ref: stable | |
path: eform-angular-timeplanning-plugin | |
- name: Copy dependencies | |
run: | | |
cp -av eform-angular-items-planning-plugin/eform-client/src/app/plugins/modules/items-planning-pn eform-angular-frontend/eform-client/src/app/plugins/modules/items-planning-pn | |
cp -av eform-angular-timeplanning-plugin/eform-client/src/app/plugins/modules/time-planning-pn eform-angular-frontend/eform-client/src/app/plugins/modules/time-planning-pn | |
cp -av eform-backendconfiguration-plugin/eform-client/src/app/plugins/modules/backend-configuration-pn eform-angular-frontend/eform-client/src/app/plugins/modules/backend-configuration-pn | |
mkdir -p eform-angular-frontend/eFormAPI/eFormAPI.Web/Plugins | |
cd eform-angular-frontend/eform-client && ../../eform-angular-items-planning-plugin/testinginstallpn.sh | |
../../eform-angular-timeplanning-plugin/testinginstallpn.sh | |
../../eform-backendconfiguration-plugin/testinginstallpn.sh | |
- name: Copy frontendfiles | |
run: cp eform-backendconfiguration-plugin/Dockerfile . | |
- name: Build the tagged Docker image | |
run: docker build . -t microtingas/work-items-planning-container:latest -t microtingas/work-items-planning-container:1.0.0 --build-arg GITVERSION=1.0.0 --build-arg PLUGINVERSION=1.0.0 --build-arg PLUGIN2VERSION=1.0.0 --build-arg PLUGIN3VERSION=1.0.0 --build-arg PLUGIN4VERSION=1.0.0 --build-arg PLUGIN5VERSION=1.0.0 --build-arg PLUGIN6VERSION=1.0.0 | |
- name: Tag builds | |
run: |- | |
docker tag microtingas/work-items-planning-container:latest microtingas/work-items-planning-container:latest | |
- run: docker save microtingas/work-items-planning-container:latest -o work-items-planning-container.tar | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: work-items-planning-container | |
path: work-items-planning-container.tar | |
backend-pn-test: | |
needs: backend-pn-build | |
runs-on: ubuntu-22.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
test: [a,b,c,d,e,f,g,h,i,j] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
path: eform-backendconfiguration-plugin | |
- uses: actions/download-artifact@v4 | |
with: | |
name: work-items-planning-container | |
- run: docker load -i work-items-planning-container.tar | |
- name: Create docker network | |
run: docker network create --driver bridge --attachable data | |
- name: Start MariaDB | |
run: | | |
docker pull mariadb:10.8 | |
docker run --name mariadbtest --network data -e MYSQL_ROOT_PASSWORD=secretpassword -p 3306:3306 -d mariadb:10.8 | |
- name: Start rabbitmq | |
run: | | |
docker pull rabbitmq:latest | |
docker run -d --hostname my-rabbit --name some-rabbit --network data -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password rabbitmq:latest | |
- name: Sleep 15 | |
run: sleep 15 | |
- name: Start the newly build Docker container | |
id: docker-run | |
run: docker run --name my-container -p 4200:5000 --network data microtingas/work-items-planning-container:latest "/ConnectionString=host=mariadbtest;Database=420_Angular;user=root;password=secretpassword;port=3306;Convert Zero Datetime = true;SslMode=none;" > docker_run_log 2>&1 & | |
- name: Use Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
- name: 'Preparing Frontend checkout' | |
uses: actions/checkout@v3 | |
with: | |
repository: microting/eform-angular-frontend | |
ref: stable | |
path: eform-angular-frontend | |
- name: 'Preparing ItemsPlanning checkout' | |
uses: actions/checkout@v3 | |
with: | |
repository: microting/eform-angular-items-planning-plugin | |
ref: stable | |
path: eform-angular-items-planning-plugin | |
- name: Copy dependencies | |
run: | | |
cp -av eform-backendconfiguration-plugin/eform-client/src/app/plugins/modules/backend-configuration-pn eform-angular-frontend/eform-client/src/app/plugins/modules/backend-configuration-pn | |
cp -av eform-backendconfiguration-plugin/eform-client/e2e/Tests/backend-configuration-settings eform-angular-frontend/eform-client/e2e/Tests/backend-configuration-settings | |
cp -av eform-backendconfiguration-plugin/eform-client/e2e/Tests/backend-configuration-general eform-angular-frontend/eform-client/e2e/Tests/backend-configuration-general | |
cp -av eform-backendconfiguration-plugin/eform-client/e2e/Page\ objects/BackendConfiguration eform-angular-frontend/eform-client/e2e/Page\ objects/BackendConfiguration | |
cp -av eform-backendconfiguration-plugin/eform-client/e2e/Assets eform-angular-frontend/eform-client/e2e | |
cp -av eform-angular-items-planning-plugin/eform-client/e2e/Page\ objects/ItemsPlanning eform-angular-frontend/eform-client/e2e/Page\ objects/ItemsPlanning | |
cp -av eform-backendconfiguration-plugin/eform-client/wdio-headless-plugin-step2${{matrix.test}}.conf.ts eform-angular-frontend/eform-client/wdio-headless-plugin-step2${{matrix.test}}.conf.ts | |
cp -av eform-backendconfiguration-plugin/eform-client/wdio-plugin-step2.conf.ts eform-angular-frontend/eform-client/wdio-plugin-step2.conf.ts | |
mkdir -p eform-angular-frontend/eform-client/cypress/e2e/plugins/ | |
cp -av eform-backendconfiguration-plugin/eform-client/cypress/e2e/plugins/backend-configuration-pn eform-angular-frontend/eform-client/cypress/e2e/plugins/backend-configuration-pn | |
cp -av eform-backendconfiguration-plugin/eform-client/cypress/fixtures eform-angular-frontend/eform-client/cypress | |
- name: yarn install | |
run: cd eform-angular-frontend/eform-client && yarn install | |
- name: Create errorShots directory | |
run: mkdir eform-angular-frontend/eform-client/errorShots | |
- name: Pretest changes to work with Docker container | |
run: sed -i 's/localhost/mariadbtest/g' eform-angular-frontend/eform-client/e2e/Constants/DatabaseConfigurationConstants.ts | |
- name: Get standard output | |
run: | | |
cat docker_run_log | |
- name: DB Configuration | |
uses: cypress-io/github-action@v4 | |
with: | |
start: echo 'hi' | |
wait-on: "http://localhost:4200" | |
wait-on-timeout: 120 | |
browser: chrome | |
record: false | |
spec: cypress/e2e/db/* | |
config-file: cypress.config.ts | |
working-directory: eform-angular-frontend/eform-client | |
- name: Change rabbitmq hostname | |
run: docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'update 420_SDK.Settings set Value = "my-rabbit" where Name = "rabbitMqHost"' | |
- name: Get standard output | |
run: | | |
cat docker_run_log | |
- name: Plugin testing | |
run: cd eform-angular-frontend/eform-client && npm run testheadlessplugin2${{matrix.test}} | |
- name: Load DB dump | |
if: matrix.test == 'a' | |
run: | | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'update 420_Angular.EformPlugins set Status = 2' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'drop database `420_SDK`' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'create database `420_SDK`' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e "use 420_SDK; show tables" | |
docker exec -i mariadbtest mysql -u root --password=secretpassword 420_SDK < eform-angular-frontend/eform-client/cypress/e2e/plugins/backend-configuration-pn/a/420_SDK.sql | |
docker exec -i mariadbtest mysql -u root --password=secretpassword 420_SDK -e "use 420_SDK; show tables" | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'drop database `420_eform-backend-configuration-plugin`' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'create database `420_eform-backend-configuration-plugin`' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword 420_eform-backend-configuration-plugin < eform-angular-frontend/eform-client/cypress/e2e/plugins/backend-configuration-pn/a/420_eform-backend-configuration-plugin.sql | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'drop database `420_eform-angular-items-planning-plugin`' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'create database `420_eform-angular-items-planning-plugin`' | |
docker exec -i mariadbtest mysql -u root --password=secretpassword 420_eform-angular-items-planning-plugin < eform-angular-frontend/eform-client/cypress/e2e/plugins/backend-configuration-pn/a/420_eform-angular-items-planning-plugin.sql | |
docker exec -i mariadbtest mysql -u root --password=secretpassword -e 'update 420_SDK.Settings set Value = "my-rabbit" where Name = "rabbitMqHost"' | |
- name: Restart the Docker container | |
if: matrix.test == 'a' | |
run: docker restart my-container | |
- name: Sleep 15 | |
if: matrix.test == 'a' | |
run: sleep 15 | |
- name: Get standard output | |
run: | | |
cat docker_run_log | |
- name: ${{matrix.test}} test | |
uses: cypress-io/github-action@v4 | |
with: | |
start: echo 'hi' | |
wait-on: "http://localhost:4200" | |
wait-on-timeout: 120 | |
browser: chrome | |
record: false | |
spec: cypress/e2e/plugins/backend-configuration-pn/${{matrix.test}}/* | |
config-file: cypress.config.ts | |
working-directory: eform-angular-frontend/eform-client | |
- name: Stop the newly build Docker container | |
run: docker stop my-container | |
- name: Get standard output | |
run: | | |
cat docker_run_log | |
result=`cat docker_run_log | grep "Now listening on: http://0.0.0.0:5000" -m 1 | wc -l` | |
if [ $result -ne 1 ];then exit 1; fi | |
- name: Get standard output | |
if: ${{ failure() }} | |
run: | | |
cat docker_run_log | |
- name: Archive screenshot artifacts | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: error Screenshots | |
path: | | |
eform-angular-frontend/eform-client/errorShots/chrome*.png | |
- name: Archive videos | |
if: ${{ failure() }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: error Screenshots | |
path: | | |
/home/runner/work/eform-backendconfiguration-plugin/eform-backendconfiguration-plugin/eform-angular-frontend/eform-client/cypress/videos/*.mp4 | |
retention-days: 3 | |
test-dotnet: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Create docker network | |
run: docker network create --driver bridge --attachable data | |
- name: Start MariaDB | |
run: | | |
docker pull mariadb:10.8 | |
docker run --name mariadbtest --network data -e MYSQL_ROOT_PASSWORD=secretpassword -p 3306:3306 -d mariadb:10.8 | |
- name: Start rabbitmq | |
run: | | |
docker pull rabbitmq:latest | |
docker run -d --hostname my-rabbit --name some-rabbit --network data -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -p 5672:5672 rabbitmq:latest | |
- name: Sleep 15 | |
run: sleep 15 | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: 9.0.x | |
- name: Build | |
run: dotnet build eFormAPI/Plugins/BackendConfiguration.Pn/BackendConfiguration.Pn.sln | |
- name: Unit Tests | |
run: dotnet test --no-restore -c Release -v n eFormAPI/Plugins/BackendConfiguration.Pn/BackendConfiguration.Pn.Test/BackendConfiguration.Pn.Test.csproj | |
- name: Integration Tests | |
run: dotnet test --no-restore -c Release -v n eFormAPI/Plugins/BackendConfiguration.Pn/BackendConfiguration.Pn.Integration.Test/BackendConfiguration.Pn.Integration.Test.csproj |