Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
69 changes: 68 additions & 1 deletion eng/ci/extension-release.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,23 @@
pr: none

parameters:
- name: ExtensionName
displayName: 'Extension project to release'
type: string
default: 'azurefunctions-extensions-base'
values:
- azurefunctions-extensions-base
- azurefunctions-extensions-bindings-blob
- azurefunctions-extensions-bindings-cosmosdb
- azurefunctions-extensions-bindings-eventhub
- azurefunctions-extensions-bindings-servicebus
- azurefunctions-extensions-connectors
- azurefunctions-extensions-http-fastapi
- name: NewLibraryVersion
displayName: 'Extension version to release (for example, 1.2.0)'
type: string
default: ''

resources:
repositories:
- repository: 1es
Expand All @@ -14,6 +32,27 @@ resources:
variables:
- name: codeql.excludePathPatterns
value: deps/,build/
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-base') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/base'
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-bindings-blob') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/bindings/blob'
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-bindings-cosmosdb') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/bindings/cosmosdb'
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-bindings-eventhub') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/bindings/eventhub'
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-bindings-servicebus') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/bindings/servicebus'
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-connectors') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/connectors'
- ${{ if eq(parameters.ExtensionName, 'azurefunctions-extensions-http-fastapi') }}:
- name: ExtensionDirectory
value: 'azurefunctions/extensions/http/fastapi'

extends:
template: v1/1ES.Official.PipelineTemplate.yml@1es
Expand All @@ -24,6 +63,34 @@ extends:
os: windows

stages:
- stage: BumpVersion
displayName: 'Bump Extension Version'
dependsOn: []
jobs:
- template: /eng/templates/official/release/bump-version.yml@self
parameters:
extensionVersion: ${{ parameters.NewLibraryVersion }}
extensionName: ${{ parameters.ExtensionName }}
extensionDirectory: ${{ variables.ExtensionDirectory }}
createPullRequest: true
baseBranch: dev

- stage: Build
displayName: 'Build Extension Artifacts'
dependsOn: BumpVersion
jobs:
- template: /eng/templates/official/release/build-artifacts.yml@self
parameters:
extensionVersion: ${{ parameters.NewLibraryVersion }}
extensionName: ${{ parameters.ExtensionName }}
artifactName: ${{ parameters.ExtensionName }}

- stage: Release
displayName: 'Release Extension'
dependsOn: Build
jobs:
- template: /eng/templates/official/jobs/publish-release.yml@self
- template: /eng/templates/official/release/publish-release.yml@self
parameters:
extensionVersion: ${{ parameters.NewLibraryVersion }}
extensionName: ${{ parameters.ExtensionName }}
artifactName: ${{ parameters.ExtensionName }}
1 change: 1 addition & 0 deletions eng/ci/official-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ trigger:
include:
- dev
- release/*
- '*/release/*'

# CI only, does not trigger on PRs.
pr: none
Expand Down
247 changes: 0 additions & 247 deletions eng/templates/official/jobs/publish-release.yml

This file was deleted.

54 changes: 54 additions & 0 deletions eng/templates/official/release/build-artifacts.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
parameters:
- name: extensionVersion
type: string
- name: extensionName
type: string
displayName: 'PyPI project and repository directory name'
- name: artifactName
type: string
displayName: 'Pipeline artifact name produced by this job'
- name: pythonVersion
type: string
default: '3.11'
- name: githubOrg
type: string
default: 'Azure'
- name: githubRepo
type: string
default: 'azure-functions-python-extensions'

jobs:
- job: Build
displayName: 'Build ${{ parameters.extensionName }}'
pool:
name: 1es-pool-azfunc
image: 1es-ubuntu-22.04
os: linux
templateContext:
outputParentDirectory: $(Build.ArtifactStagingDirectory)
outputs:
- output: pipelineArtifact
targetPath: $(Build.SourcesDirectory)/${{ parameters.extensionName }}
artifactName: ${{ parameters.artifactName }}
steps:
- checkout: none
- bash: |
git clone --branch "${{ parameters.extensionName }}/release/${{ parameters.extensionVersion }}" --single-branch \
"https://$(GithubUser):$(GithubPat)@github.com/${{ parameters.githubOrg }}/${{ parameters.githubRepo }}.git" .
displayName: 'Checkout extension release branch'
- task: UsePythonVersion@0
inputs:
versionSpec: '${{ parameters.pythonVersion }}'
- task: PipAuthenticate@1
displayName: 'Pip Authenticate'
inputs:
artifactFeeds: public/upstream-public
onlyAddExtraIndex: false
- bash: |
python --version
python -m pip install -U pip
python -m pip install build twine
cd "${{ parameters.extensionName }}"
python -m build
python -m twine check dist/*
displayName: 'Build ${{ parameters.extensionName }}'
Loading
Loading