Skip to content

Commit 3757dc7

Browse files
committed
Revert "Drop deprecated built-in environment variables (woodpecker-ci#2048)"
This reverts commit a83b0fc.
1 parent 0fab6b1 commit 3757dc7

File tree

31 files changed

+260
-175
lines changed

31 files changed

+260
-175
lines changed

agent/tracer.go

+13-1
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,23 @@ 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_PLATFORM"] = runtime.GOOS + "/" + runtime.GOARCH
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)
8088

8189
if state.Pipeline.Error != nil {
8290
state.Pipeline.Step.Environment["CI_PIPELINE_STATUS"] = "failure"
8391
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"
8496
}
8597

8698
return nil

cli/exec/flags.go

+7-7
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ var flags = []cli.Flag{
129129
Value: "woodpecker",
130130
},
131131
&cli.StringFlag{
132-
EnvVars: []string{"CI_SYSTEM_URL"},
132+
EnvVars: []string{"CI_SYSTEM_URL", "CI_SYSTEM_LINK"},
133133
Name: "system-link",
134134
Value: "https://github.com/woodpecker-ci/woodpecker",
135135
},
@@ -143,11 +143,11 @@ var flags = []cli.Flag{
143143
Name: "repo-remote-id",
144144
},
145145
&cli.StringFlag{
146-
EnvVars: []string{"CI_REPO_URL"},
146+
EnvVars: []string{"CI_REPO_URL", "CI_REPO_LINK"},
147147
Name: "repo-link",
148148
},
149149
&cli.StringFlag{
150-
EnvVars: []string{"CI_REPO_CLONE_URL"},
150+
EnvVars: []string{"CI_REPO_CLONE_URL", "CI_REPO_REMOTE"},
151151
Name: "repo-clone-url",
152152
},
153153
&cli.StringFlag{
@@ -192,7 +192,7 @@ var flags = []cli.Flag{
192192
Value: "manual",
193193
},
194194
&cli.StringFlag{
195-
EnvVars: []string{"CI_PIPELINE_URL"},
195+
EnvVars: []string{"CI_PIPELINE_URL", "CI_PIPELINE_LINK"},
196196
Name: "pipeline-link",
197197
},
198198
&cli.StringFlag{
@@ -256,7 +256,7 @@ var flags = []cli.Flag{
256256
Name: "prev-pipeline-event",
257257
},
258258
&cli.StringFlag{
259-
EnvVars: []string{"CI_PREV_PIPELINE_URL"},
259+
EnvVars: []string{"CI_PREV_PIPELINE_URL", "CI_PREV_PIPELINE_LINK"},
260260
Name: "prev-pipeline-link",
261261
},
262262
&cli.StringFlag{
@@ -296,11 +296,11 @@ var flags = []cli.Flag{
296296
Name: "workflow-name",
297297
},
298298
&cli.IntFlag{
299-
EnvVars: []string{"CI_WORKFLOW_NUMBER"},
299+
EnvVars: []string{"CI_WORKFLOW_NUMBER", "CI_JOB_NUMBER"},
300300
Name: "workflow-number",
301301
},
302302
&cli.IntFlag{
303-
EnvVars: []string{"CI_STEP_NAME"},
303+
EnvVars: []string{"CI_STEP_NAME", "CI_JOB_NUMBER"},
304304
Name: "step-name",
305305
},
306306
&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_PIPELINE_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
455+
- evaluate: 'CI_BUILD_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
@@ -66,8 +66,8 @@ This is the reference list of all environment variables available to your pipeli
6666
| `CI_COMMIT_REF` | commit ref |
6767
| `CI_COMMIT_REFSPEC` | commit ref spec |
6868
| `CI_COMMIT_BRANCH` | commit branch (equals target branch for pull requests) |
69-
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch (empty if event is not `pull_request`) |
70-
| `CI_COMMIT_TARGET_BRANCH` | commit target branch (empty if event is not `pull_request`) |
69+
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch |
70+
| `CI_COMMIT_TARGET_BRANCH` | commit target branch |
7171
| `CI_COMMIT_TAG` | commit tag name (empty if event is not `tag`) |
7272
| `CI_COMMIT_PULL_REQUEST` | commit pull request number (empty if event is not `pull_request`) |
7373
| `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
@@ -81,7 +81,7 @@ See the [kubernetes documentation](https://kubernetes.io/docs/concepts/security/
8181
### nodeSelector
8282

8383
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".
84-
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.
84+
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.
8585
See the [kubernetes documentation](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector) for more information on using nodeSelector.
8686

8787
### tolerations

docs/docs/91-migrations.md

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

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

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

7-
- Drop deprecated `CI_BUILD_*`, `CI_PREV_BUILD_*`, `CI_JOB_*`, `*_LINK`, `CI_SYSTEM_ARCH`, `CI_REPO_REMOTE` built-in environment variables
8-
- Drop deprecated `pipeline:` keyword for steps in yaml config
9-
- Drop deprecated `branches:` keyword for global branch filter
7+
No breaking changes
108

119
## 1.0.0
1210

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

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

460460
```yaml
461461
when:
462-
- evaluate: 'CI_PIPELINE_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
462+
- evaluate: 'CI_BUILD_EVENT == "push" && CI_REPO == "owner/repo" && CI_COMMIT_BRANCH == CI_REPO_DEFAULT_BRANCH'
463463
```
464464

465465
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 (empty if event is not `pull_request`) |
69-
| `CI_COMMIT_TARGET_BRANCH` | commit target branch (empty if event is not `pull_request`) |
68+
| `CI_COMMIT_SOURCE_BRANCH` | commit source branch |
69+
| `CI_COMMIT_TARGET_BRANCH` | commit target branch |
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_PLATFORM. 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_ARCH. 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
@@ -109,7 +109,7 @@ func Pod(namespace string, step *types.Step, labels, annotations map[string]stri
109109
labels["step"] = podName
110110

111111
var nodeSelector map[string]string
112-
platform, exist := step.Environment["CI_SYSTEM_PLATFORM"]
112+
platform, exist := step.Environment["CI_SYSTEM_ARCH"]
113113
if exist && platform != "" {
114114
arch := strings.Split(platform, "/")[1]
115115
nodeSelector = map[string]string{v1.LabelArchStable: arch}

pipeline/frontend/metadata/drone_compatibility_test.go

+25-1
Original file line numberDiff line numberDiff line change
@@ -24,48 +24,72 @@ import (
2424

2525
func TestSetDroneEnviron(t *testing.T) {
2626
woodpeckerVars := `CI=woodpecker
27+
CI_BUILD_CREATED=1685749339
28+
CI_BUILD_EVENT=pull_request
29+
CI_BUILD_FINISHED=1685749350
30+
CI_BUILD_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/9
31+
CI_BUILD_NUMBER=41
32+
CI_BUILD_STARTED=1685749339
33+
CI_BUILD_STATUS=success
2734
CI_COMMIT_AUTHOR=6543
2835
CI_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173
2936
CI_COMMIT_BRANCH=main
37+
CI_COMMIT_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/9
3038
CI_COMMIT_MESSAGE=fix testscript
3139
CI_COMMIT_PULL_REQUEST=9
3240
CI_COMMIT_REF=refs/pull/9/head
3341
CI_COMMIT_REFSPEC=fix_fail-on-err:main
3442
CI_COMMIT_SHA=a778b069d9f5992786d2db9be493b43868cfce76
3543
CI_COMMIT_SOURCE_BRANCH=fix_fail-on-err
3644
CI_COMMIT_TARGET_BRANCH=main
45+
CI_JOB_FINISHED=1685749350
46+
CI_JOB_STARTED=1685749339
47+
CI_JOB_STATUS=success
3748
CI_MACHINE=7939910e431b
3849
CI_PIPELINE_CREATED=1685749339
3950
CI_PIPELINE_EVENT=pull_request
4051
CI_PIPELINE_FINISHED=1685749350
52+
CI_PIPELINE_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/9
4153
CI_PIPELINE_NUMBER=41
4254
CI_PIPELINE_STARTED=1685749339
4355
CI_PIPELINE_STATUS=success
56+
CI_PREV_BUILD_CREATED=1685748680
57+
CI_PREV_BUILD_EVENT=pull_request
58+
CI_PREV_BUILD_FINISHED=1685748704
59+
CI_PREV_BUILD_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/13
60+
CI_PREV_BUILD_NUMBER=40
61+
CI_PREV_BUILD_STARTED=1685748680
62+
CI_PREV_BUILD_STATUS=success
4463
CI_PREV_COMMIT_AUTHOR=6543
4564
CI_PREV_COMMIT_AUTHOR_AVATAR=https://codeberg.org/avatars/09a234c768cb9bca78f6b2f82d6af173
4665
CI_PREV_COMMIT_BRANCH=main
66+
CI_PREV_COMMIT_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/13
4767
CI_PREV_COMMIT_MESSAGE=Print filename and linenuber on fail
4868
CI_PREV_COMMIT_REF=refs/pull/13/head
4969
CI_PREV_COMMIT_REFSPEC=print_file_and_line:main
5070
CI_PREV_COMMIT_SHA=e246aff5a9466df2e522efc9007823a7496d9d41
5171
CI_PREV_PIPELINE_CREATED=1685748680
5272
CI_PREV_PIPELINE_EVENT=pull_request
5373
CI_PREV_PIPELINE_FINISHED=1685748704
74+
CI_PREV_PIPELINE_LINK=https://codeberg.org/Epsilon_02/todo-checker/pulls/13
5475
CI_PREV_PIPELINE_NUMBER=40
5576
CI_PREV_PIPELINE_STARTED=1685748680
5677
CI_PREV_PIPELINE_STATUS=success
5778
CI_REPO=Epsilon_02/todo-checker
5879
CI_REPO_CLONE_URL=https://codeberg.org/Epsilon_02/todo-checker.git
5980
CI_REPO_DEFAULT_BRANCH=main
81+
CI_REPO_LINK=https://codeberg.org/Epsilon_02/todo-checker
6082
CI_REPO_NAME=todo-checker
6183
CI_REPO_OWNER=Epsilon_02
84+
CI_REPO_REMOTE=https://codeberg.org/Epsilon_02/todo-checker.git
6285
CI_REPO_SCM=git
6386
CI_STEP_FINISHED=1685749350
6487
CI_STEP_NAME=wp_01h1z7v5d1tskaqjexw0ng6w7d_0_step_3
6588
CI_STEP_STARTED=1685749339
6689
CI_STEP_STATUS=success
67-
CI_SYSTEM_PLATFORM=linux/amd64
90+
CI_SYSTEM_ARCH=linux/amd64
6891
CI_SYSTEM_HOST=ci.codeberg.org
92+
CI_SYSTEM_LINK=https://ci.codeberg.org
6993
CI_SYSTEM_NAME=woodpecker
7094
CI_SYSTEM_VERSION=next-dd644da3
7195
CI_WORKFLOW_NAME=woodpecker

pipeline/frontend/metadata/environment.go

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

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

0 commit comments

Comments
 (0)