mirror of
https://github.com/go-task/task.git
synced 2026-07-01 00:24:30 +00:00
Compare commits
3 Commits
nightly
...
renovate/g
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b118607dcb | ||
|
|
d601746d4b | ||
|
|
e415d7135e |
2
.github/workflows/release-nightly.yml
vendored
2
.github/workflows/release-nightly.yml
vendored
@@ -23,7 +23,7 @@ jobs:
|
||||
go-version: 1.26.x
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89 # v7
|
||||
uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94 # v7
|
||||
with:
|
||||
distribution: goreleaser-pro
|
||||
version: latest
|
||||
|
||||
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@@ -41,7 +41,7 @@ jobs:
|
||||
run_install: "true"
|
||||
|
||||
- name: Run GoReleaser
|
||||
uses: goreleaser/goreleaser-action@5daf1e915a5f0af01ddbcd89a43b8061ff4f1a89 # v7
|
||||
uses: goreleaser/goreleaser-action@f06c13b6b1a9625abc9e6e439d9c05a8f2190e94 # v7
|
||||
with:
|
||||
distribution: goreleaser-pro
|
||||
version: latest
|
||||
|
||||
@@ -98,6 +98,9 @@ func (vars *Vars) Values() iter.Seq[Var] {
|
||||
// ToCacheMap converts Vars to an unordered map containing only the static
|
||||
// variables
|
||||
func (vars *Vars) ToCacheMap() (m map[string]any) {
|
||||
if vars == nil || vars.om == nil {
|
||||
return nil
|
||||
}
|
||||
defer vars.mutex.RUnlock()
|
||||
vars.mutex.RLock()
|
||||
m = make(map[string]any, vars.Len())
|
||||
|
||||
55
taskfile/ast/vars_test.go
Normal file
55
taskfile/ast/vars_test.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package ast
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
func TestVars_ToCacheMap(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
t.Run("nil receiver returns nil", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
var vars *Vars
|
||||
assert.Nil(t, vars.ToCacheMap())
|
||||
})
|
||||
|
||||
t.Run("empty vars returns empty map", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
vars := NewVars()
|
||||
m := vars.ToCacheMap()
|
||||
assert.NotNil(t, m)
|
||||
assert.Empty(t, m)
|
||||
})
|
||||
|
||||
t.Run("static values are included", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
vars := NewVars(
|
||||
&VarElement{Key: "FOO", Value: Var{Value: "bar"}},
|
||||
&VarElement{Key: "NUM", Value: Var{Value: 42}},
|
||||
)
|
||||
m := vars.ToCacheMap()
|
||||
assert.Equal(t, map[string]any{"FOO": "bar", "NUM": 42}, m)
|
||||
})
|
||||
|
||||
t.Run("live values take precedence over static values", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
vars := NewVars(
|
||||
&VarElement{Key: "FOO", Value: Var{Value: "bar", Live: "live-bar"}},
|
||||
)
|
||||
m := vars.ToCacheMap()
|
||||
assert.Equal(t, map[string]any{"FOO": "live-bar"}, m)
|
||||
})
|
||||
|
||||
t.Run("dynamic variables are excluded", func(t *testing.T) {
|
||||
t.Parallel()
|
||||
sh := "echo hello"
|
||||
vars := NewVars(
|
||||
&VarElement{Key: "STATIC", Value: Var{Value: "ok"}},
|
||||
&VarElement{Key: "DYNAMIC", Value: Var{Sh: &sh}},
|
||||
)
|
||||
m := vars.ToCacheMap()
|
||||
assert.Equal(t, map[string]any{"STATIC": "ok"}, m)
|
||||
})
|
||||
}
|
||||
@@ -566,7 +566,7 @@ tasks:
|
||||
```
|
||||
|
||||
In pipeline form, `join` receives the list from the left-hand side. The
|
||||
equivalent non-pipeline form is `{{join " " .WORDS}}`.
|
||||
equivalent non-pipeline form is <span v-pre>`{{join " " .WORDS}}`</span>.
|
||||
|
||||
#### Shell Argument Parsing
|
||||
|
||||
|
||||
Reference in New Issue
Block a user