fix: Put export script in own image
HEREDOC support for podman doesn't work exactly 1-1 with Dockerfiles. This fix gives the export script its own image that we mount.
This commit is contained in:
parent
ae9c3ef83a
commit
19c93ce742
9 changed files with 29 additions and 28 deletions
4
.github/workflows/build-pr.yml
vendored
4
.github/workflows/build-pr.yml
vendored
|
|
@ -44,6 +44,8 @@ jobs:
|
|||
packages: write
|
||||
timeout-minutes: 60
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
|
||||
steps:
|
||||
- name: Maximize build space
|
||||
|
|
@ -78,6 +80,8 @@ jobs:
|
|||
contents: read
|
||||
packages: write
|
||||
id-token: write
|
||||
needs:
|
||||
- build
|
||||
|
||||
steps:
|
||||
- name: Maximize build space
|
||||
|
|
|
|||
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
|
|
@ -58,6 +58,8 @@ jobs:
|
|||
packages: write
|
||||
timeout-minutes: 60
|
||||
runs-on: ubuntu-latest
|
||||
needs:
|
||||
- build
|
||||
|
||||
steps:
|
||||
- name: Maximize build space
|
||||
|
|
@ -92,6 +94,8 @@ jobs:
|
|||
contents: read
|
||||
packages: write
|
||||
id-token: write
|
||||
needs:
|
||||
- build
|
||||
|
||||
steps:
|
||||
- name: Maximize build space
|
||||
|
|
|
|||
|
|
@ -10,6 +10,9 @@ all:
|
|||
BUILD ./integration-tests+all
|
||||
|
||||
build:
|
||||
WAIT
|
||||
BUILD +exports-script
|
||||
END
|
||||
BUILD +lint
|
||||
BUILD +test
|
||||
BUILD +blue-build-cli
|
||||
|
|
@ -33,6 +36,12 @@ install:
|
|||
|
||||
SAVE ARTIFACT target/$BUILD_TARGET/release/bluebuild
|
||||
|
||||
exports-script:
|
||||
FROM alpine
|
||||
COPY exports.sh /
|
||||
RUN chmod +x exports.sh
|
||||
SAVE IMAGE --push ghcr.io/blue-build/cli/exports
|
||||
|
||||
common:
|
||||
FROM ghcr.io/blue-build/earthly-lib/cargo-builder
|
||||
|
||||
|
|
|
|||
|
|
@ -75,12 +75,10 @@ impl<'a> Module<'a> {
|
|||
|
||||
#[must_use]
|
||||
pub fn print_module_context(&'a self) -> String {
|
||||
serde_json::to_string(self)
|
||||
.unwrap_or_else(|e| {
|
||||
error!("Failed to parse module!!!!!: {e}");
|
||||
process::exit(1);
|
||||
})
|
||||
.replace('"', r#"\""#)
|
||||
serde_json::to_string(self).unwrap_or_else(|e| {
|
||||
error!("Failed to parse module!!!!!: {e}");
|
||||
process::exit(1);
|
||||
})
|
||||
}
|
||||
|
||||
#[must_use]
|
||||
|
|
|
|||
|
|
@ -75,12 +75,6 @@ pub struct GithubIssueTemplate<'a> {
|
|||
terminal_version: Cow<'a, str>,
|
||||
}
|
||||
|
||||
fn print_export_script() -> String {
|
||||
trace!("print_export_script()");
|
||||
|
||||
include_str!("../templates/export.sh").replace('$', r"\$")
|
||||
}
|
||||
|
||||
fn has_cosign_file() -> bool {
|
||||
trace!("has_cosign_file()");
|
||||
std::env::current_dir()
|
||||
|
|
|
|||
|
|
@ -1,3 +1,4 @@
|
|||
# syntax=docker/dockerfile:1
|
||||
{%- include "stages.j2" %}
|
||||
|
||||
FROM {{ recipe.base_image }}:{{ recipe.image_version }}
|
||||
|
|
|
|||
|
|
@ -27,15 +27,14 @@ RUN \
|
|||
{%- if type == "akmods" %}
|
||||
--mount=type=bind,from=stage-akmods-{{ module.generate_akmods_info(os_version).stage_name }},src=/rpms,dst=/tmp/rpms,rw \
|
||||
{%- endif %}
|
||||
--mount=type=bind,from=stage-exports,src=/exports.sh,dst=/tmp/exports.sh \
|
||||
--mount=type=bind,from=ghcr.io/blue-build/cli/exports,src=/exports.sh,dst=/tmp/exports.sh \
|
||||
--mount=type=cache,dst=/var/cache/rpm-ostree,id=rpm-ostree-cache-{{ recipe.name }}-{{ recipe.image_version }},sharing=locked \
|
||||
/bin/bash -c " \
|
||||
echo '========== Start {{ type|capitalize }} module ==========' \
|
||||
&& chmod +x /tmp/modules/{{ type }}/{{ type }}.sh \
|
||||
&& source /tmp/exports.sh \
|
||||
&& /tmp/modules/{{ type }}/{{ type }}.sh '{{ module.print_module_context() }}' \
|
||||
&& echo '========== End {{ type|capitalize }} module ==========' \
|
||||
&& ostree container commit"
|
||||
echo "========== Start {{ type|capitalize }} module ==========" \
|
||||
&& chmod +x /tmp/modules/{{ type }}/{{ type }}.sh \
|
||||
&& source /tmp/exports.sh \
|
||||
&& /tmp/modules/{{ type }}/{{ type }}.sh '{{ module.print_module_context() }}' \
|
||||
&& echo "========== End {{ type|capitalize }} module ==========" \
|
||||
&& ostree container commit
|
||||
{%- endif %}
|
||||
{%- endif %}
|
||||
{%- endfor %}
|
||||
|
|
|
|||
|
|
@ -42,11 +42,3 @@ COPY cosign.pub /keys/{{ recipe.name|replace('/', "_") }}.pub
|
|||
{%- endif %}
|
||||
|
||||
{%- include "modules/akmods/akmods.j2" %}
|
||||
|
||||
# This stage is responsible for holding onto
|
||||
# exports like the exports.sh
|
||||
FROM docker.io/alpine as stage-exports
|
||||
COPY <<EOF /exports.sh
|
||||
{{ self::print_export_script() }}
|
||||
EOF
|
||||
RUN chmod +x /exports.sh
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue