Skip to content

Commit a83b0fc

Browse files
authored
Drop deprecated built-in environment variables (#2048)
Drop: - `CI_BUILD_*` - `CI_PREV_BUILD_*` - `CI_JOB_*` - `*_LINK` - `CI_SYSTEM_ARCH` - `CI_REPO_REMOTE`
1 parent 27c0ff5 commit a83b0fc

File tree

31 files changed

+172
-259
lines changed

31 files changed

+172
-259
lines changed

agent/tracer.go

+1-13
Original file line numberDiff line numberDiff line change
@@ -76,23 +76,11 @@ func (r *Runner) createTracer(ctxmeta context.Context, logger zerolog.Logger, wo
7676
state.Pipeline.Step.Environment["CI_STEP_STARTED"] = strconv.FormatInt(state.Pipeline.Time, 10)
7777
state.Pipeline.Step.Environment["CI_STEP_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10)
7878

79-
state.Pipeline.Step.Environment["CI_SYSTEM_ARCH"] = runtime.GOOS + "/" + runtime.GOARCH
80-
81-
// DEPRECATED
82-
state.Pipeline.Step.Environment["CI_BUILD_STATUS"] = "success"
83-
state.Pipeline.Step.Environment["CI_BUILD_STARTED"] = strconv.FormatInt(state.Pipeline.Time, 10)
84-
state.Pipeline.Step.Environment["CI_BUILD_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10)
85-
state.Pipeline.Step.Environment["CI_JOB_STATUS"] = "success"
86-
state.Pipeline.Step.Environment["CI_JOB_STARTED"] = strconv.FormatInt(state.Pipeline.Time, 10)
87-
state.Pipeline.Step.Environment["CI_JOB_FINISHED"] = strconv.FormatInt(time.Now().Unix(), 10)
79+
state.Pipeline.Step.Environment["CI_SYSTEM_PLATFORM"] = runtime.GOOS + "/" + runtime.GOARCH
8880

8981
if state.Pipeline.Error != nil {
9082
state.Pipeline.Step.Environment["CI_PIPELINE_STATUS"] = "failure"
9183
state.Pipeline.Step.Environment["CI_STEP_STATUS"] = "failure"
92-
93-
// DEPRECATED
94-
state.Pipeline.Step.Environment["CI_BUILD_STATUS"] = "failure"
95-
state.Pipeline.Step.Environment["CI_JOB_STATUS"] = "failure"
9684
}
9785

9886
return nil

cli/exec/flags.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ var flags = []cli.Flag{
110110
Value: "woodpecker",
111111
},
112112
&cli.StringFlag{
113-
EnvVars: []string{"CI_SYSTEM_URL", "CI_SYSTEM_LINK"},
113+
EnvVars: []string{"CI_SYSTEM_URL"},
114114
Name: "system-link",
115115
Value: "https://github.com/woodpecker-ci/woodpecker",
116116
},
@@ -124,11 +124,11 @@ var flags = []cli.Flag{
124124
Name: "repo-remote-id",
125125
},
126126
&cli.StringFlag{
127-
EnvVars: []string{"CI_REPO_URL", "CI_REPO_LINK"},
127+
EnvVars: []string{"CI_REPO_URL"},
128128
Name: "repo-link",
129129
},
130130
&cli.StringFlag{
131-
EnvVars: []string{"CI_REPO_CLONE_URL", "CI_REPO_REMOTE"},
131+
EnvVars: []string{"CI_REPO_CLONE_URL"},
132132
Name: "repo-clone-url",
133133
},
134134
&cli.StringFlag{
@@ -169,7 +169,7 @@ var flags = []cli.Flag{
169169
Value: "manual",
170170
},
171171
&cli.StringFlag{
172-
EnvVars: []string{"CI_PIPELINE_URL", "CI_PIPELINE_LINK"},
172+
EnvVars: []string{"CI_PIPELINE_URL"},
173173
Name: "pipeline-link",
174174
},
175175
&cli.StringFlag{
@@ -233,7 +233,7 @@ var flags = []cli.Flag{
233233
Name: "prev-pipeline-event",
234234
},
235235
&cli.StringFlag{
236-
EnvVars: []string{"CI_PREV_PIPELINE_URL", "CI_PREV_PIPELINE_LINK"},
236+
EnvVars: []string{"CI_PREV_PIPELINE_URL"},
237237
Name: "prev-pipeline-link",
238238
},
239239
&cli.StringFlag{
@@ -273,11 +273,11 @@ var flags = []cli.Flag{
273273
Name: "workflow-name",
274274
},
275275
&cli.IntFlag{
276-
EnvVars: []string{"CI_WORKFLOW_NUMBER", "CI_JOB_NUMBER"},
276+
EnvVars: []string{"CI_WORKFLOW_NUMBER"},
277277
Name: "workflow-number",
278278
},
279279
&cli.IntFlag{
280-
EnvVars: []string{"CI_STEP_NAME", "CI_JOB_NUMBER"},
280+
EnvVars: []string{"CI_STEP_NAME"},
281281
Name: "step-name",
282282
},
283283
&cli.StringSliceFlag{

docs/docs/20-usage/20-pipeline-syntax.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ Run on pushes to the default branch for the repository `owner/repo`:
452452

453453
```yaml
454454
when:
455-
- evaluate: 'CI_BUILD_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
455+
- evaluate: 'CI_PIPELINE_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
456456
```
457457

458458
Run on commits created by user `woodpecker-ci`:

docs/docs/20-usage/50-environment.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ This is the reference list of all environment variables available to your pipeli
6565
| `CI_COMMIT_REF` | commit ref |
6666
| `CI_COMMIT_REFSPEC` | commit ref spec |
6767
| `CI_COMMIT_BRANCH` | commit branch (equals target branch for pull requests) |
68-
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch |
69-
| `CI_COMMIT_TARGET_BRANCH` | commit target branch |
68+
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch (empty if event is not `pull_request`) |
69+
| `CI_COMMIT_TARGET_BRANCH` | commit target branch (empty if event is not `pull_request`) |
7070
| `CI_COMMIT_TAG` | commit tag name (empty if event is not `tag`) |
7171
| `CI_COMMIT_PULL_REQUEST` | commit pull request number (empty if event is not `pull_request`) |
7272
| `CI_COMMIT_PULL_REQUEST_LABELS` | labels assigned to pull request (empty if event is not `pull_request`) |

docs/docs/30-administration/22-backends/40-kubernetes.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ See the [kubernetes documentation](https://kubernetes.io/docs/concepts/security/
5555
### nodeSelector
5656

5757
Specify the label which is used to select the node where the job should be executed. Labels defined here will be appended to a list already containing "kubernetes.io/arch".
58-
By default the pod will use "kubernetes.io/arch" inferred from top-level "platform" setting which is deducted from the agents' environment variable CI_SYSTEM_ARCH. To overwrite this, you need to specify this label in the nodeSelector section.
58+
By default the pod will use "kubernetes.io/arch" inferred from top-level "platform" setting which is deducted from the agents' environment variable CI_SYSTEM_PLATFORM. To overwrite this, you need to specify this label in the nodeSelector section.
5959
See the [kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more information on using nodeSelector.
6060

6161
Example pipeline configuration:

docs/docs/91-migrations.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22

33
Some versions need some changes to the server configuration or the pipeline configuration files.
44

5-
## next
5+
## next (1.1.0)
66

7-
No breaking changes
7+
- Drop deprecated `CI_BUILD_*`, `CI_PREV_BUILD_*`, `CI_JOB_*`, `*_LINK`, `CI_SYSTEM_ARCH`, `CI_REPO_REMOTE` built-in environment variables
88

99
## 1.0.0
1010

docs/versioned_docs/version-1.0/20-usage/20-pipeline-syntax.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -452,7 +452,7 @@ Run on pushes to the default branch for the repository `owner/repo`:
452452

453453
```yaml
454454
when:
455-
- evaluate: 'CI_BUILD_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
455+
- evaluate: 'CI_PIPELINE_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
456456
```
457457

458458
Run on commits created by user `woodpecker-ci`:

docs/versioned_docs/version-1.0/20-usage/50-environment.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ This is the reference list of all environment variables available to your pipeli
6565
| `CI_COMMIT_REF` | commit ref |
6666
| `CI_COMMIT_REFSPEC` | commit ref spec |
6767
| `CI_COMMIT_BRANCH` | commit branch (equals target branch for pull requests) |
68-
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch |
69-
| `CI_COMMIT_TARGET_BRANCH` | commit target branch |
68+
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch (empty if event is not `pull_request`) |
69+
| `CI_COMMIT_TARGET_BRANCH` | commit target branch (empty if event is not `pull_request`) |
7070
| `CI_COMMIT_TAG` | commit tag name (empty if event is not `tag`) |
7171
| `CI_COMMIT_PULL_REQUEST` | commit pull request number (empty if event is not `pull_request`) |
7272
| `CI_COMMIT_PULL_REQUEST_LABELS` | labels assigned to pull request (empty if event is not `pull_request`) |

docs/versioned_docs/version-1.0/30-administration/22-backends/40-kubernetes.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ See the [kubernetes documentation](https://kubernetes.io/docs/concepts/security/
5555
### nodeSelector
5656

5757
Specify the label which is used to select the node where the job should be executed. Labels defined here will be appended to a list already containing "kubernetes.io/arch".
58-
By default the pod will use "kubernetes.io/arch" inferred from top-level "platform" setting which is deducted from the agents' environment variable CI_SYSTEM_ARCH. To overwrite this, you need to specify this label in the nodeSelector section.
58+
By default the pod will use "kubernetes.io/arch" inferred from top-level "platform" setting which is deducted from the agents' environment variable CI_SYSTEM_PLATFORM. To overwrite this, you need to specify this label in the nodeSelector section.
5959
See the [kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more information on using nodeSelector.
6060

6161
Example pipeline configuration:

pipeline/backend/kubernetes/pod.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ func Pod(namespace string, step *types.Step, labels, annotations map[string]stri
9595
labels["step"] = podName
9696

9797
var nodeSelector map[string]string
98-
platform, exist := step.Environment["CI_SYSTEM_ARCH"]
98+
platform, exist := step.Environment["CI_SYSTEM_PLATFORM"]
9999
if exist && platform != "" {
100100
arch := strings.Split(platform, "/")[1]
101101
nodeSelector = map[string]string{v1.LabelArchStable: arch}

pipeline/frontend/metadata/drone_compatibility_test.go

+1-25
Original file line numberDiff line numberDiff line change
@@ -10,72 +10,48 @@ import (
1010

1111
func TestSetDroneEnviron(t *testing.T) {
1212
woodpeckerVars := `CI=woodpecker
13-
CI_BUILD_CREATED=1685749339
14-
CI_BUILD_EVENT=pull_request
15-
CI_BUILD_FINISHED=1685749350
16-
CI_BUILD_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/9
17-
CI_BUILD_NUMBER=41
18-
CI_BUILD_STARTED=1685749339
19-
CI_BUILD_STATUS=success
2013
CI_COMMIT_AUTHOR=6543
2114
CI_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173
2215
CI_COMMIT_BRANCH=main
23-
CI_COMMIT_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/9
2416
CI_COMMIT_MESSAGE=fix testscript
2517
CI_COMMIT_PULL_REQUEST=9
2618
CI_COMMIT_REF=refs/pull/9/head
2719
CI_COMMIT_REFSPEC=fix_fail-on-err:main
2820
CI_COMMIT_SHA=a778b069d9f5992786d2db9be493b43868cfce76
2921
CI_COMMIT_SOURCE_BRANCH=fix_fail-on-err
3022
CI_COMMIT_TARGET_BRANCH=main
31-
CI_JOB_FINISHED=1685749350
32-
CI_JOB_STARTED=1685749339
33-
CI_JOB_STATUS=success
3423
CI_MACHINE=7939910e431b
3524
CI_PIPELINE_CREATED=1685749339
3625
CI_PIPELINE_EVENT=pull_request
3726
CI_PIPELINE_FINISHED=1685749350
38-
CI_PIPELINE_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/9
3927
CI_PIPELINE_NUMBER=41
4028
CI_PIPELINE_STARTED=1685749339
4129
CI_PIPELINE_STATUS=success
42-
CI_PREV_BUILD_CREATED=1685748680
43-
CI_PREV_BUILD_EVENT=pull_request
44-
CI_PREV_BUILD_FINISHED=1685748704
45-
CI_PREV_BUILD_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/13
46-
CI_PREV_BUILD_NUMBER=40
47-
CI_PREV_BUILD_STARTED=1685748680
48-
CI_PREV_BUILD_STATUS=success
4930
CI_PREV_COMMIT_AUTHOR=6543
5031
CI_PREV_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173
5132
CI_PREV_COMMIT_BRANCH=main
52-
CI_PREV_COMMIT_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/13
5333
CI_PREV_COMMIT_MESSAGE=Print filename and linenuber on fail
5434
CI_PREV_COMMIT_REF=refs/pull/13/head
5535
CI_PREV_COMMIT_REFSPEC=print_file_and_line:main
5636
CI_PREV_COMMIT_SHA=e246aff5a9466df2e522efc9007823a7496d9d41
5737
CI_PREV_PIPELINE_CREATED=1685748680
5838
CI_PREV_PIPELINE_EVENT=pull_request
5939
CI_PREV_PIPELINE_FINISHED=1685748704
60-
CI_PREV_PIPELINE_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/13
6140
CI_PREV_PIPELINE_NUMBER=40
6241
CI_PREV_PIPELINE_STARTED=1685748680
6342
CI_PREV_PIPELINE_STATUS=success
6443
CI_REPO=Epsilon_02/todo-checker
6544
CI_REPO_CLONE_URL=https://codeberg.org/Epsilon_02/todo-checker.git
6645
CI_REPO_DEFAULT_BRANCH=main
67-
CI_REPO_LINK=https://codeberg.org/Epsilon_02/todo-checker
6846
CI_REPO_NAME=todo-checker
6947
CI_REPO_OWNER=Epsilon_02
70-
CI_REPO_REMOTE=https://codeberg.org/Epsilon_02/todo-checker.git
7148
CI_REPO_SCM=git
7249
CI_STEP_FINISHED=1685749350
7350
CI_STEP_NAME=wp_01h1z7v5d1tskaqjexw0ng6w7d_0_step_3
7451
CI_STEP_STARTED=1685749339
7552
CI_STEP_STATUS=success
76-
CI_SYSTEM_ARCH=linux/amd64
53+
CI_SYSTEM_PLATFORM=linux/amd64
7754
CI_SYSTEM_HOST=ci.codeberg.org
78-
CI_SYSTEM_LINK=https://ci.codeberg.org
7955
CI_SYSTEM_NAME=woodpecker
8056
CI_SYSTEM_VERSION=next-dd644da3
8157
CI_WORKFLOW_NAME=woodpecker

pipeline/frontend/metadata/environment.go

-37
Original file line numberDiff line numberDiff line change
@@ -111,43 +111,6 @@ func (m *Metadata) Environ() map[string]string {
111111

112112
"CI_FORGE_TYPE": m.Forge.Type,
113113
"CI_FORGE_URL": m.Forge.URL,
114-
115-
// DEPRECATED
116-
"CI_SYSTEM_ARCH": m.Sys.Platform, // TODO: remove after v1.0.x version
117-
// use CI_PIPELINE_*
118-
"CI_BUILD_NUMBER": strconv.FormatInt(m.Curr.Number, 10),
119-
"CI_BUILD_PARENT": strconv.FormatInt(m.Curr.Parent, 10),
120-
"CI_BUILD_EVENT": m.Curr.Event,
121-
"CI_BUILD_LINK": m.Curr.Link,
122-
"CI_BUILD_DEPLOY_TARGET": m.Curr.Target,
123-
"CI_BUILD_STATUS": m.Curr.Status,
124-
"CI_BUILD_CREATED": strconv.FormatInt(m.Curr.Created, 10),
125-
"CI_BUILD_STARTED": strconv.FormatInt(m.Curr.Started, 10),
126-
"CI_BUILD_FINISHED": strconv.FormatInt(m.Curr.Finished, 10),
127-
// use CI_PREV_PIPELINE_*
128-
"CI_PREV_BUILD_NUMBER": strconv.FormatInt(m.Prev.Number, 10),
129-
"CI_PREV_BUILD_PARENT": strconv.FormatInt(m.Prev.Parent, 10),
130-
"CI_PREV_BUILD_EVENT": m.Prev.Event,
131-
"CI_PREV_BUILD_LINK": m.Prev.Link,
132-
"CI_PREV_BUILD_DEPLOY_TARGET": m.Prev.Target,
133-
"CI_PREV_BUILD_STATUS": m.Prev.Status,
134-
"CI_PREV_BUILD_CREATED": strconv.FormatInt(m.Prev.Created, 10),
135-
"CI_PREV_BUILD_STARTED": strconv.FormatInt(m.Prev.Started, 10),
136-
"CI_PREV_BUILD_FINISHED": strconv.FormatInt(m.Prev.Finished, 10),
137-
// use CI_STEP_*
138-
"CI_JOB_NUMBER": strconv.Itoa(m.Step.Number),
139-
"CI_JOB_STATUS": "", // will be set by agent
140-
"CI_JOB_STARTED": "", // will be set by agent
141-
"CI_JOB_FINISHED": "", // will be set by agent
142-
// CI_REPO_CLONE_URL
143-
"CI_REPO_REMOTE": m.Repo.CloneURL,
144-
// use *_URL
145-
"CI_REPO_LINK": m.Repo.Link,
146-
"CI_COMMIT_LINK": m.Curr.Link,
147-
"CI_PIPELINE_LINK": m.Curr.Link,
148-
"CI_PREV_COMMIT_LINK": m.Prev.Link,
149-
"CI_PREV_PIPELINE_LINK": m.Prev.Link,
150-
"CI_SYSTEM_LINK": m.Sys.Link,
151114
}
152115
if m.Curr.Event == EventTag {
153116
params["CI_COMMIT_TAG"] = strings.TrimPrefix(m.Curr.Commit.Ref, "refs/tags/")

0 commit comments

Comments
 (0)