Parse secret inputs in reusable workflows (#41)
Secrets can be passed to reusable workflows, either explicitly by key or implicitly by `inherit`: https://docs.github.com/en/actions/using-workflows/reusing-workflows#using-inputs-and-secrets-in-a-reusable-workflow Reviewed-on: https://gitea.com/gitea/act/pulls/41 Reviewed-by: Jason Song <i@wolfogre.com> Co-authored-by: Galen Abell <galen@galenabell.com> Co-committed-by: Galen Abell <galen@galenabell.com>
This commit is contained in:
parent
ac1ba34518
commit
9bdddf18e0
4 changed files with 37 additions and 0 deletions
|
@ -37,6 +37,11 @@ func TestParse(t *testing.T) {
|
||||||
options: nil,
|
options: nil,
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "has_secrets",
|
||||||
|
options: nil,
|
||||||
|
wantErr: false,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
for _, tt := range tests {
|
for _, tt := range tests {
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
|
|
@ -88,6 +88,7 @@ type Job struct {
|
||||||
Outputs map[string]string `yaml:"outputs,omitempty"`
|
Outputs map[string]string `yaml:"outputs,omitempty"`
|
||||||
Uses string `yaml:"uses,omitempty"`
|
Uses string `yaml:"uses,omitempty"`
|
||||||
With map[string]interface{} `yaml:"with,omitempty"`
|
With map[string]interface{} `yaml:"with,omitempty"`
|
||||||
|
RawSecrets yaml.Node `yaml:"secrets,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (j *Job) Clone() *Job {
|
func (j *Job) Clone() *Job {
|
||||||
|
@ -109,6 +110,7 @@ func (j *Job) Clone() *Job {
|
||||||
Outputs: j.Outputs,
|
Outputs: j.Outputs,
|
||||||
Uses: j.Uses,
|
Uses: j.Uses,
|
||||||
With: j.With,
|
With: j.With,
|
||||||
|
RawSecrets: j.RawSecrets,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
14
pkg/jobparser/testdata/has_secrets.in.yaml
vendored
Normal file
14
pkg/jobparser/testdata/has_secrets.in.yaml
vendored
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
name: test
|
||||||
|
jobs:
|
||||||
|
job1:
|
||||||
|
name: job1
|
||||||
|
runs-on: linux
|
||||||
|
uses: .gitea/workflows/build.yml
|
||||||
|
secrets:
|
||||||
|
secret: hideme
|
||||||
|
|
||||||
|
job2:
|
||||||
|
name: job2
|
||||||
|
runs-on: linux
|
||||||
|
uses: .gitea/workflows/build.yml
|
||||||
|
secrets: inherit
|
16
pkg/jobparser/testdata/has_secrets.out.yaml
vendored
Normal file
16
pkg/jobparser/testdata/has_secrets.out.yaml
vendored
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
name: test
|
||||||
|
jobs:
|
||||||
|
job1:
|
||||||
|
name: job1
|
||||||
|
runs-on: linux
|
||||||
|
uses: .gitea/workflows/build.yml
|
||||||
|
secrets:
|
||||||
|
secret: hideme
|
||||||
|
---
|
||||||
|
name: test
|
||||||
|
jobs:
|
||||||
|
job2:
|
||||||
|
name: job2
|
||||||
|
runs-on: linux
|
||||||
|
uses: .gitea/workflows/build.yml
|
||||||
|
secrets: inherit
|
Loading…
Reference in a new issue