Skip to content

Commit def640c

Browse files
committed
v1.0.1
1 parent a11f650 commit def640c

38 files changed

Lines changed: 4121 additions & 1 deletion

.gitignore

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
.idea/
2+
.gradle/
3+
build/
4+
target/
5+
out/
6+
release/
7+
reports/
8+
*.iml
9+
.DS_Store
10+
*.log
11+
gradle/
12+
gradlew
13+
gradlew.bat
14+
version.txt
15+
build.yml
16+
.codecc
17+
task.json

README.md

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,57 @@
1-
# run
1+
#### 插件功能
2+
在构建机上执行脚本:
3+
- 默认情况使用Bash进行脚本执行
4+
- 可选解析器如图所示![command.png](./img/command.png)
5+
6+
#### 适用场景
7+
执行编译脚本
8+
9+
支持通过如下方式设置当前步骤输出变量:
10+
```
11+
echo "::set-output name=<output_name>::<output_val>"
12+
```
13+
如:
14+
```
15+
echo "::set-output name=release_type::dev"
16+
```
17+
在下游步骤入参中:
18+
- 通过 ${{ jobs.<job_id>.steps.<step_id>.outputs.release_type }} 引用此变量值
19+
- <job_id> 为当前Job上配置的 Job ID
20+
- <step_id> 为当前 Task 上配置的 Step ID
21+
22+
支持通过如下方式设置/修改流水线变量:
23+
```
24+
echo "::set-variable name=<var_name>::<var_value>"
25+
```
26+
如:
27+
```
28+
echo "::set-variable name=a::1"
29+
```
30+
在下游步骤入参中,通过 ${{ variables.a }} 方式引用此变量
31+
32+
#### 使用限制和受限解决方案[可选]
33+
设置输出参数或者流水线变量时,**在当前步骤不会生效,在下游步骤才生效**
34+
35+
#### 常见的失败原因和解决方案
36+
1. 脚本执行退出码非0时,当前步骤执行结果为失败,请检查脚本逻辑,或确认执行环境是否满足需求
37+
38+
#### 多行文本使用set-output/set-variable/set-gate-value
39+
bash示例:
40+
使用format_multiple_lines 替代echo输出
41+
```
42+
content=$(ls -l ..)
43+
echo "$content"
44+
format_multiple_lines "::set-output name=content_a::$content"
45+
resultStr="\n"
46+
resultStr="$resultStr\n$PATH"
47+
resultStr="$resultStr\n$PATH"
48+
resultStr="$resultStr\n$PATH"
49+
echo resultStr=$resultStr
50+
format_multiple_lines "::set-output name=content2_a::$resultStr"
51+
```
52+
53+
python 示例:
54+
```
55+
multiple_lines = "line one \n line two \n line three"
56+
print("::set-output name=lines::{0}".format(format_multiple_lines(multiple_lines)))
57+
```

img/command.png

50 KB
Loading

pom.xml

Lines changed: 107 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<groupId>com.tencent.devops.ci-plugins</groupId>
8+
<artifactId>run</artifactId>
9+
<version>1.0.0</version>
10+
11+
<properties>
12+
<!-- 引用的sdk版本,当sdk版本有升级时再修改 -->
13+
<sdk.version>1.1.3</sdk.version>
14+
<java.version>1.8</java.version>
15+
<kotlin.version>1.7.0</kotlin.version>
16+
<maven.compiler.source>${java.version}</maven.compiler.source>
17+
<maven.compiler.target>${java.version}</maven.compiler.target>
18+
<!--项目版本 -->
19+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20+
21+
</properties>
22+
23+
<dependencies>
24+
<dependency>
25+
<groupId>com.tencent.devops.ci-plugins</groupId>
26+
<artifactId>java-plugin-sdk</artifactId>
27+
<version>${sdk.version}</version>
28+
</dependency>
29+
30+
<dependency>
31+
<groupId>org.jetbrains.kotlin</groupId>
32+
<artifactId>kotlin-stdlib-jdk8</artifactId>
33+
<version>${kotlin.version}</version>
34+
</dependency>
35+
<dependency>
36+
<groupId>junit</groupId>
37+
<artifactId>junit</artifactId>
38+
<version>4.12</version>
39+
</dependency>
40+
<dependency>
41+
<groupId>org.apache.commons</groupId>
42+
<artifactId>commons-exec</artifactId>
43+
<version>1.3</version>
44+
</dependency>
45+
</dependencies>
46+
47+
<build>
48+
<finalName>${project.name}</finalName>
49+
<plugins>
50+
<plugin>
51+
<groupId>org.apache.maven.plugins</groupId>
52+
<artifactId>maven-assembly-plugin</artifactId>
53+
<executions>
54+
<execution>
55+
<id>jar-with-dependencies</id>
56+
<phase>package</phase>
57+
<goals>
58+
<goal>single</goal>
59+
</goals>
60+
<configuration>
61+
<descriptorRefs>
62+
<descriptorRef>jar-with-dependencies</descriptorRef>
63+
</descriptorRefs>
64+
<archive>
65+
<manifest>
66+
<mainClass>com.tencent.bk.devops.atom.AtomRunner</mainClass>
67+
</manifest>
68+
</archive>
69+
</configuration>
70+
</execution>
71+
</executions>
72+
</plugin>
73+
<plugin>
74+
<groupId>org.jetbrains.kotlin</groupId>
75+
<artifactId>kotlin-maven-plugin</artifactId>
76+
<version>${kotlin.version}</version>
77+
<executions>
78+
<execution>
79+
<id>compile</id>
80+
<goals>
81+
<goal>compile</goal>
82+
</goals>
83+
<configuration>
84+
<sourceDirs>
85+
<sourceDir>${project.basedir}/src/main/kotlin</sourceDir>
86+
<sourceDir>${project.basedir}/src/main/java</sourceDir>
87+
</sourceDirs>
88+
</configuration>
89+
</execution>
90+
<execution>
91+
<id>test-compile</id>
92+
<goals>
93+
<goal>test-compile</goal>
94+
</goals>
95+
<configuration>
96+
<sourceDirs>
97+
<sourceDir>${project.basedir}/src/test/kotlin</sourceDir>
98+
<sourceDir>${project.basedir}/src/test/java</sourceDir>
99+
</sourceDirs>
100+
</configuration>
101+
</execution>
102+
</executions>
103+
</plugin>
104+
</plugins>
105+
</build>
106+
107+
</project>

0 commit comments

Comments
 (0)