pulumi/sdk/go
Dan Lorenc cc7ab7e22b
Fix race condition in go/generate function.
We were building pulumi and hit an error in this function when running the makefile, but only in certain environments.
I read the code, and it looks like there's a race condition here where the gofmt command finishes
before the io.Copy starts, giving us this error:

⚠️  x86_64    | + make build
ℹ️  x86_64    | BUILD:
ℹ️  x86_64    | go generate ./pulumi/...
⚠️  x86_64    | panic: unexpected error running gofmt: read |0: file already closed

The go async function is unnecessary here, and the Go exec docs explain that StderrPipe should not be used
with Run: https://pkg.go.dev/os/exec#Cmd.StderrPipe

CombinedOutput is a simpler way to accomplish the same thing, and fixes the race condition.

Signed-off-by: Dan Lorenc <dlorenc@chainguard.dev>
2023-05-04 07:42:08 -04:00
..
auto Added missing flag to honor the CLI. Fixed #12254 2023-03-28 21:12:38 +02:00
common Merge #12451 2023-04-24 15:17:41 +00:00
pulumi Fix race condition in go/generate function. 2023-05-04 07:42:08 -04:00
pulumi-language-go Merge #12755 2023-04-26 20:34:59 +00:00
Makefile ci: Enable testing of language version sets 2022-09-21 09:48:38 -07:00
README.md `pulumi update` => `pulumi up` (#2702) 2019-05-06 14:00:18 -07:00

README.md

Pulumi Golang SDK

This directory contains support for writing Pulumi programs in the Go language. There are two aspects to this:

  • pulumi/ contains the client language bindings Pulumi program's code directly against;
  • pulumi-language-go/ contains the language host plugin that the Pulumi engine uses to orchestrate updates.

To author a Pulumi program in Go, simply say so in your Pulumi.yaml

name: <my-project>
runtime: go

and ensure you have pulumi-language-go on your path (it is distributed in the Pulumi download automatically).

By default, the language plugin will use your project's name, <my-project>, as the executable that it loads. This too must be on your path for the language provider to load it when you run pulumi preview or pulumi up.