From e60d736eb087e6f8f04454c45b4a23d73b3a4b7a Mon Sep 17 00:00:00 2001 From: Lucas TESSON Date: Thu, 16 Jan 2025 23:03:31 +0100 Subject: [PATCH] fix(ci): copy binary headers --- api/run_test.go | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/api/run_test.go b/api/run_test.go index 5e90cfc..7d1b5e4 100644 --- a/api/run_test.go +++ b/api/run_test.go @@ -177,15 +177,31 @@ func scenario() ([]byte, error) { } // Add binary file - bmain, err := compile() + fs, err := compile() if err != nil { return nil, err } - w, err = archive.Create("main") + defer fs.Close() + + fst, err := fs.Stat() + if err != nil { + return nil, err + } + header, err := zip.FileInfoHeader(fst) + if err != nil { + return nil, err + } + header.Name = "main" + + // Create archive + f, err := archive.CreateHeader(header) if err != nil { return nil, err } - if _, err := io.Copy(w, bytes.NewBuffer(bmain)); err != nil { + + // Copy the file's contents into the archive. + _, err = io.Copy(f, fs) + if err != nil { return nil, err } @@ -197,7 +213,7 @@ func scenario() ([]byte, error) { return buf.Bytes(), nil } -func compile() ([]byte, error) { +func compile() (*os.File, error) { cmd := exec.Command("go", "build", "-o", "main", "../examples/dynamiciac/scenario/main.go") cmd.Env = append(os.Environ(), "CGO_ENABLED=0") if err := cmd.Run(); err != nil { @@ -207,7 +223,7 @@ func compile() ([]byte, error) { cmd := exec.Command("rm", "main") _ = cmd.Run() }() - return os.ReadFile("main") + return os.Open("main") } func ptr[T any](t T) *T {