How to Release
To make a new release and publish it to the marketplace you have to follow the following steps.
- Create a branch
publish-x.y.z - Update
package.jsonwith the new version - Refresh the pinned third-party versions (see Pinned third-party versions below)
- Add a section to
CHANGELOG.mdwith the header## [x.y.z](N.B: make sure to write the new version in square brackets as thechangelog-readeraction only works if theCHANGELOG.mdfile follows the Keep a Changelog standard) - Create a new PR, get approval and merge
- Run the
Build & Publishworkflow manually from the GH Actions tab
Pinned third-party versions
Two independent sets of external versions are baked into this extension. Both drift silently between releases and should be reviewed each cut.
CLI binaries downloaded on demand
Defaults live in package.json under contributes.configuration. azure.kubelogin.releaseTag is the single source of truth for both the locally-downloaded kubelogin AND the kubelogin-version input in every generated GitHub Actions workflow — workflowTemplate.ts substitutes the setting value at generation time.
| Setting | Upstream repo | Consumed by |
|---|---|---|
azure.kubelogin.releaseTag | Azure/kubelogin | Local CLI download and substituted into generated workflows as kubelogin-version |
azure.kubectlgadget.releaseTag | inspektor-gadget/inspektor-gadget | Local kubectl-gadget download |
aks.drafttool.releaseTag | Azure/draft | Local Draft binary download (skip tags with no uploaded assets — Draft occasionally publishes a tag before its assets) |
aks.retinatool.releaseTag | microsoft/retina | Local kubectl-retina download |
aks.aksmcpserver.releaseTag | Azure/aks-mcp | Local AKS MCP server binary download |
for repo in Azure/kubelogin Azure/aks-mcp Azure/draft microsoft/retina inspektor-gadget/inspektor-gadget; do
echo -n "$repo: "; gh api "repos/$repo/releases/latest" --jq '.tag_name'
done
Before bumping, verify the target release actually has uploaded platform assets (curl -sI on a representative download URL and expect HTTP/2 200).
GitHub Actions pinned in workflow templates
The templates under resources/yaml/*.template.yaml pin these action majors. Major tags receive minor/patch fixes automatically — bumping is only needed when a new major ships. When bumping, update all template files that reference the action and the corresponding assertions in src/tests/suite/containerAssist/workflowTemplate.test.ts.
| Action | Upstream |
|---|---|
actions/checkout | actions/checkout |
azure/login | Azure/login |
azure/use-kubelogin | Azure/use-kubelogin |
azure/aks-set-context | Azure/aks-set-context |
Azure/k8s-deploy | Azure/k8s-deploy |
grep -h "uses:" resources/yaml/*.template.yaml | sort -u
for repo in actions/checkout Azure/login Azure/use-kubelogin Azure/aks-set-context Azure/k8s-deploy; do
echo -n "$repo: "
gh api "repos/$repo/releases" --jq \
'[.[] | select(.prerelease==false and .draft==false)] | .[0].tag_name'
done
Skim the release notes of the target major before bumping. Recent Azure/* action majors have been pure Node.js runtime bumps (Node 20 → Node 24) and are safe. Watch for renamed/removed inputs or new required inputs.
Do not bump a version without a smoke test — generate a workflow via the extension, push it to a real branch on a real AKS cluster, and confirm the run succeeds. Bumping blindly is worse than staying pinned.
Build & Publish
The Build & Publish workflow allows to create a new release, package it in a VSIX file and publish to the VSCode marketplace with a single click.
The only requirement needed to run the workflow is to have a secret named VS_MARKETPLACE_TOKEN containing the Personal Access Token of the publisher. You can find more infos about how to create a publisher/token in the official documentation
Once everything is set up and you followed all first 4 steps in the previous section, you are ready to trigger the Build & Publish workflow.
This is what it actually does:
- Install all dependencies and build the project
- Check if the
CHANGELOG.mdcontains a section related to the new version - Create a new release
- Create the VSIX file and publish it to the marketplace
- Attach the VSIX file to the new release