@@ -3,92 +3,169 @@ name: .NET Master
33on :
44 push :
55 branches : [ master, stable, angular19 ]
6- paths-ignore :
7- - ' **.md'
8- - ' .github/**'
6+
97
108jobs :
119 build :
1210 runs-on : ubuntu-latest
1311 steps :
14- - uses : actions/checkout@v2
15- with :
16- path : main
17- 12+ - uses : actions/checkout@v3
1813 with :
19- host port : 3306 # Optional, default value is 3306. The port of host
20- container port : 3306 # Optional, default value is 3306. The port of container
21- character set server : ' utf8' # Optional, default value is 'utf8mb4'. The '--character-set-server' option for mysqld
22- collation server : ' utf8_general_ci' # Optional, default value is 'utf8mb4_general_ci'. The '--collation-server' option for mysqld
23- mariadb version : ' 10.4.10' # Optional, default value is "latest". The version of the MariaDB
24- mysql database : ' some_test' # Optional, default value is "test". The specified database which will be create
25- mysql root password : ' secretpassword' # Required if "mysql user" is empty, default is empty. The root superuser password
26- mysql user : ' developer' # Required if "mysql root password" is empty, default is empty. The superuser for the specified database. Can use secrets, too
27- mysql password : ' passwordtoo' # Required if "mysql user" exists. The password for the "mysql user"
28- - name : Sleep 15 seconds
29- run : sleep 15
30- 14+ path : eform-angular-basecustomer-plugin
15+ - name : Extract branch name
16+ id : extract_branch
17+ run : echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
18+ - name : ' Preparing Frontend checkout'
19+ uses : actions/checkout@v3
3120 with :
32- rabbitmq version : ' 3.8.2-management-alpine'
33- host port : 5672
34- rabbitmq user : ' admin'
35- rabbitmq password : ' password'
36- rabbitmq vhost : ' vhost_name'
37- - name : Setup .NET Core
38- uses : actions/setup-dotnet@v1
21+ fetch-depth : 0
22+ repository : microting/eform-angular-frontend
23+ ref : ${{ steps.extract_branch.outputs.branch }}
24+ path : eform-angular-frontend
25+ - name : Copy dependencies
26+ run : |
27+ cp -av eform-angular-basecustomer-plugin/eform-client/src/app/plugins/modules/customera-pn eform-angular-frontend/eform-client/src/app/plugins/modules/customera-pn
28+ cp -av eform-angular-basecustomer-plugin/eform-client/e2e/Tests/basecustomer-settings eform-angular-frontend/eform-client/e2e/Tests/basecustomer-settings
29+ cp -av eform-angular-basecustomer-plugin/eform-client/e2e/Tests/basecustomer-general eform-angular-frontend/eform-client/e2e/Tests/basecustomer-general
30+ cp -av eform-angular-basecustomer-plugin/eform-client/e2e/Page\ objects/Customers eform-angular-frontend/eform-client/e2e/Page\ objects/Customers
31+ cp -av eform-angular-basecustomer-plugin/eform-client/wdio-headless-plugin-step2a.conf.ts eform-angular-frontend/eform-client/wdio-headless-plugin-step2a.conf.ts
32+ cp -av eform-angular-basecustomer-plugin/eform-client/wdio-plugin-step2.conf.ts eform-angular-frontend/eform-client/wdio-plugin-step2.conf.ts
33+ cd eform-angular-frontend/eform-client && ../../eform-angular-basecustomer-plugin/testinginstallpn.sh
34+ - name : Copy Dockerfile
35+ run : cp eform-angular-basecustomer-plugin/Dockerfile .
36+ - name : Build the tagged Docker image
37+ run : docker build . -t microtingas/basecustomer-container:latest -t microtingas/basecustomer-container:1.0.0 --build-arg GITVERSION=1.0.0 --build-arg PLUGINVERSION=1.0.0
38+ - name : Tag builds
39+ run : |-
40+ docker tag microtingas/basecustomer-container:latest microtingas/basecustomer-container:latest
41+ - run : docker save microtingas/basecustomer-container:latest -o basecustomer-container.tar
42+ - uses : actions/upload-artifact@v4
3943 with :
40- dotnet-version : 9.0.x
41- - name : Use Node.js
42- uses : actions/setup-node@v1
44+ name : basecustomer-container
45+ path : basecustomer-container.tar
46+ pn-test :
47+ needs : build
48+ runs-on : ubuntu-latest
49+ steps :
50+ - uses : actions/checkout@v3
4351 with :
44- node-version : ' 12.16.2 '
52+ path : eform-angular-basecustomer-plugin
4553 - name : Extract branch name
4654 id : extract_branch
4755 run : echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
56+ - uses : actions/download-artifact@v4
57+ with :
58+ name : basecustomer-container
59+ - run : docker load -i basecustomer-container.tar
60+ - name : Create docker network
61+ run : docker network create --driver bridge --attachable data
62+ - name : Start MariaDB
63+ run : |
64+ docker pull mariadb:10.8
65+ docker run --name mariadbtest --network data -e MYSQL_ROOT_PASSWORD=secretpassword -p 3306:3306 -d mariadb:10.8
66+ - name : Start rabbitmq
67+ run : |
68+ docker pull rabbitmq:latest
69+ docker run -d --hostname my-rabbit --name some-rabbit --network data -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password rabbitmq:latest
70+ - name : Sleep 15
71+ run : sleep 15
72+ - name : Start the newly build Docker container
73+ id : docker-run
74+ run : docker run --name my-container -p 4200:5000 --network data microtingas/basecustomer-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 &
75+ - name : Use Node.js
76+ uses : actions/setup-node@v3
77+ with :
78+ node-version : 20
4879 - name : ' Preparing Frontend checkout'
49- uses : actions/checkout@v2
80+ uses : actions/checkout@v3
5081 with :
5182 repository : microting/eform-angular-frontend
5283 ref : ${{ steps.extract_branch.outputs.branch }}
5384 path : eform-angular-frontend
54- - name : Install dependencies
55- run : dotnet restore main/eFormAPI/Plugins/Customers.Pn/Customers.Pn.sln
56- - name : Get the version
57- id : get_version
58- run : echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3 | cut -d "v" -f 2)
59- - name : Build
60- run : dotnet build main/eFormAPI/Plugins/Customers.Pn/Customers.Pn.sln
61- - name : Unit Tests
62- run : dotnet test --no-restore -c Release -v n main/eFormAPI/Plugins/Customers.Pn/Customers.Pn.Test/Customers.Pn.Test.csproj
6385 - name : Copy dependencies
6486 run : |
65- cp -av main /eform-client/src/app/plugins/modules/customers -pn eform-angular-frontend/eform-client/src/app/plugins/modules/customers -pn
66- cp -av main /eform-client/e2e/Tests/customer -settings eform-angular-frontend/eform-client/e2e/Tests/customer -settings
67- cp -av main /eform-client/e2e/Tests/customer -general eform-angular-frontend/eform-client/e2e/Tests/customer -general
68- cp -av main /eform-client/e2e/Assets/ eform-angular-frontend/eform-client/e2e/Assets
69- cp -av main /eform-client/e2e/Page\ objects/Customers eform-angular-frontend/eform-client/e2e/Page\ objects/Customers
70- cp -av main /eform-client/wdio-headless- plugin-step2.conf.js eform-angular-frontend/eform-client/wdio-headless- plugin-step2.conf.js
87+ cp -av eform-angular-basecustomer-plugin /eform-client/src/app/plugins/modules/customera -pn eform-angular-frontend/eform-client/src/app/plugins/modules/customera -pn
88+ cp -av eform-angular-basecustomer-plugin /eform-client/e2e/Tests/basecustomer -settings eform-angular-frontend/eform-client/e2e/Tests/basecustomer -settings
89+ cp -av eform-angular-basecustomer-plugin /eform-client/e2e/Tests/basecustomer -general eform-angular-frontend/eform-client/e2e/Tests/basecustomer -general
90+ cp -av eform-angular-basecustomer-plugin /eform-client/e2e/Page\ objects/Customers eform-angular-frontend/eform-client/e2e/Page\ objects/Customers
91+ cp -av eform-angular-basecustomer-plugin /eform-client/wdio-headless-plugin-step2a.conf.ts eform-angular-frontend/eform-client/wdio-headless-plugin-step2a.conf.ts
92+ cp -av eform-angular-basecustomer-plugin /eform-client/wdio-plugin-step2.conf.ts eform-angular-frontend/eform-client/wdio-plugin-step2.conf.ts
7193 mkdir -p eform-angular-frontend/eFormAPI/eFormAPI.Web/Plugins
72- cp -av main/eFormAPI/eFormAPI.Web/Plugins/Customers eform-angular-frontend/eFormAPI/eFormAPI.Web/Plugins/Customers
73- cd eform-angular-frontend/eform-client && ../../main/testinginstallpn.sh
74- - name : Build frontend
75- run : dotnet build eform-angular-frontend/eFormAPI/eFormAPI.sln > dotnet_log 2>&1 &
76- - name : NPM install
77- run : cd eform-angular-frontend/eform-client && npm install
78- - name : NPM start
79- run : cd eform-angular-frontend/eform-client && npm start > npm_log 2>&1 &
80- - name : Sleep 75 seconds
81- run : sleep 75
82- - name : Dotnet run
83- run : dotnet run --project eform-angular-frontend/eFormAPI/eFormAPI.Web/eFormAPI.Web.csproj > dotnet_log 2>&1 &
84- - name : Sleep 75 seconds
85- run : sleep 75
86- - name : Configuration testing
87- run : cd eform-angular-frontend/eform-client && npm run testheadless
94+ mkdir -p eform-angular-frontend/eform-client/cypress/e2e/plugins/
95+ mkdir -p eform-angular-frontend/eform-client/cypress/fixtures/
96+ cp -av eform-angular-basecustomer-plugin/eform-client/cypress/fixtures eform-angular-frontend/eform-client/cypress
97+ cp -av eform-angular-basecustomer-plugin/eform-client/cypress/e2e/plugins/customera-pn eform-angular-frontend/eform-client/cypress/e2e/plugins/customera-pn
98+ cd eform-angular-frontend/eform-client && ../../eform-angular-basecustomer-plugin/testinginstallpn.sh
99+ - name : yarn install
100+ run : cd eform-angular-frontend/eform-client && yarn install
101+ - name : Create errorShots directory
102+ run : mkdir eform-angular-frontend/eform-client/errorShots
103+ - name : Pretest changes to work with Docker container
104+ run : sed -i 's/localhost/mariadbtest/g' eform-angular-frontend/eform-client/e2e/Constants/DatabaseConfigurationConstants.ts
105+ - name : Get standard output
106+ run : |
107+ cat docker_run_log
108+ - name : DB Configuration
109+ uses : cypress-io/github-action@v4
110+ with :
111+ start : echo 'hi'
112+ wait-on : " http://localhost:4200"
113+ wait-on-timeout : 120
114+ browser : chrome
115+ record : false
116+ spec : cypress/e2e/db/*
117+ config-file : cypress.config.ts
118+ working-directory : eform-angular-frontend/eform-client
119+ command-prefix : " --"
88120 - name : Plugin testing
89121 run : cd eform-angular-frontend/eform-client && npm run testheadlessplugin
122+ - name : Stop the newly build Docker container
123+ run : docker stop my-container
124+ - name : Get standard output
125+ run : |
126+ cat docker_run_log
127+ result=`cat docker_run_log | grep "Now listening on: http://0.0.0.0:5000" -m 1 | wc -l`
128+ if [ $result -ne 1 ];then exit 1; fi
90129 - name : The job has failed
130+ if : always()
131+ run : |
132+ cat docker_run_log
133+ - name : Archive mp4 artifacts
134+ if : ${{ failure() }}
135+ uses : actions/upload-artifact@v4
136+ with :
137+ name : error Screenshots
138+ path : |
139+ /home/runner/work/eform-angular-basecustomer-plugin/eform-angular-basecustomer-plugin/eform-angular-frontend/eform-client/cypress/videos/*.cy.ts.mp4
140+ retention-days : 2
141+ - name : Archive screenshot artifacts
91142 if : ${{ failure() }}
143+ uses : actions/upload-artifact@v4
144+ with :
145+ name : error Screenshots ${{matrix.test}}
146+ path : |
147+ /home/runner/work/eform-angular-frontend/eform-angular-frontend/eform-client/errorShots/*.png
148+ test-dotnet :
149+ runs-on : ubuntu-latest
150+ steps :
151+ - uses : actions/checkout@v3
152+ - name : Create docker network
153+ run : docker network create --driver bridge --attachable data
154+ - name : Start MariaDB
92155 run : |
93- cat dotnet_log
94- cat eform-angular-frontend/eform-client/npm_log
156+ docker pull mariadb:10.8
157+ docker run --name mariadbtest --network data -e MYSQL_ROOT_PASSWORD=secretpassword -p 3306:3306 -d mariadb:10.8
158+ - name : Start rabbitmq
159+ run : |
160+ docker pull rabbitmq:latest
161+ 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
162+ - name : Sleep 15
163+ run : sleep 15
164+ - name : Setup .NET Core
165+ uses : actions/setup-dotnet@v3
166+ with :
167+ dotnet-version : 9.0.x
168+ - name : Build
169+ run : dotnet build eFormAPI/Plugins/Customers.Pn/Customers.Pn.sln
170+ - name : Unit Tests
171+ run : dotnet test --no-restore -c Release -v n eFormAPI/Plugins/Customers.Pn/Customers.Pn.Test/Customers.Pn.Test.csproj
0 commit comments