<!---
Thanks so much for your contribution! If this is your first time
contributing, please ensure that you have read the
[CONTRIBUTING](https://github.com/pulumi/pulumi/blob/master/CONTRIBUTING.md)
documentation.
-->
# Description
<!--- Please include a summary of the change and which issue is fixed.
Please also include relevant motivation and context. -->
Combining #15120 and #15124 and including fixes to allow tests to pass.
Enable race detection in the binary we're using for integration tests.
This will allow us to catch more data races before they get into any
release. This does mean the binary we're using for integration tests is
slightly different from the binary we're releasing, however that's
already the case as we're running a binary with coverage enabled for
them. Later we rebuild the binary we're actually releasing.
This requires us to fix the race between snapshot code, display code,
and the step executor. I've done that by adding a lock to the State
struct. This does not feel great, but it's a quick way to fix this and
get race detection running (and unblocks #15871 which was also hitting
the race detector because it started pulling snapshot code into unit
tests as well). There's probably a more principled overhaul that doesn't
require locking at this level.
## Checklist
- [x] I have run `make tidy` to update any new dependencies
- [x] I have run `make lint` to verify my code passes the lint check
- [x] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [x] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [x] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
https://github.com/pulumi/pulumi/pull/14640/files#diff-42e26dc67aed8aa3edb2472b4403288c1699fb6dc47419b9a475f0f224fe4689
inadvertently got rid of the v prefix in the version in pulumi about.
Add it back. Also make sure we don't get a duplicate `v` prefix in the
dev releases.
Fixes#14800
## Checklist
- [ ] I have run `make tidy` to update any new dependencies
- [ ] I have run `make lint` to verify my code passes the lint check
- [ ] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
Create a CI job that uploads artifacts to S3 after every build. These
artifacts will have a version number derived from `git describe` so they
can be uniquely identified. After this PR is merged, these artifacts
will be able to be downloaded through `get.pulumi.com` by specifying the
exact version number, and in the future through a dev channel.
Fixes#14622
## Checklist
- [ ] I have run `make tidy` to update any new dependencies
- [ ] I have run `make lint` to verify my code passes the lint check
- [ ] I have formatted my code using `gofumpt`
<!--- Please provide details if the checkbox below is to be left
unchecked. -->
- [ ] I have added tests that prove my fix is effective or that my
feature works
<!---
User-facing changes require a CHANGELOG entry.
-->
- [ ] I have run `make changelog` and committed the
`changelog/pending/<file>` documenting my change
<!--
If the change(s) in this PR is a modification of an existing call to the
Pulumi Cloud,
then the service should honor older versions of the CLI where this
change would not exist.
You must then bump the API version in
/pkg/backend/httpstate/client/api.go, as well as add
it to the service.
-->
- [ ] Yes, there are changes in this PR that warrants bumping the Pulumi
Cloud API version
<!-- @Pulumi employees: If yes, you must submit corresponding changes in
the service repo. -->
Fixes https://github.com/pulumi/pulumi/issues/13826.
This brings python inline with node and go as being it's own module and
running codegen via gRPC.
Also includes some improvements to the node and go codegen interfaces
from review.
This changes codegen to be invoked via gRPC from pkg, rather than
invoking pkg/codegen directly.
Consider it a proof-of-concept for moving codegen to a gRPC interface
without the worries of forwards-backwards compatability (because we ship
language plugins at a fixed version side-by-side to users).
* ci: include required deps in test artifact builds
* ci: reduce retention on other build artifacts to match pulumi CLI
* ci: move lang providers acquisition to script/goreleaser
* ci: combine goreleaser configs, move OS-dependency to script
* ci: re-enable Windows and MacOS tests
* [cli] Fix Windows path handling for gzip filestate backend
* Revert "[ci] Name the archive to push to buckets"
This reverts commit 73f23fbc39.
* Revert "[ci] Fix extra extension in goreleaser templates"
This reverts commit 03888a33fa.
* Revert #10149
This reverts commit f6ee2fd20c.
This reverts commit 33a84df3cf.
This reverts commit 01c1719c1c.
This reverts commit e7b96115be.
This reverts commit 60fb289408.
This reverts commit 7a81b1435f.
This reverts commit b1f2e41b56.
* chore: changelog for 3.37.1
* Start simplifying build.yml
* Use updated code
* Split goreleaser build files by OS
* Fixup PR goreleaser-flags
* Try to fix test.yml downloading of binaries
* Copy test.yml changes to test-fast.yml
* Goreleaser file format
* Use prebuilt builder in .goreleaser*.yml
* Do not tidy in prep-for-goreleaser.sh
* Fix build.yml args
* Update publish-binaries and how it is called
* Use local test-fast.yml in master.yml
* Set GORELEASER_KEY
* Drop PREBUILT support from go-wrapper
* Restore executable bit on downloaded artifacts
* Cache restore-key and comment fix
* Reset cache key to get smaller caches
* Workaround: manually install pulumi-language-python-exec script
* Unify build files
* Fix env syntax
* Fix test.yml GHA-isms
* Fix bad merge
* Do not rebuild Go binaries in release.yml, use testsed builds
* Ensure checksum mismatch blocks partial releases (side-effects)
* Install goreleaser-filter in the right job
* Preserve commit mtime in released files as it affects zip checksum
* Set mod_timestamp per Reproducible Builds goreleaser doc
* Portable touch -t across mac/linux
As part of our continued effort to make our releases more useful,
we will be adding our CHANGELOG entries to the GitHub Release.
To make this process smooth, we are going to change things a little:
1. All new changelog entries when submitting a PR for an upcoming
release will now need to get added to CHANGELOG_PENDING.md
This is the source of information for what will be delivered in the
release.
2. When a release is being made, the entries from CHANGELOG_PENDING
will be copied to a new version and dated section in CHANGLOG to
mark the release
3. The GH tags will continue as normal and Goreleaser will copy
the changelog entries to the release section in GH
* fix pulumi bot token and env var
* use commit hash non-marketplace actions
* fix goreleaser binaries
foo
* fix goreleaser archive format
* update workflows to use repo-dispatch
* fixing tag naming
* add support for beta tags
* add prerelease workflow
* remove windows builds
* only use travis for tags
* remove prerelease steps
* fix container build indentation
* check the policy tempdir exists