-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add release workflow and documentation, and update package.json
- Loading branch information
Showing
4 changed files
with
90 additions
and
20 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,24 +1,49 @@ | ||
--- | ||
name: Publish VSCode Extension | ||
|
||
on: | ||
release: | ||
types: [created] | ||
|
||
jobs: | ||
release: | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout Repository | ||
uses: actions/checkout@v2 | ||
|
||
- name: Install Node.js | ||
uses: actions/setup-node@v2 | ||
with: | ||
node-version: 18.x | ||
cache: 'npm' | ||
|
||
- name: Install dependencies | ||
run: npm install | ||
- name: Package VSCode Extension | ||
run: npm ci | ||
|
||
- name: Build Extension | ||
run: npm run package | ||
|
||
- name: Package Extension | ||
run: npm run vsce-package | ||
|
||
- name: Publish Extension | ||
if: success() && startsWith(github.ref, 'refs/tags/') | ||
run: npm run deploy | ||
env: | ||
VSCE_PAT: ${{ secrets.VSCE_PAT }} | ||
|
||
- name: Generate Changelog | ||
if: success() && startsWith(github.ref, 'refs/tags/') | ||
run: | | ||
git log $(git describe --tags --abbrev=0)..HEAD --oneline > CHANGELOG.txt | ||
cat CHANGELOG.txt | ||
- name: Create GitHub Release | ||
if: success() && startsWith(github.ref, 'refs/tags/') | ||
uses: ncipollo/release-action@v1 | ||
with: | ||
artifacts: 'zenml.vsix' | ||
bodyFile: 'CHANGELOG.txt' | ||
tag: ${{ github.ref_name }} | ||
token: ${{ secrets.GITHUB_TOKEN }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,62 @@ | ||
# Release Process | ||
|
||
This document describes the process of publishing releases for our VS Code extension and provides an explanation of the GitHub Actions workflow file. | ||
|
||
## Overview | ||
|
||
The release process is automated using GitHub Actions. When a new release is created on GitHub, it triggers the release workflow defined in `.github/workflows/release.yml`. The workflow performs the following steps: | ||
|
||
1. Checks out the repository. | ||
2. Installs Node.js and the required dependencies. | ||
3. Builds the extension using webpack. | ||
4. Packages the extension into a `.vsix` file. | ||
5. Publishes the extension to the Visual Studio Code Marketplace. | ||
6. Generates a changelog based on the commit messages. | ||
7. Creates a GitHub release with the packaged extension file as an artifact and the changelog. | ||
|
||
## Prerequisites | ||
|
||
Before creating a release, ensure that: | ||
|
||
- The extension is properly configured and builds successfully. | ||
- The Personal Access Token (PAT) is set as a repository secret named `VSCE_PAT`. | ||
|
||
## Creating a Release | ||
|
||
To create a new release: | ||
|
||
1. Go to the GitHub repository page. | ||
2. Click on the "Releases" tab. | ||
3. Click on the "Draft a new release" button. | ||
4. Enter the tag version for the release (e.g., `v1.0.0`). | ||
5. Set the release title and description. | ||
6. Choose the appropriate release type (e.g., pre-release or stable release). | ||
7. Click on the "Publish release" button. | ||
|
||
Creating the release will trigger the release workflow automatically. | ||
|
||
## Workflow File Explanation | ||
|
||
The release workflow is defined in `.github/workflows/release.yml`. Here's an explanation of each step in the workflow: | ||
|
||
1. **Checkout Repository**: This step checks out the repository using the `actions/checkout@v2` action. | ||
|
||
2. **Install Node.js**: This step sets up Node.js using the `actions/setup-node@v2` action. It specifies the Node.js version and enables caching of npm dependencies. | ||
|
||
3. **Install dependencies**: This step runs `npm ci` to install the project dependencies. | ||
|
||
4. **Build Extension**: This step runs `npm run package` to build the extension using webpack. | ||
|
||
5. **Package Extension**: This step runs `npm run vsce-package` to package the extension into a `.vsix` file named `zenml.vsix`. | ||
|
||
6. **Publish Extension**: This step runs `npm run deploy` to publish the extension to the Visual Studio Code Marketplace. It uses the `VSCE_PAT` secret for authentication. This step only runs if the previous steps succeeded and the workflow was triggered by a new tag push. | ||
|
||
7. **Generate Changelog**: This step generates a changelog by running `git log` to retrieve the commit messages between the latest tag and the current commit. The changelog is saved in a file named `CHANGELOG.txt`. This step only runs if the previous steps succeeded and the workflow was triggered by a new tag push. | ||
|
||
8. **Create GitHub Release**: This step uses the `ncipollo/release-action@v1` action to create a GitHub release. It attaches the `zenml.vsix` file as an artifact, includes the changelog, and sets the release tag based on the pushed tag. This step only runs if the previous steps succeeded and the workflow was triggered by a new tag push. | ||
|
||
## Conclusion | ||
|
||
The provided GitHub Actions workflow automates the publishing of the ZenML VSCode extension. The workflow ensures that the extension is built, packaged, published to the marketplace, and a GitHub release is created with the necessary artifacts and changelog. | ||
|
||
Remember to keep the extension code up to date, maintain the required dependencies, and test the extension thoroughly before creating a release. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters