-
Notifications
You must be signed in to change notification settings - Fork 232
133 lines (109 loc) · 3.61 KB
/
ci.yml
File metadata and controls
133 lines (109 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Copyright 2025 The ChaosBlade Authors
#
# 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: CI
on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]
jobs:
# 标准Maven构建和测试
maven-build:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ 8, 11 ]
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java environment
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: ${{ matrix.java-version }}
cache: 'maven'
- name: Display environment info
run: |
echo "Java version:"
java -version
echo "Maven version:"
mvn -version
echo "Current directory:"
pwd
echo "Directory contents:"
ls -la
- name: Validate Maven configuration
run: mvn -B validate
- name: Compile project
run: mvn -B compile
- name: Run tests
run: mvn -B test
- name: Package project
run: mvn -B package -Dmaven.test.skip=true
- name: Install to local repository
run: mvn -B install -Dmaven.test.skip=true
- name: Run code style verification
run: mvn -B com.diffplug.spotless:spotless-maven-plugin:2.30.0:check
- name: Check License Header
uses: korandoru/hawkeye@v6
- name: Upload build artifacts
uses: actions/upload-artifact@v4
if: success()
with:
name: chaosblade-jvm-maven-${{ matrix.java-version }}
path: |
target/
chaosblade-exec-plugin/*/target/*.jar
retention-days: 7
# 完整产品构建(使用Makefile)
full-build:
runs-on: ubuntu-latest
needs: maven-build
if: github.event_name == 'push' && (github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Java environment
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '11'
cache: 'maven'
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y curl unzip
- name: Display Makefile help
run: make help
- name: Clean previous builds
run: make clean
- name: Build full product
run: make build
- name: Run tests
run: make test
- name: Upload full build artifacts
uses: actions/upload-artifact@v4
if: success()
with:
name: chaosblade-jvm-full-build
path: |
build-target/
plugins/
retention-days: 7
- name: Create build summary
run: |
echo "## Full Build Summary" >> $GITHUB_STEP_SUMMARY
echo "- **Build Target:** build-target/" >> $GITHUB_STEP_SUMMARY
echo "- **Plugins:** $(ls plugins/*.jar 2>/dev/null | wc -l) plugins built" >> $GITHUB_STEP_SUMMARY
echo "- **Version:** ${{ env.BLADE_VERSION || '1.8.0' }}" >> $GITHUB_STEP_SUMMARY