Skip to content

Pipeline-ify entire release process #3461

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 11 commits into from
Jul 28, 2021
Merged

Conversation

andyleejordan
Copy link
Member

@andyleejordan andyleejordan commented Jul 14, 2021

Resolves #2286 🥳

@ghost ghost added Area-Build & Release Issue-Enhancement A feature request (enhancement). labels Jul 14, 2021
@andyleejordan andyleejordan force-pushed the andschwa/automated-pipeline branch 2 times, most recently from 0f30118 to a5fec77 Compare July 19, 2021 19:36
@andyleejordan andyleejordan force-pushed the andschwa/automated-pipeline branch 16 times, most recently from 0e40843 to b9eaa15 Compare July 27, 2021 19:20
This will let us use the pipeline trigger because we can set the default
branch for manual/scheduled/pipeline-triggered builds to `release` (but
cannot set it to a variable branch, like `release/vX.Y.Z`).
This installs the necessary modules and authenticates using a given
GitHub token so that the Azure pipelines can use our `ReleaseTools`
module to publish to GitHub.
This CI has to test the extension, not the daily build. We shouldn't
conflate the two.
@andyleejordan andyleejordan force-pushed the andschwa/automated-pipeline branch 4 times, most recently from d5fadc7 to a4f1d55 Compare July 27, 2021 22:00
@andyleejordan andyleejordan changed the title WIP: Upload assets from release pipeline. Pipeline-ify entire release process Jul 28, 2021
@andyleejordan andyleejordan requested a review from rjmholt July 28, 2021 18:22
This uses a new function `Use-Repository` that executes the given script
with the given repository as the current working directory, replacing
all the previously side effect driven logic, or at least, making it more
explicit. This was frankly easier than dealing with the Azure Pipeline
that clones the repository under a different name (specifically `s` if
its the only repo, that is, it's not named `vscode-powershell` in the
release stage, so the module broke).
Restoration of modules including PowerShellEditorServices was made
automatic upon invocation of the `Build` task. This replaced complicated
logic in the package task to restore PSES in CI.
Mostly we moved the Rich Code Navigation Indexer task.
@andyleejordan andyleejordan force-pushed the andschwa/automated-pipeline branch from a4f1d55 to 77d9c2f Compare July 28, 2021 20:35
@andyleejordan andyleejordan marked this pull request as ready for review July 28, 2021 20:35
This now uses a repository resource or the triggering pipeline artifact
to provide the PowerShellEditorServices sources (or bits). Coupled with
the change to the build script, this means the template can be used to
build for CI or for a release.

We also moved to zipped pipeline artifacts as build artifacts have been
deprecated, but we need to reduce the cost of the stored artifacts
themselves. These are provided for developers to test and for the
release pipeline to use.
@andyleejordan andyleejordan force-pushed the andschwa/automated-pipeline branch 3 times, most recently from f126a12 to 4e0c957 Compare July 28, 2021 21:08
This sets up the Azure DevOps release pipeline to not only build, test,
and sign the bits for a release (and to do so using signed
PowerShellEditorServices bits), but to automatically create the GitHub
draft release where it directly uploads the artifacts. After manual
approval, it will automatically publish the extension and installation
script to their respective registries (the Visual Studio Code
marketplace and the PowerShell Gallery). Best of all, this process is
kicked off automatically after a successful release build of
PowerShellEditorServices.
@andyleejordan andyleejordan force-pushed the andschwa/automated-pipeline branch from 4e0c957 to 35704b8 Compare July 28, 2021 22:00
@andyleejordan andyleejordan merged commit 0bc0986 into master Jul 28, 2021
@andyleejordan andyleejordan deleted the andschwa/automated-pipeline branch July 28, 2021 23:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Area-Build & Release Issue-Enhancement A feature request (enhancement).
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Pipeline-ify release process
2 participants