Skip to content

Commit 2fe2d60

Browse files
authored
Merge pull request #30 from codeurjc-students/ci/setup-github-actions
Ci/setup GitHub actions
2 parents 142cba1 + 7fb0ed4 commit 2fe2d60

File tree

9 files changed

+154
-1560
lines changed

9 files changed

+154
-1560
lines changed

.github/workflows/basic-quality.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ on:
55
branches:
66
- feature/**
77
- fix/**
8+
- testing/**
9+
- ci/**
810
workflow_dispatch:
911

1012
jobs:

.github/workflows/full-quality.yml

Lines changed: 144 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
name: Full Quality Check
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
workflow_dispatch:
11+
12+
jobs:
13+
backend-full:
14+
name: Backend Full Quality Check
15+
runs-on: ubuntu-latest
16+
defaults:
17+
run:
18+
working-directory: ./backend
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set up Java
23+
uses: actions/setup-java@v4
24+
with:
25+
java-version: '17'
26+
distribution: 'temurin'
27+
28+
- name: Run Backend Unit Tests
29+
run: mvn test -Dtest='*UnitTest'
30+
31+
- name: Run Backend Integration Tests
32+
run: mvn test -Dtest='*IntegrationTest'
33+
34+
- name: Run Backend e2e Tests
35+
run: mvn test -Dtest='*e2eTest'
36+
37+
frontend-integration:
38+
name: Frontend Integration Quality Check
39+
runs-on: ubuntu-latest
40+
services:
41+
mysql:
42+
image: mysql:8
43+
env:
44+
MYSQL_ROOT_PASSWORD: root
45+
MYSQL_DATABASE: skyapartments
46+
MYSQL_USER: user
47+
MYSQL_PASSWORD: pass
48+
ports:
49+
- 3306:3306
50+
options: >-
51+
--health-cmd="mysqladmin ping --silent"
52+
53+
steps:
54+
- uses: actions/checkout@v4
55+
56+
# Backend
57+
- name: Set up JDK
58+
uses: actions/setup-java@v4
59+
with:
60+
java-version: 17
61+
distribution: temurin
62+
63+
- name: Build backend
64+
working-directory: backend
65+
run: mvn clean package -DskipTests
66+
67+
- name: Wait for MySQL
68+
run: |
69+
echo "Waiting for MySQL to be ready..."
70+
for i in {1..30}; do
71+
if mysql -h 127.0.0.1 -uuser -ppass -e "SHOW DATABASES;" > /dev/null 2>&1; then
72+
echo "MySQL is ready!"
73+
break
74+
fi
75+
echo "MySQL not ready yet..."
76+
sleep 2
77+
done
78+
79+
- name: Run backend
80+
working-directory: backend
81+
env:
82+
SPRING_DATASOURCE_URL: jdbc:mysql://127.0.0.1:3306/skyapartments
83+
SPRING_DATASOURCE_USERNAME: user
84+
SPRING_DATASOURCE_PASSWORD: pass
85+
run: nohup java -jar target/backend-0.0.1-SNAPSHOT.jar &
86+
87+
- name: Wait for backend
88+
run: |
89+
echo "Waiting for backend to start..."
90+
for i in {1..30}; do
91+
if nc -z localhost 8080; then
92+
echo "Backend is up!"
93+
break
94+
fi
95+
echo "Backend not ready yet..."
96+
sleep 2
97+
done
98+
99+
# Frontend
100+
- name: Set up Node
101+
uses: actions/setup-node@v4
102+
with:
103+
node-version: 20
104+
105+
- name: Install frontend dependencies
106+
working-directory: frontend
107+
run: npm ci
108+
109+
- name: Run integration tests
110+
working-directory: frontend
111+
run: npm run test:integration
112+
113+
frontend-unit-e2e:
114+
name: Frontend Unit and E2E Quality Check
115+
runs-on: ubuntu-latest
116+
defaults:
117+
run:
118+
working-directory: ./frontend
119+
steps:
120+
- uses: actions/checkout@v4
121+
122+
- name: Set up Node.js
123+
uses: actions/setup-node@v4
124+
with:
125+
node-version: '20'
126+
127+
- name: Install Dependencies
128+
run: npm install
129+
130+
- name: Run Frontend Unit Tests
131+
run: npm run test:unit
132+
133+
- name: Install Playwright Browsers
134+
run: npx playwright install
135+
136+
- name: Start Frontend Server
137+
run: npm run start &
138+
139+
- name: Wait for server to be ready
140+
run: |
141+
npx wait-on http://localhost:4200
142+
143+
- name: Run Frontend E2E Tests
144+
run: npm run test:e2e

backend/src/test/java/com/skyapartments/backend/e2e/ApartmentApiTest.java renamed to backend/src/test/java/com/skyapartments/backend/e2e/ApartmentAPIe2eTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
2525
@Testcontainers
26-
public class ApartmentApiTest {
26+
public class ApartmentAPIe2eTest {
2727

2828
@Container
2929
static MySQLContainer<?> mysql = new MySQLContainer<>("mysql:8.0")

backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ com\skyapartments\backend\controller\ApartmentController.class
22
com\skyapartments\backend\dto\ApartmentDTO.class
33
com\skyapartments\backend\model\Apartment.class
44
com\skyapartments\backend\repository\ApartmentRepository.class
5+
com\skyapartments\backend\service\DataBaseInitializer.class
56
com\skyapartments\backend\BackendApplication.class
67
com\skyapartments\backend\service\ApartmentService.class
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
com\skyapartments\backend\testutils\AbstractMySQLTest.class
2+
com\skyapartments\backend\unit\ApartmentServiceUnitTest.class
3+
com\skyapartments\backend\integration\ApartmentServiceIntegrationTest.class
4+
com\skyapartments\backend\e2e\ApartmentAPIe2eTest.class
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
C:\Users\eloys\Desktop\2025-sky-apartments\backend\src\test\java\com\skyapartments\backend\e2e\ApartmentApiTest.java
1+
C:\Users\eloys\Desktop\2025-sky-apartments\backend\src\test\java\com\skyapartments\backend\e2e\ApartmentAPIe2eTest.java
22
C:\Users\eloys\Desktop\2025-sky-apartments\backend\src\test\java\com\skyapartments\backend\integration\ApartmentServiceIntegrationTest.java
33
C:\Users\eloys\Desktop\2025-sky-apartments\backend\src\test\java\com\skyapartments\backend\testutils\AbstractMySQLTest.java
44
C:\Users\eloys\Desktop\2025-sky-apartments\backend\src\test\java\com\skyapartments\backend\unit\ApartmentServiceUnitTest.java

backend/target/surefire-reports/TEST-com.skyapartments.backend.BackendApplicationTests.xml

Lines changed: 0 additions & 1469 deletions
This file was deleted.

backend/target/surefire-reports/com.skyapartments.backend.BackendApplicationTests.txt

Lines changed: 0 additions & 88 deletions
This file was deleted.

frontend/karma.conf.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ module.exports = function (config) {
1313
clearContext: false // leave Jasmine Spec Runner output visible in browser
1414
},
1515
reporters: ['progress', 'kjhtml'],
16-
browsers: ['Chrome'], //ChromeHeadless for non-GUI environments
16+
browsers: ['ChromeHeadless'], //ChromeHeadless for non-GUI environments
1717
restartOnFileChange: true,
1818
proxies: {
1919
'/api/': 'http://localhost:8080/api/'

0 commit comments

Comments
 (0)