From 85a6e38644be8baf9820e2b37f5c3d8a8e39955b Mon Sep 17 00:00:00 2001 From: Jeff Wong Date: Thu, 29 Aug 2024 00:59:12 -0700 Subject: [PATCH] FEATURE: Add workflow for `launcher_go` (#848) --- .github/workflows/build.yml | 6 ++++ .github/workflows/launcher_go.yml | 47 +++++++++++++++++++++++++++++++ launcher_go/v2/cli_build_test.go | 12 ++++---- launcher_go/v2/docker/commands.go | 2 +- 4 files changed, 61 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/launcher_go.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 712793a..434d8c9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,13 @@ on: push: branches: - main + paths-ignore: + - "launcher_go/**" + - ".github/workflows/launcher_go.yml" pull_request: + paths-ignore: + - "launcher_go/**" + - ".github/workflows/launcher_go.yml" schedule: - cron: "0 0 * * *" diff --git a/.github/workflows/launcher_go.yml b/.github/workflows/launcher_go.yml new file mode 100644 index 0000000..2c890f7 --- /dev/null +++ b/.github/workflows/launcher_go.yml @@ -0,0 +1,47 @@ +name: launcher_go + +on: + push: + branches: + - main + paths: + - "launcher_go/**" + - ".github/workflows/launcher_go.yml" + pull_request: + paths: + - "launcher_go/**" + - ".github/workflows/launcher_go.yml" + +jobs: + lint: + runs-on: ubuntu-latest + timeout-minutes: 5 + strategy: + fail-fast: true + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: ">=1.21.0" + - name: Run gofmt + working-directory: ./launcher_go/v2 + run: | + if [ "$(gofmt -l . | wc -l)" -gt 0 ]; then + exit 1 + fi + + test: + runs-on: ${{ matrix.os }} + timeout-minutes: 5 + strategy: + fail-fast: true + matrix: + os: [ubuntu-latest, macos-latest] + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-go@v5 + with: + go-version: ">=1.21.0" + - name: Run tests + working-directory: ./launcher_go/v2 + run: go test ./... diff --git a/launcher_go/v2/cli_build_test.go b/launcher_go/v2/cli_build_test.go index 35fe175..66fe757 100644 --- a/launcher_go/v2/cli_build_test.go +++ b/launcher_go/v2/cli_build_test.go @@ -35,8 +35,10 @@ var _ = Describe("Build", func() { TemplatesDir: "./test", BuildDir: testDir, } + utils.CmdRunner = CreateNewFakeCmdRunner() }) + AfterEach(func() { os.RemoveAll(testDir) }) @@ -72,8 +74,8 @@ var _ = Describe("Build", func() { } var checkConfigureCmd = func(cmd exec.Cmd) { - Expect(cmd.String()).To(Equal( - "/usr/local/bin/docker run " + + Expect(cmd.String()).To(ContainSubstring( + "docker run " + "--env DISCOURSE_DB_HOST " + "--env DISCOURSE_DB_PASSWORD " + "--env DISCOURSE_DB_PORT " + @@ -143,8 +145,8 @@ var _ = Describe("Build", func() { // commit on configure var checkConfigureCommit = func(cmd exec.Cmd) { Expect(cmd.String()).To(MatchRegexp( - "/usr/local/bin/docker commit " + - `--change LABEL org\.opencontainers\.image\.created="[\d\-T:+]+" ` + + "docker commit " + + `--change LABEL org\.opencontainers\.image\.created="[\d\-T:Z]+" ` + `--change CMD \["/sbin/boot"\] ` + "discourse-build-test local_discourse/test", )) @@ -154,7 +156,7 @@ var _ = Describe("Build", func() { // configure also cleans up var checkConfigureClean = func(cmd exec.Cmd) { - Expect(cmd.String()).To(Equal("/usr/local/bin/docker rm --force discourse-build-test")) + Expect(cmd.String()).To(ContainSubstring("docker rm --force discourse-build-test")) } It("Should run docker build with correct arguments", func() { diff --git a/launcher_go/v2/docker/commands.go b/launcher_go/v2/docker/commands.go index c9636e4..f552163 100644 --- a/launcher_go/v2/docker/commands.go +++ b/launcher_go/v2/docker/commands.go @@ -270,7 +270,7 @@ func (r *DockerPupsRunner) Run() error { cmd := exec.Command("docker", "commit", "--change", - "LABEL org.opencontainers.image.created=\""+time.Now().Format(time.RFC3339)+"\"", + "LABEL org.opencontainers.image.created=\""+time.Now().UTC().Format(time.RFC3339)+"\"", "--change", "CMD [\""+r.Config.BootCommand()+"\"]", r.ContainerId, -- 2.25.1