fix: use correct base image
diff --git a/internal/pkg/image_repositories/build_workflow.go b/internal/pkg/image_repositories/build_workflow.go
index 92084b9..2864a57 100644
--- a/internal/pkg/image_repositories/build_workflow.go
+++ b/internal/pkg/image_repositories/build_workflow.go
@@ -77,6 +77,7 @@
}
buildArgs := []string{
+ "RUNTIME_IMAGE=quay.io/vexxhost/openstack-runtime-${{ matrix.from }}",
"RELEASE=${{ matrix.release }}",
fmt.Sprintf("PROJECT=%s", project),
fmt.Sprintf("PROJECT_REPO=%s", gitRepo),
@@ -105,8 +106,23 @@
"image": {
RunsOn: "ubuntu-latest",
Strategy: GithubWorkflowStrategy{
- Matrix: map[string][]string{
- "release": {"wallaby", "xena", "yoga", "zed"},
+ Matrix: map[string]interface{}{
+ "from": []string{"focal", "jammy"},
+ "release": []string{"wallaby", "xena", "yoga", "zed"},
+ "exclude": []map[string]string{
+ {
+ "from": "focal",
+ "release": "zed",
+ },
+ {
+ "from": "jammy",
+ "release": "wallaby",
+ },
+ {
+ "from": "jammy",
+ "release": "xena",
+ },
+ },
},
},
Steps: []GithubWorkflowStep{
@@ -141,20 +157,24 @@
Uses: "docker/build-push-action@v3",
With: map[string]string{
"context": ".",
- "cache-from": "type=gha,scope=${{ matrix.release }}",
- "cache-to": "type=gha,mode=max,scope=${{ matrix.release }}",
+ "cache-from": "type=gha,scope=${{ matrix.from }}-${{ matrix.release }}",
+ "cache-to": "type=gha,mode=max,scope=${{ matrix.from }}-${{ matrix.release }}",
"platforms": platforms,
"push": "${{ github.event_name == 'push' }}",
"build-args": strings.Join(buildArgs, "\n"),
- "tags": fmt.Sprintf("quay.io/vexxhost/%s:${{ env.PROJECT_REF }}", project),
+ "tags": fmt.Sprintf("quay.io/vexxhost/%s:${{ env.PROJECT_REF }}-${{ matrix.from }}", project),
},
},
{
Name: "Promote image",
Uses: "akhilerm/tag-push-action@v2.0.0",
- If: "github.ref == 'refs/heads/main'",
+ If: `
+ github.event_name == 'push' && (
+ (matrix.from == 'focal') ||
+ (matrix.from == 'jammy' && matrix.release != 'yoga')
+ )`,
With: map[string]string{
- "src": fmt.Sprintf("quay.io/vexxhost/%s:${{ env.PROJECT_REF }}", project),
+ "src": fmt.Sprintf("quay.io/vexxhost/%s:${{ env.PROJECT_REF }}-${{ matrix.from }}", project),
"dst": fmt.Sprintf("quay.io/vexxhost/%s:${{ matrix.release }}", project),
},
},
diff --git a/internal/pkg/image_repositories/github_workflow.go b/internal/pkg/image_repositories/github_workflow.go
index d4d6763..7927e92 100644
--- a/internal/pkg/image_repositories/github_workflow.go
+++ b/internal/pkg/image_repositories/github_workflow.go
@@ -56,7 +56,7 @@
}
type GithubWorkflowStrategy struct {
- Matrix map[string][]string `yaml:"matrix"`
+ Matrix map[string]interface{} `yaml:"matrix"`
}
type GithubWorkflowStep struct {
diff --git a/internal/pkg/image_repositories/template/Dockerfile b/internal/pkg/image_repositories/template/Dockerfile
index 29257ae..567af2b 100644
--- a/internal/pkg/image_repositories/template/Dockerfile
+++ b/internal/pkg/image_repositories/template/Dockerfile
@@ -5,7 +5,8 @@
FROM {{ .BuilderImage }}:{{ .BuilderImageTag }} AS builder
COPY --from=bindep --link /runtime-pip-packages /runtime-pip-packages
-FROM {{ .RuntimeImage }}:{{ .RuntimeImageTag }} AS runtime
+ARG RUNTIME_IMAGE={{ .RuntimeImage }}
+FROM ${FROM}:{{ .RuntimeImageTag }} AS runtime
COPY --from=bindep --link /runtime-dist-packages /runtime-dist-packages
COPY --from=builder --link /var/lib/openstack /var/lib/openstack