Skip to content

Commit bb84807

Browse files
authored
Merge pull request #23 from aspicas/fix/cicd
Fix/cicd
2 parents a486a05 + e6f74a2 commit bb84807

File tree

5 files changed

+134
-34
lines changed

5 files changed

+134
-34
lines changed

.github/workflows/validate-commits.yml renamed to .github/workflows/check-commits.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ on:
66

77
jobs:
88
check-commits:
9+
name: Validate Commit Messages
910
runs-on: ubuntu-latest
1011

1112
steps:
Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
name: 🚀 Main Branch Pipeline
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
jobs:
12+
# Step 1: Validate merge source
13+
validate-resource:
14+
name: Validate merge source
15+
runs-on: ubuntu-latest
16+
outputs:
17+
validated: ${{ steps.validate.outputs.result }}
18+
steps:
19+
- name: Check source branch
20+
id: validate
21+
run: |
22+
if [ "${{ github.head_ref }}" != "develop" ]; then
23+
echo "Error: Only develop branch can merge to main"
24+
echo "result=failure" >> $GITHUB_OUTPUT
25+
exit 1
26+
else
27+
echo "Validation passed - source branch is develop"
28+
echo "result=success" >> $GITHUB_OUTPUT
29+
fi
30+
31+
# Step 2: Validate commit messages
32+
check-commits:
33+
name: Validate Commit Messages
34+
runs-on: ubuntu-latest
35+
needs: validate-resource
36+
if: needs.validate-resource.outputs.validated == 'success'
37+
outputs:
38+
commits-validated: ${{ steps.validate-commits.outputs.result }}
39+
steps:
40+
- name: ⬇️ Checkout code
41+
uses: actions/checkout@v3
42+
with:
43+
fetch-depth: 0
44+
45+
- name: ⬢ Set up Node.js
46+
uses: actions/setup-node@v4
47+
with:
48+
node-version: 20
49+
50+
- name: 📦 Install Commitlint
51+
run: |
52+
npm install --save-dev @commitlint/{config-conventional,cli}
53+
54+
- name: 🔍 Validate commit messages (entire branch)
55+
id: validate-commits
56+
run: |
57+
npx commitlint --from=$(git rev-list --max-parents=0 HEAD) --to=HEAD --verbose
58+
echo "result=success" >> $GITHUB_OUTPUT
59+
60+
# Step 3: Run Flutter tests
61+
test:
62+
name: Flutter Tests & Coverage
63+
runs-on: ubuntu-latest
64+
needs: check-commits
65+
if: needs.check-commits.outputs.commits-validated == 'success'
66+
outputs:
67+
tests-passed: ${{ steps.run-tests.outputs.result }}
68+
steps:
69+
- name: Checkout code
70+
uses: actions/checkout@v4
71+
72+
- name: Setup Flutter
73+
uses: subosito/flutter-action@v2
74+
with:
75+
flutter-version: "3.29.3"
76+
architecture: "x64"
77+
78+
- name: Install dependencies
79+
run: flutter pub get
80+
81+
- name: Verify formatting
82+
run: dart format --set-exit-if-changed .
83+
84+
- name: Analyze project source
85+
run: flutter analyze
86+
87+
- name: Run tests with coverage
88+
id: run-tests
89+
run: |
90+
flutter test --coverage
91+
echo "result=success" >> $GITHUB_OUTPUT
92+
93+
# Step 4: Release
94+
release:
95+
name: Release
96+
runs-on: ubuntu-latest
97+
needs: test
98+
if: needs.test.outputs.tests-passed == 'success'
99+
steps:
100+
- name: ⬇️ Checkout code
101+
uses: actions/checkout@v3
102+
with:
103+
fetch-depth: 0
104+
105+
- name: ⬢ Setup Node
106+
uses: actions/setup-node@v4
107+
with:
108+
node-version: 20
109+
110+
- name: 📦 Install dependencies
111+
run: npm ci
112+
113+
- name: 🚀 Run semantic-release
114+
env:
115+
GH_TOKEN: ${{ secrets.GH_TOKEN }}
116+
run: npx semantic-release

.github/workflows/release.yml

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

.github/workflows/test.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,15 @@ name: Flutter Tests & Coverage
22

33
on:
44
push:
5-
branches: [main, develop]
5+
branches:
6+
- develop
67
pull_request:
7-
branches: [main, develop]
8+
branches:
9+
- develop
810

911
jobs:
1012
test:
13+
name: Flutter Tests & Coverage
1114
runs-on: ubuntu-latest
1215

1316
steps:
Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,24 @@
11
name: Validate merge source
22
on:
3-
pull_request:
4-
branches: [main]
3+
push:
4+
branches:
5+
- main
56

67
jobs:
7-
validate:
8+
validate-resource:
9+
name: Validate merge source
810
runs-on: ubuntu-latest
11+
outputs:
12+
validated: ${{ steps.validate.outputs.result }}
913
steps:
1014
- name: Check source branch
15+
id: validate
1116
run: |
1217
if [ "${{ github.head_ref }}" != "develop" ]; then
1318
echo "Error: Only develop branch can merge to main"
19+
echo "result=failure" >> $GITHUB_OUTPUT
1420
exit 1
21+
else
22+
echo "Validation passed - source branch is develop"
23+
echo "result=success" >> $GITHUB_OUTPUT
1524
fi

0 commit comments

Comments
 (0)