* Expiration time, eliminate AzureRm warning, condition on Set-VcpkgWriteModeCache
* Attempt uninstalling AzureRM and installing Az.Storage
* Import PSModule-Helpers.ps1
* Unsintall-AzureRm if the function exists
* Get-Command
* Uninstall-Module Azure.Storage
* Log
* quotes
* Get-Command some more
* Format list
* Alias fun
* Naming
* show PSModulePath
* Attempt to handle module double backslash
* do not observe
* do not observe for real
* Spelling
* Empty commit to re-trigger CI with a full matrix
* Script that automates updating vcpkg betas
* Wire up to pipeline
* Spelling, commentary
* Clone into repo name
* Remove-Item requires the path to exist, even if -Force is specified
* Bootstrap vcpkg
* Arguments to Test-ShouldReleaseToVcpkg.ps1
* More commit
* Escape quotes
* Quote git commit
* Set strict mode
* Use tags
* Actually tag
* Run git commands
* Invoke-Expression
* Onboard releasing package to vcpkg before attempting to isntall from overaly
* temporarily disable matrix generation (30s tasks sometimes runs for 20+ minutes)
* Test-ShouldReleaseToVcpkg.ps1
* Test-Path
* Test vcpkg build, also ensure we push
* Just the tags... low probabiltiy of success given that '--' if frequently treated as a separator
* Add ability to skip link verification for tighter inner loop
* Push tag separately
* Unnecessary condition and conjunction
* Base repo owner: Azure
* Specify remote name
* Tighten inner loop
* git remote -v
* workingDirectory
* Go back to two tags and a regular push
* Saving some progress
* Use original push method
* BaseRepoOwner
* Cleanup, put changes in the default branch (vcpkg does not look at refs outside of the default branch)
* Use default branch
* Revert changes used to tighten up devops inner loop
* Revert an unrelated change
* Revert unrelated changes
* Revert unrelated changes
* Add spelling
* Script that automates updating vcpkg betas
* Wire up to pipeline
* Spelling, commentary
* Clone into repo name
* Remove-Item requires the path to exist, even if -Force is specified
* Bootstrap vcpkg
* Arguments to Test-ShouldReleaseToVcpkg.ps1
* More commit
* Escape quotes
* Quote git commit
* Set strict mode
* Use tags
* Actually tag
* Run git commands
* Invoke-Expression
* Onboard releasing package to vcpkg before attempting to isntall from overaly
* temporarily disable matrix generation (30s tasks sometimes runs for 20+ minutes)
* Test-ShouldReleaseToVcpkg.ps1
* Test-Path
* Test vcpkg build, also ensure we push
* Just the tags... low probability of success given that '--' if frequently treated as a separator
* Add ability to skip link verification for tighter inner loop
* Push tag separately
* Unnecessary condition and conjunction
* Base repo owner: Azure
* Specify remote name
* Tighten inner loop
* git remote -v
* workingDirectory
* Go back to two tags and a regular push
* Saving some progress
* Use original push method
* BaseRepoOwner
* Cleanup, put changes in the default branch (vcpkg does not look at refs outside of the default branch)
* Use default branch
* bump keys version to 7.3
* Revert "bump keys version to 7.3"
This reverts commit e348e966de56f28996b4cb32104088b4414559ed.
* bump keys version to 7.3
* Revert "bump keys version to 7.3"
This reverts commit e348e966de56f28996b4cb32104088b4414559ed.
* add ps1
* dsd
* test2
* update paths
* package info
* conditional
* remove extra spaces
* missing paran
* binary cache and manifest
* update packages
* udpate
* add cache to private pipeline
* next try
* aver
* other
* again
* aver quick
* more
* this way
* again
* one more
* print
* test
* use depend
* more deps
* dep
* Apply suggestions from code review
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* updated to use group variable
* update identity
* end line
* Update vcpkg.json
* Apply suggestions from code review
* cspell
* remove comment
* updates
* make cache mode depend on SAS env var
* map env var only for internal pipelines
* other approach
* what about this
* and this
* try
* amd
* another
* extra step
* typo
* override for internal
* use default succeded
* azure core update manifest
* a
* run cmake-generate nightly as well
* check for SAS
* check cache
* no secret
* fix is secret
* pass explicit
* use secret all the time
* char
* One more
* export
* echos
* last
* array
* remove question
* ok
* weird
* use account key
* substring
* VCPKG_BINARY_SOURCES
* Add module installation
* task:
* Correct pathing for module
* update source gen
* format
* update spelling
* IsWindoows
* Use pwsh
* Cannot clobber with PSModule-Helpers. Attempt plain install
* Attempt plain install
* Revert unnecessary change to Update-DocsMsToc.ps1
* template ready
* curl is required on Windows as well for some CI gates
* attestation
* fix format
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
* changes
* vs generator
* use macro
* release and samples
* add target to build smoke test
* revert
* reuse macro for samples
* extra legs for samples only
* storage connection string
* format
* order and macro
* update
* samples
* missing
* Output binary sizes (Get-BinarySizes.ps1 works for linux environment)
* Add better support for Windows binary output
* Update matrix to properly build Debug and Release on Windows
* Add TEAMPROJECTID to spell check
* Add extra labels
* Ensure BuildArgs doesn't get duplicated
* Log additional metrics
* Add openssl to Win32Api_curl
* SourceBranchName -> SourceBranch
* Fix matrix entries
* Document included
* Review feedback for Get-BinarySizes.ps1
* Infer many metrics from the environment
* Add issecret to cspell.json
* Extra equal signs
* Correct directory depth for $BuildDirectory
* Correct casing for mac VM image
* Set WinHTTP_OPTION_CLIENT_CERT_CONTEXT to enable connections to attestation service
* Set serviceDirectory from environment variables
Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
* prepPR
* gitignore updates
* cspell.json
* spell
* cspell typo
* deisable option
* need to look out for this
* reenable tests
* set unset location properly
* building in docker
* format file
* final changes
* PR comments
* update git ignore
* test cmake build
* test 2
* ren steps
* test new step
* try again
* again
* oops
* try again
* put back
* test2
* test5_46
* progress
* more again
* test6_35
* test 6_55
* test_again
* move up
* test
* output params
* try try again
* one more test
* put back curl
* os
* run only on one
* try again
* typo
* switch variable
* set things back
* set things back
* prep for next step
* test source deps new
* try again
* try try again
* typo
* test rewire
* params
* typo
* fix
* get rid of vcpkg
* linux
* mac
* try brew
* try exports
* try again
* typo
* set env
* include dir
* root
* try again
* typo
* dfsfsda
* try agan
* try again
* oops
* sdfsd
* typo
* dsdsad
* hghhg
* update env
* ghhgj
* sAdsad
* try again
* fdfd
* rewrew
* dsadas
* sdasda
* ggggg
* envs2
* envs3
* typo
* order
* try again
* make sure we don't blow up other pipelines
* typo
* typo
* fsdfs
* check null
* put back
* Generate map files in build
* Add .map file artifact publishing
* Add Xlinker to spelling exceptions
* Remove PublishMapFiles from clang builds
* Generate the map file artifact name
* CXX_COMPILER_ID and some logging for Clang which might be linking using the GNU linker by default
* More logging
* Move logging out of conditional
* Logging up high, use OS to determine which link flags to set
* Use linker options specific to AppleClang's context, publish map files for all platforms
* Narrower build trigger matrix, introduce batching so changes to main don't trigger builds for every checkin if there are other builds running, expand core to test everything in CI
* Wire up CtestExcludeRegex
* Improvements including scoping to exclude storage tests
* Use correct trigger settings for storage
* Add test result uploading
* Use -T
* Add displayName and buildConfiguration
* Add live testing result upload
* buildConfiguration -> testRunTitle
* Live tests 'Validate' -> 'ValidateLive' to differentiate job names in Test results output
* Refactor template to use multiple builds on the same machine resetting the machine and runtime varaibles along the way
Move template expression out of default matrix parameters
Remove extra reference to ci/jobs.yml
Remove unnecessary ci.yml, change param declaration in devops-variables-set.yml
Heredoc
Fix set/reset scripts after testing with devops outputs
-ErrorAction Ignore
Smaller matrix
OsVMImage comes from machine, not parameters
Add Ubuntu 20 to matrix
Remove checkout: self, it is implied
Move machine-setup steps outside of loop
CODE_COVERAGE handling
tab
Remove creation of CODE_COVERAGE
Use AptDependencies and add apt update to dependency install step
Remove extra preparation steps
Enable code coverage check scenario
Add MacOS 11
Disable vcpkg cache
Coverage configuration
Pass parameter properly
bool -> boolean
Install coverage tools if it's possible that coverage may run
More logging on code coverage
Show contents of Makefile
One vcpkg to build them all
Verbose
SourcesDirectory
Nesting VcpkgInstall
workingDirectory for vcpkg install
AptDependencies
complete the conditional
Enable all matrix entries
sudo
Remove extra chatter
More scrubbing post-build to help with Windows scenarios
sudo echo
Get-ChildItem
ErrorAction
sudo sh -c
More ErrorAction
output sourceListFile
Disable additional sources.list
Install coverage tools when used for coverage
COndition
Do not build testing for Windows arm64
Correct path for coverage tools
ne -> eq
Add more scenarios to the matrix
Remove libxml2
Add MacOS 10.15 to matrix
Revert "Remove libxml2"
This reverts commit 178af8b89abb21ee84dbcd25b4d54bd90ec1d44c.
Add libxml2 to MacOS 10.15 matrix entry
Display name decorator, refine the matrix
Remove OsVmImage variable
Add commentary to tests about matrix
Rebalance matrix, nest EnvVars, DisplayNameDecorator
Correct parameter access
AptDependencies
Ensure building for WindowsStore in UWP builds, Only build tests for debug builds in altered matrix entires, Linux build type specified as environment variable
Rebalance matrix for better timing
Remove all instances of libxml2 in vcpkg dependencies
Move common devops tasks to eng/common
Set eng/common paths in pipelines
Revert "Remove all instances of libxml2 in vcpkg dependencies"
This reverts commit 35ffbc7aac87f400fdf3351076346750c1c750ed.
https://github.com/Azure/azure-sdk-for-cpp/issues/2946
Permit words like iname in more pipeline .yml files
Remove libxml2 from vcpkg dependencies for Windows
Perf test matrix maxParallel: 10
Validate
apt install first
apt install first
maxParallel: 12
-j 8
-j 10
Use matrix generator
Add expected parameters
Move parameters to appropriate file, fix cloud spec
Specify correct platform matrix location
DependsOn
Platform matrix
Remove DisplayNameDecorator, try more clang information
Rapid iteration matrix
clang --version
install clang-11
Use correct pool
Use full matrix, revert additional logic in jobs/ci.yml
* Review feedback: newline
* Review feedback: Test in release, too
* Remove DisplayNameDecorator (it was useful when we were putting multiple builds into a single job, now it is redundant)
* Remove displayNames
* Matrix review feedback
* Conditions
* Rename ci.yml -> ci.tests.yml
* Attempt tagging of @danieljurek in PRBody
* Attempt to assign reviewers
* Use codeowners, filter out groups, use a default owner, add comments to issue.
* Move variables to right level of config
* Set PrOwners variable
* Remove PR owners, requires admin permissions
* Escape DevOps variable to expand into string
* Add AuthToken
* Tweak portfile and codeowners to validate multiple artifact scenario
* Revert "Tweak portfile and codeowners to validate multiple artifact scenario"
This reverts commit bcc7a36119c7f399f1b079f51889d6ff0d499142.
* Review feedback
* Validate fallback logic
* Deal with empty list of owners
* Revert "Validate fallback logic"
This reverts commit ade2dff5a7d9cac9bb61fdc0f92cd50412b7c31c.
* ignore result of function
* changelog
* Add g++5 to CI legs
* use inline config for g++ 5
* update flag
* set default values for variables
* fix format
* More logging, faster matrix
* Verbose makefile
* Add code that is expected to cause failure
* Use clang with Ubuntu 20
* Install clang-format-11 in another step
* Revert "Add code that is expected to cause failure"
This reverts commit 7ff7201e1b81e17c168b7598f0d23c489b5e6f43.
* Remove cmake args, add build args -j
* Add dependency on LiveTest to release
* Add DependsOn to archetype-cpp-release.yml stages, conditions around LiveTest (if we don't execute live tests don't require them for release)
* Remove template conditions for LiveTest and always require it
* Revert "Remove template conditions for LiveTest and always require it"
This reverts commit dc0615ca084b7bb476cbc3806df70f92f2bf0304.
* vcpkg.json -- update all links to point to "main" .. This is hardcoded and will go out in future releases.
* ci.yml -- add `- main` to trigger criteria near `- master` ... This adds forward compatilbitiy when we rename the branch in the repo
* archetype-cpp-release.yml use a script which evaluates a repo's default branch and sets that in a global variable, then use that variable instead. When vcpkg updates their branch the publishing scripts will work transparently.
* Collect-Changelogs.ps1 -- Add default hardcoded branch name for use with future releases. This can be optionally overridden with a parameter when invoking the script.
* eng/pipelines/client.yml -- Delete this file. It is no longer in use.
* Fixup CHANGELOG.md, add SetPackageVersion, add calls to set-test-pipeline-version.yml
* Run set-test-pipeline-version.yml per artifact, open testpipeline as draft
* git diff to view changes in file
* Move set-test-pipeline-version.yml after Validate Clang Format
* remove second artifact loop in archetype-cpp-release.yml
* Validate publishing before parameter refactor
Fix release yaml syntax
Environment variable naming
Remove flag
Remove checkout step
Reset the commit
Cleanup Update-VcpkgPort.ps1, mostly git reset HEAD^. Attempt to check out branch in remote.
Try putting CHANGELOG entry into commit message
Include common.ps1 for changelog operations
Correct path for common.ps1
Include the scripts folder as well
Quotes
Refactor to use release artifacts, perform the commit in Update-VcpkgPort.ps1, set parameters and variables needed to complete PR with the commit step already finished
* Add PR body
* Add newline
* Add azure-template2 to validate publishing multiple packages to vcpkg
* Update versions to avoid release conflict
* Add custom port naming logic
* fix changelogs
* compute path
* Add azure-core-cpp dependency back in
* package name in control file
* Add changes to support vcpkg x-add-version
* Add azure-sdk identity to commit
* Remove old conditions/comments and use -am for commit
* remove -c parameters
* Use --author
* git config local
* space
* work around HasChanges=false
* Bump versions for verification
* Bump versions, update portfile to use azure-template2-cpp ref
* Add PackageVersion
* Revert template2
* Finish reverting template2
* Revert "Finish reverting template2"
This reverts commit aa1461facbdb7ebd1e0ad2d90f8fe5a7c9db9473.
* Revert "Revert template2"
This reverts commit 3a91e82e01e2d1610da0747c2c84e24f52105625.
* Commit without setting user.name and user.email
* bump version
* git commands on same line
* Revert "Revert "Revert template2""
This reverts commit 1721a626e3c2e2b8c43dfe4a2fedf5a891c58793.
* Revert "Revert "Finish reverting template2""
This reverts commit 461a57c14aee97c9b6f83c79fe3a74122c890fb2.
* Finish reverting template2
* Add bypass-local-dns.yml to CI and test jobs
* Remove from client builds. Use of pools does not set variables needed for this to run. The fix may belong in another change.
* release mode test for Linux with test
* Fix GCC warning when building in Release configuration
Co-authored-by: Anton Kolesnyk <antkmsft@users.noreply.github.com>
* Disable dependency on azure-core until azure-core releases to vcpkg.
* Remove release artifact creation script and pipeline step
* Copy items from root cmake generate outputs (no need to do individual project preparation)
* Space
* Add VcpkgPortName (package port names may change in the future to include non v1 version numbers like azure-template-cpp-v2)
* Destination should be artifact name, not vcpkg port name
* Disable PR steps
* SHA512 1 -> SHA512 %SHA512%
* New release procedure
* Unblock publishing process
* Increment azure-template version
* Update branch strategy, uncomment final release of template
* Increment version to test release
* Fix remote branch checkout logic
* Increment version
* Exit successfully
* Increment version
* Increment Version
* Version Increment
* Add a difference in the output file to validate multiple runs against a target PR branch
* Enable existing PR branches in create-pull-request.yml
* Increment version
* Fix archetype-cpp-release.yml syntax
* Skip checkout instead
* Increment version
* Fix automated version incrementing
* Increment version
* Update CHANGELOG.md
* Update CHANGELOG.md date
* Revert CONTROL file
* Remove Build-Depends
* Increment version
* Output commands
* Check out branch in either branch scenario
* Increment version
* Fetch the .tar.gz file using convention, the REST API does not give the location of the .tar.gz
* Increment Version
* ToLower
* Increment
* Increment version
* Version updater should not append a new line to the end of the file contents (existing new line at the end of the file will remain, if present)
* Add azure-template2 to validate base case of shipping different packages instead of file replacement validation from previous runs
* Remove extra backtick
* Add template2 to root CMakeLists.txt
* Review feedback: Support main scenario with packages coming from different location (no new file conflicts)
* Remove file blocking link check step. This is ok because the whole azure-template2 folder will be removed after this verification is complete
* Version increment
* Make template2 install in different locations
* Increment version
* Remove azure-template2 that was used for validating publishing multiple packages
* Remove template2 from ci.yml
* Use "SHA512 1" syntax as proposed by vcpkg documentation and regex replacement
* Review feedback
* Increment version
* Quotes
* Review feedback and re-add New-ReleaseAsset.ps1
Root Cause:
Storage project generates coverage files in a different location (sdk/*/*cov_xml.xml) from where Core and Template (sdk/*/*/*cov_xml.xml). Basically one level up.
When I added the coverage for Storage, I didn’t know we were also running live tests for Core and Template pipelines. It failed on them because the xml files were not found.
In the PR, I add a new parameter to pipelines to change the default path, and also I am disabling LiveTests from Core and Template, since it only runs the same thing that we run on CI pipelines (We can enable it if we ever have some live tests)
fix: #1001
Adding CMake module to enable/disable transport adapters
TRANSPORT ADAPTER BUILD
Default: If no option is explicitly added, curl will be used for POSIX and WIN HTTP for WIndows
Windows: Both CURL and WIN_HTTP can be build to be used.
POSIX: Only CURL is acceptable. If WIN_HTTP is set, generate step will fail for user
Defines `BUILD_WIN_HTTP_TRANSPORT_ADAPTER` and `BUILD_CURL_HTTP_TRANSPORT_ADAPTER` for source code
Fixes#350
* Add version.txt
* Add doc generation for template
* Add version.hpp parsing and update capabilities to cmake and engsys
* Get-SdkVersion -> Get-PkgVersion
* Move Update-PkgVersion.ps1 under eng/scripts
* Get-PackageVersion -> Get-PkgVersion
* Update paths, params, verbosity
* Couple fixes to output and make use of new SemVer version
* Add fallback support for verison.txt in cases where we still use it to unblock release artifact generation
* Use version information in release pipeline
* Add workaround to generate storage pipeline artifacts
* eng/scripts/
* Write warning
* Haven't released storage-file-shares yet according to releases on GitHub
* Set release date on changelog.md
* Update CHANGELOG.md to indicate this is a test release
* Add docs.microsoft.com artifact generation
* Add arguments
* newline
* d->s
* publish docs.ms artifact
* Consolidate archetype-sdk-client.yml docs.ms generation steps
* publish not the docs.ms for we publish it as part of packages
* Better folder structure
* Add version.txt
* Add doc generation for template
* Add version.hpp parsing and update capabilities to cmake and engsys
* Get-SdkVersion -> Get-PkgVersion
* Move Update-PkgVersion.ps1 under eng/scripts
* Get-PackageVersion -> Get-PkgVersion
* Update paths, params, verbosity
* Couple fixes to output and make use of new SemVer version
* Add fallback support for verison.txt in cases where we still use it to unblock release artifact generation
* Use version information in release pipeline
* Add workaround to generate storage pipeline artifacts
* eng/scripts/
* Write warning
* Haven't released storage-file-shares yet according to releases on GitHub
* Set release date on changelog.md
* Update CHANGELOG.md to indicate this is a test release
* Remove fallback exception for storage
* Re-add Rick's suggestions
* Revert "Remove fallback exception for storage"
* Restructure azure storage directory
* Add tests and sample
* reformat with clang-format
* Reorder files in CMake
* load versions from version.txt
* fix crash
* Update README.md
* Use relative links
* fix CI
* Fix CI
* Try to fix CI
* Move option to the top of the file
* Add CHANGELOG enforcement to release process
* Test: validate test failure if no changelog entry present
* Disable release and use an echo instead. Revert before publishing
* add entry for 1.0.0-dev.1 with no release date (expect failure)
* Add date but no content (expect failure)
* adding content, expect validation to pass
* Revert changes used for testing
* Revert "Test: validate test failure if no changelog entry present"
This reverts commit a702f0053bb60839ff722a5656d90c75568b7ca9.
* Use Powershell@2 task instead of pwsh for better debugging
* Update version and disable actual release tagging for validation of Powershell@2 task changes
* Revert "Update version and disable actual release tagging for validation of Powershell@2 task changes"
This reverts commit 53bfd04746cc9d0060fa8dd29b4acfcacd015add.
* update version to dev.1 for test release
* Update release date in CHANGELOG.md
* Add checkout step
* Faster matrix
* Add Skip.Test to improve inner loop
* Show more info for tagging
* Revert "Faster matrix"
This reverts commit 713afd3d64743cbc1841e1ee965e936c049f7cf7.
* Add correct folder
* Add fixes for tagging repo
* Use Invoke-WebRequest for GetExistingTags
* Use -Uri
* return empty list
* Add vcpkg caching
* Set contents to copy
* Add doc uploads for C++
* Revert "Update release date in CHANGELOG.md"
This reverts commit 6fb302701381758cbb3d3828c2ce8d29d6b77950.
* Revert "update version to dev.1 for test release"
This reverts commit 4e188e4da99cb1246f195a5362e47d6ff80c3219.
* Revert "Add vcpkg caching"
This reverts commit 1f5f4d95e21d07d5ade1df470f39ceb478849f06.
* Add ci.yml for storage
* OSVmImage
* Use correct name for storage
* Update ci.ymls
* Documentation generation
* Fix tabbing
* More tabbing
* Use correct service directory for storage ci.yml
* Add docs assets
* Use cpp for dropdown generation
* Use cmake to generate documentation
* Use CMake to generate doxygen docs
* BuildArgs -> GenerateArgs
* Correct template path
* More CURL options
* Install curl to satisfy minimum build requirements
* use dependency variable name
* Add VCPKG_DEFAULT_TRIPLET
* Always generate documentaion when -DBUILD_DOCUMENTATION=YES
* Build docs at top level
* Change variable names, simplify cmake-build.yml
* -DBUILD_DOCUMENTATION
* Try using MathJax for formula rendering instead of Latex
* Add version.txt for storage
* artifact.Name -> artifact.Path
* Build docs by target
* Remove Doxyfile
* Remove Doxyfile.template
* Remove generate_docs.py, we are using cmake
* Pass CtestRegex to archetype-sdk-client job template)
* Remove Date in request options, assign x-ms-version a default value
* reformat files with clang-format
* Add shared key policy and basic request policy
* Add openssl dependency for linux and macOS
* add some comments, some slight fixes
* Rename CommonRequestPolicy -> CommonHeaderRequestPolicy
* add blob service auto generated protocol layer
* Add storage uri builder
* integrate with pipeline
* Add libxml2 dependency
* Fix variables name
* Rename variable and function name
* Move xxx_options.hpp out of internal directory
* Rename FromConnectionString -> CreateFromConnectionString
* Replicate C pipeline files to CPP
* Adjust to build CPP
* Remove pipeline pieces copied from C that are not needed for C++ build.
* Remove extraneous debugging step.