pulumi/sdk/go
Abhinav Gupta dfefb0a613
fix(host/go): Allow Pulumi program in a subdir of the module
Fixes a regression in the Go language host where we started misbehaving
if the Pulumi.yaml was in a subdirectory of the Go module.

    myproject/
      |- go.mod
      |- foo.go
      '- infra/
          |- Pulumi.yaml
          '- main.go

This regression was introduced in #12727,
where we started parsing go.mod files to extract version information
and incorrectly assumed that the go.mod file was in the request
directory.

To fix this, we'll use the following command to get the absolute path
to the go.mod file.

    go list -m -f '{{.GoMod}}'

This command works in the root or subdirectory of a module
in both vendor and module mode.

Testing:
Includes a regression test in both module and vendor mode.

Resolves #12963
2023-05-17 13:20:38 -07:00
..
auto all: cloudflare/circl 1.1.0 => 1.3.3 2023-05-11 13:51:01 -07:00
common testing/Environment: Tolerate faillures in deleting the test directory 2023-05-11 17:02:51 -07:00
pulumi Fix race condition in go/generate function. 2023-05-04 07:42:08 -04:00
pulumi-language-go fix(host/go): Allow Pulumi program in a subdir of the module 2023-05-17 13:20:38 -07:00
Makefile gRPC for GenerateProject/Program/Package 2023-05-06 13:14:59 +01: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.