pulumi / ci-mgmt

Configuration for all things CI
Apache License 2.0
10 stars 4 forks source link

Ensure pulumi-kubernetes has generated files existing for linting step #1078

Open rquitales opened 3 weeks ago

rquitales commented 3 weeks ago

The pulumi-kubernetes provider embeds a minified version of a Pulumi JSON schema in the built binary. This file is not checked into source, only the non minified version is. golangci-lint is unable to compile the provider for linting if the file does not exist. This PR ensures that these files exists, so the provider can be compiled and linted properly.

This is necessary as golangci-lint is unable to skip processing files/directories. Instead, the exclude-dirs/files directives will still parse those files/directories, but just suppress warnings/errors. If it is not compilable, in this case due to missing embed files, the linter will also fail. See https://golangci-lint.run/welcome/faq/#why-do-you-have-typecheck-errors

See https://github.com/pulumi/pulumi-kubernetes/pull/3197 for example passing run that modifies the workflow file directly.

blampe commented 3 weeks ago

@rquitales would it be easier to just check these in? They aren't that big, but we could use LFS if size is a concern. Can also add to .gitattrbutes to exclude from diffs to keep noise down.

rquitales commented 3 weeks ago

@rquitales would it be easier to just check these in? They aren't that big, but we could use LFS if size is a concern. Can also add to .gitattrbutes to exclude from diffs to keep noise down.

@blampe Is there a way to exclude from diffs to keep noise down? I'm not familiar with the configuration for that. AFAIK I can skip diffing/committing as a local config, but it'd be nice to have that as a global setting.

blampe commented 3 weeks ago

@rquitales would it be easier to just check these in? They aren't that big, but we could use LFS if size is a concern. Can also add to .gitattrbutes to exclude from diffs to keep noise down.

@blampe Is there a way to exclude from diffs to keep noise down? I'm not familiar with the configuration for that. AFAIK I can skip diffing/committing as a local config, but it'd be nice to have that as a global setting.

@rquitales I was referring to this which we use to hide SDK changes by default, but that still commits the file. I think that would be fine, but I don't have all the background behind these files.

~/src/pulumi-kubernetes master*                                                                                                                                                                                                            
❯ cat .gitattributes
sdk/**/* linguist-generated=true
provider/cmd/pulumi-resource-kubernetes/schema.json linguist-generated=true