2.2 KiB
2.2 KiB
SK Azure DevOps Toolkit
Developer README for the Azure DevOps extension codebase.
For administrator-facing installation and usage guidance, see overview.md.
Tasks in this extension
AzureFederatedAuth@1- Requests an OIDC token for a selected AzureRM service connection (workload identity federation).
- Exports:
ARM_OIDC_TOKEN(secret)ARM_TENANT_IDARM_CLIENT_IDGIT_ACCESS_TOKEN(secret, optional)
CopyBlob@1- Copies a blob between Azure Storage accounts/containers using the selected AzureRM service connection.
ListBlobs@1- Lists blobs in a container (optional prefix) using the selected AzureRM service connection.
GetBlob@1- Downloads a blob to a local file path using the selected AzureRM service connection.
PutBlob@1- Uploads a local file as a blob using the selected AzureRM service connection.
Repository layout
task/AzureFederatedAuth- task implementation and manifesttask/CopyBlob- task implementation and manifesttask/ListBlobs- task implementation and manifesttask/GetBlob- task implementation and manifesttask/PutBlob- task implementation and manifestshared- local npm package with shared OIDC/devops/blob helpersscripts/build.sh- builds tasks and packages the extensionexamples/azure-pipelines-smoke.yml- smoke pipeline example
Local development
Prerequisites:
- Node.js (LTS)
- npm
Install dependencies:
npm install
Build and package extension:
./scripts/build.sh
Build flow details:
- builds
sharedpackage, - packs it to
build/ado-sk-toolkit-shared.tgz, - installs that tarball into each task,
- compiles all tasks and creates VSIX.
Build output:
- shared package tarball in
build/ado-sk-toolkit-shared.tgz - Task JavaScript output in each task's
dist/ - Extension package (
.vsix) inbuild/
Validation pipeline
Use examples/azure-pipelines-smoke.yml to validate task execution end-to-end in Azure Pipelines.
Publishing notes (maintainers)
Publishing requires a Visual Studio Marketplace publisher and sharing the published extension with target Azure DevOps organizations.
Author
Slawomir Koszewski
License
MIT. See LICENSE.