-
Notifications
You must be signed in to change notification settings - Fork 203
/
user.go
61 lines (49 loc) · 1.54 KB
/
user.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package stage
import (
"context"
"os"
"github.com/werf/logboek"
"github.com/werf/werf/pkg/build/builder"
"github.com/werf/werf/pkg/config"
"github.com/werf/werf/pkg/util"
)
func getBuilder(imageBaseConfig *config.StapelImageBase, baseStageOptions *NewBaseStageOptions) builder.Builder {
var b builder.Builder
extra := &builder.Extra{ContainerWerfPath: baseStageOptions.ContainerWerfDir, TmpPath: baseStageOptions.ImageTmpDir}
if imageBaseConfig.Shell != nil {
b = builder.NewShellBuilder(imageBaseConfig.Shell, extra)
} else if imageBaseConfig.Ansible != nil {
b = builder.NewAnsibleBuilder(imageBaseConfig.Ansible, extra)
}
return b
}
func newUserStage(builder builder.Builder, name StageName, baseStageOptions *NewBaseStageOptions) *UserStage {
s := &UserStage{}
s.builder = builder
s.BaseStage = newBaseStage(name, baseStageOptions)
return s
}
type UserStage struct {
*BaseStage
builder builder.Builder
}
func (s *UserStage) getStageDependenciesChecksum(ctx context.Context, c Conveyor, name StageName) (string, error) {
var args []string
for _, gitMapping := range s.gitMappings {
checksum, err := gitMapping.StageDependenciesChecksum(ctx, c, name)
if err != nil {
return "", err
}
if debugUserStageChecksum() {
logboek.Context(ctx).Debug().LogFHighlight(
"DEBUG: %s stage git mapping %s checksum %v\n",
name, gitMapping.Name, checksum,
)
}
args = append(args, checksum)
}
return util.Sha256Hash(args...), nil
}
func debugUserStageChecksum() bool {
return os.Getenv("WERF_DEBUG_USER_STAGE_CHECKSUM") == "1"
}