Pass dockerfile to build executor (#1606)
This allows testing actions with non standard dockerfile names Signed-off-by: Aidan Jensen <aidan@artificial.com>
This commit is contained in:
parent
36dbbc1dfa
commit
44333c758a
|
@ -55,6 +55,7 @@ type Container interface {
|
||||||
// NewDockerBuildExecutorInput the input for the NewDockerBuildExecutor function
|
// NewDockerBuildExecutorInput the input for the NewDockerBuildExecutor function
|
||||||
type NewDockerBuildExecutorInput struct {
|
type NewDockerBuildExecutorInput struct {
|
||||||
ContextDir string
|
ContextDir string
|
||||||
|
Dockerfile string
|
||||||
Container Container
|
Container Container
|
||||||
ImageTag string
|
ImageTag string
|
||||||
Platform string
|
Platform string
|
||||||
|
|
|
@ -45,12 +45,13 @@ func NewDockerBuildExecutor(input NewDockerBuildExecutorInput) common.Executor {
|
||||||
Remove: true,
|
Remove: true,
|
||||||
Platform: input.Platform,
|
Platform: input.Platform,
|
||||||
AuthConfigs: LoadDockerAuthConfigs(ctx),
|
AuthConfigs: LoadDockerAuthConfigs(ctx),
|
||||||
|
Dockerfile: input.Dockerfile,
|
||||||
}
|
}
|
||||||
var buildContext io.ReadCloser
|
var buildContext io.ReadCloser
|
||||||
if input.Container != nil {
|
if input.Container != nil {
|
||||||
buildContext, err = input.Container.GetContainerArchive(ctx, input.ContextDir+"/.")
|
buildContext, err = input.Container.GetContainerArchive(ctx, input.ContextDir+"/.")
|
||||||
} else {
|
} else {
|
||||||
buildContext, err = createBuildContext(ctx, input.ContextDir, "Dockerfile")
|
buildContext, err = createBuildContext(ctx, input.ContextDir, input.Dockerfile)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
@ -231,7 +231,7 @@ func execAsDocker(ctx context.Context, step actionStep, actionName string, based
|
||||||
image = fmt.Sprintf("%s-dockeraction:%s", regexp.MustCompile("[^a-zA-Z0-9]").ReplaceAllString(actionName, "-"), "latest")
|
image = fmt.Sprintf("%s-dockeraction:%s", regexp.MustCompile("[^a-zA-Z0-9]").ReplaceAllString(actionName, "-"), "latest")
|
||||||
image = fmt.Sprintf("act-%s", strings.TrimLeft(image, "-"))
|
image = fmt.Sprintf("act-%s", strings.TrimLeft(image, "-"))
|
||||||
image = strings.ToLower(image)
|
image = strings.ToLower(image)
|
||||||
contextDir, _ := filepath.Split(filepath.Join(basedir, action.Runs.Image))
|
contextDir, fileName := filepath.Split(filepath.Join(basedir, action.Runs.Image))
|
||||||
|
|
||||||
anyArchExists, err := container.ImageExistsLocally(ctx, image, "any")
|
anyArchExists, err := container.ImageExistsLocally(ctx, image, "any")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -261,6 +261,7 @@ func execAsDocker(ctx context.Context, step actionStep, actionName string, based
|
||||||
}
|
}
|
||||||
prepImage = container.NewDockerBuildExecutor(container.NewDockerBuildExecutorInput{
|
prepImage = container.NewDockerBuildExecutor(container.NewDockerBuildExecutorInput{
|
||||||
ContextDir: contextDir,
|
ContextDir: contextDir,
|
||||||
|
Dockerfile: fileName,
|
||||||
ImageTag: image,
|
ImageTag: image,
|
||||||
Container: actionContainer,
|
Container: actionContainer,
|
||||||
Platform: rc.Config.ContainerArchitecture,
|
Platform: rc.Config.ContainerArchitecture,
|
||||||
|
|
|
@ -11,3 +11,5 @@ jobs:
|
||||||
- uses: './actions-environment-and-context-tests/docker'
|
- uses: './actions-environment-and-context-tests/docker'
|
||||||
- uses: 'nektos/act-test-actions/js@main'
|
- uses: 'nektos/act-test-actions/js@main'
|
||||||
- uses: 'nektos/act-test-actions/docker@main'
|
- uses: 'nektos/act-test-actions/docker@main'
|
||||||
|
- uses: 'nektos/act-test-actions/docker-file@main'
|
||||||
|
- uses: 'nektos/act-test-actions/docker-relative-context/action@main'
|
||||||
|
|
Loading…
Reference in New Issue