-
Notifications
You must be signed in to change notification settings - Fork 273
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'dev' into fail-fast-if-incorrect-extended-sessions
- Loading branch information
Showing
35 changed files
with
1,064 additions
and
52 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 |
---|---|---|
@@ -0,0 +1,79 @@ | ||
# This workflow generates weekly CodeQL reports for this repo, a security requirements. | ||
# The workflow is adapted from the following reference: https://github.com/Azure-Samples/azure-functions-python-stream-openai/pull/2/files | ||
# Generic comments on how to modify these file are left intactfor future maintenance. | ||
|
||
name: "CodeQL" | ||
|
||
on: | ||
push: | ||
branches: [ "main", "*" ] # TODO: remove development branch after approval | ||
pull_request: | ||
branches: [ "main", "*"] # TODO: remove development branch after approval | ||
schedule: | ||
- cron: '0 0 * * 1' # Weekly Monday run, needed for weekly reports | ||
workflow_call: # allows to be invoked as part of a larger workflow | ||
workflow_dispatch: # allows for the workflow to run manually see: https://docs.github.com/en/actions/using-workflows/manually-running-a-workflow | ||
|
||
env: | ||
solution: WebJobs.Extensions.DurableTask.sln | ||
config: Release | ||
|
||
jobs: | ||
|
||
analyze: | ||
name: Analyze | ||
runs-on: windows-latest | ||
permissions: | ||
actions: read | ||
contents: read | ||
security-events: write | ||
|
||
|
||
strategy: | ||
fail-fast: false | ||
matrix: | ||
language: ['csharp'] | ||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ] | ||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support | ||
|
||
steps: | ||
# Initializes the CodeQL tools for scanning. | ||
- name: Initialize CodeQL | ||
uses: github/codeql-action/init@v3 | ||
with: | ||
languages: ${{ matrix.language }} | ||
# If you wish to specify custom queries, you can do so here or in a config file. | ||
# By default, queries listed here will override any specified in a config file. | ||
# Prefix the list here with "+" to use these queries and those in the config file. | ||
|
||
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs | ||
# queries: security-extended,security-and-quality | ||
|
||
- uses: actions/checkout@v3 | ||
with: | ||
submodules: true | ||
|
||
- name: Setup .NET | ||
uses: actions/setup-dotnet@v3 | ||
|
||
- name: Set up .NET Core 2.1 | ||
uses: actions/setup-dotnet@v3 | ||
with: | ||
dotnet-version: '2.1.x' | ||
|
||
- name: Set up .NET Core 3.1 | ||
uses: actions/setup-dotnet@v3 | ||
with: | ||
dotnet-version: '3.1.x' | ||
|
||
- name: Restore dependencies | ||
run: dotnet restore $solution | ||
|
||
- name: Build | ||
run: dotnet build $solution #--configuration $config #--no-restore -p:FileVersionRevision=$GITHUB_RUN_NUMBER -p:ContinuousIntegrationBuild=true | ||
|
||
# Run CodeQL analysis | ||
- name: Perform CodeQL Analysis | ||
uses: github/codeql-action/analyze@v3 | ||
with: | ||
category: "/language:${{matrix.language}}" |
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,37 @@ | ||
<Project> | ||
<!-- This is copied from:https://github.com/Azure/azure-functions-host/blob/dev/eng/build/RepositoryInfo.targets --> | ||
<!-- The following build target allows us to reconstruct source-link information when building in 1ES --> | ||
|
||
<!-- | ||
The convention for names of Azure DevOps repositories mirrored from GitHub is "{GitHub org name}.{GitHub repository name}". | ||
--> | ||
<PropertyGroup> | ||
<!-- There are quite a few git repo forms: | ||
https://[email protected]/azfunc/internal/_git/azure.azure-functions-host | ||
https://dev.azure.com/azfunc/internal/_git/azure.azure-functions-host | ||
https://azfunc.visualstudio.com/internal/_git/azure.azure-functions-host | ||
[email protected]:v3/azfunc/internal/azure.azure-functions-host | ||
[email protected]:v3/azfunc/internal/azure.azure-functions-host | ||
--> | ||
<!-- Set DisableSourceLinkUrlTranslation to true when building a tool for internal use where sources only come from internal URIs --> | ||
<DisableSourceLinkUrlTranslation Condition="'$(DisableSourceLinkUrlTranslation)' == ''">false</DisableSourceLinkUrlTranslation> | ||
<_TranslateUrlPattern>(https://azfunc%40dev\.azure\.com/azfunc/internal/_git|https://dev\.azure\.com/azfunc/internal/_git|https://azfunc\.visualstudio\.com/internal/_git|azfunc%40vs-ssh\.visualstudio\.com:v3/azfunc/internal|git%40ssh\.dev\.azure\.com:v3/azfunc/internal)/([^/\.]+)\.(.+)</_TranslateUrlPattern> | ||
<_TranslateUrlReplacement>https://github.com/$2/$3</_TranslateUrlReplacement> | ||
</PropertyGroup> | ||
|
||
<!-- When building from Azure Devops we update SourceLink to point back to the GitHub repo. --> | ||
<Target Name="_TranslateAzureDevOpsUrlToGitHubUrl" | ||
Condition="'$(DisableSourceLinkUrlTranslation)' == 'false'" | ||
DependsOnTargets="$(SourceControlManagerUrlTranslationTargets)" | ||
BeforeTargets="SourceControlManagerPublishTranslatedUrls"> | ||
<PropertyGroup> | ||
<ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace($(ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</ScmRepositoryUrl> | ||
</PropertyGroup> | ||
<ItemGroup> | ||
<SourceRoot Update="@(SourceRoot)"> | ||
<ScmRepositoryUrl>$([System.Text.RegularExpressions.Regex]::Replace(%(SourceRoot.ScmRepositoryUrl), $(_TranslateUrlPattern), $(_TranslateUrlReplacement)))</ScmRepositoryUrl> | ||
</SourceRoot> | ||
</ItemGroup> | ||
</Target> | ||
|
||
</Project> |
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
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,99 @@ | ||
# This is our package-publishing pipeline. | ||
# When executed, it automatically publishes the output of the 'official pipeline' (the nupkgs) to our internal ADO feed. | ||
# It may optionally also publish the packages to NuGet, but that is gated behind a manual approval. | ||
|
||
trigger: none # only trigger is manual | ||
pr: none # only trigger is manual | ||
|
||
# We include to this variable group to be able to access the NuGet API key | ||
variables: | ||
- group: durabletask_config | ||
|
||
resources: | ||
repositories: | ||
- repository: 1es | ||
type: git | ||
name: 1ESPipelineTemplates/1ESPipelineTemplates | ||
ref: refs/tags/release | ||
- repository: eng | ||
type: git | ||
name: engineering | ||
ref: refs/tags/release | ||
|
||
pipelines: | ||
- pipeline: officialPipeline # Reference to the pipeline to be used as an artifact source | ||
source: 'durable-extension.official' | ||
|
||
extends: | ||
template: v1/1ES.Official.PipelineTemplate.yml@1es | ||
parameters: | ||
pool: | ||
name: 1es-pool-azfunc | ||
image: 1es-windows-2022 | ||
os: windows | ||
|
||
stages: | ||
- stage: release | ||
jobs: | ||
|
||
# ADO release | ||
- job: adoRelease | ||
displayName: ADO Release | ||
templateContext: | ||
inputs: | ||
- input: pipelineArtifact | ||
pipeline: officialPipeline # Pipeline reference, as defined in the resources section | ||
artifactName: drop | ||
targetPath: $(System.DefaultWorkingDirectory)/drop | ||
|
||
# The preferred method of release on 1ES is by populating the 'output' section of a 1ES template. | ||
# We use this method to release to ADO, but not to release to NuGet; this is explained in the 'nugetRelease' job. | ||
# To read more about the 'output syntax', see: | ||
# - https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/outputs | ||
# - https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/1es-pipeline-templates/features/outputs/nuget-packages | ||
outputs: | ||
- output: nuget # 'nuget' is an output "type" for pushing to NuGet | ||
displayName: 'Push to durabletask ADO feed' | ||
packageParentPath: $(System.DefaultWorkingDirectory) # This needs to be set to some prefix of the `packagesToPush` parameter. Apparently it helps with SDL tooling | ||
packagesToPush: '$(System.DefaultWorkingDirectory)/**/*.nupkg;!$(System.DefaultWorkingDirectory)/**/*.symbols.nupkg' | ||
publishVstsFeed: '3f99e810-c336-441f-8892-84983093ad7f/c895696b-ce37-4fe7-b7ce-74333a04f8bf' | ||
allowPackageConflicts: true | ||
|
||
# NuGet approval gate | ||
- job: nugetApproval | ||
displayName: NuGetApproval | ||
pool: server # This task only works when executed on serverl pools, so this needs to be specified | ||
steps: | ||
# Wait for manual approval. | ||
- task: ManualValidation@1 | ||
inputs: | ||
instructions: Confirm you want to push to NuGet | ||
onTimeout: 'reject' | ||
|
||
# NuGet release | ||
- job: nugetRelease | ||
displayName: NuGet Release | ||
dependsOn: | ||
- nugetApproval | ||
- adoRelease | ||
condition: succeeded('nugetApproval', 'adoRelease') | ||
templateContext: | ||
inputs: | ||
- input: pipelineArtifact | ||
pipeline: officialPipeline # Pipeline reference as defined in the resources section | ||
artifactName: drop | ||
targetPath: $(System.DefaultWorkingDirectory)/drop | ||
# Ideally, we would push to NuGet using the 1ES "template output" syntax, like we do for ADO. | ||
# Unfortunately, that syntax does not allow for skipping duplicates when pushing to NuGet feeds | ||
# (i.e; not failing the job when trying to push a package version that already exists on NuGet). | ||
# This is a problem for us because our pipelines often produce multiple packages, and we want to be able to | ||
# perform a 'nuget push *.nupkg' that skips packages already on NuGet while pushing the rest. | ||
# Therefore, we use a regular .NET Core ADO Task to publish the packages until that usability gap is addressed. | ||
steps: | ||
- task: DotNetCoreCLI@2 | ||
displayName: 'Push to nuget.org' | ||
inputs: | ||
command: custom | ||
custom: nuget | ||
arguments: 'push "*.nupkg" --api-key $(nuget_api_key) --skip-duplicate --source https://api.nuget.org/v3/index.json' | ||
workingDirectory: '$(System.DefaultWorkingDirectory)/drop' |
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
Oops, something went wrong.