Commit Graph

233 Commits

Author SHA1 Message Date
Daniel Jurek
140e05baa7
Migrate to matrix generator (#3553)
* Represent existing matrix in json
* Use new matrix
* Move to stage
* Cloud configuration
* MaxParallel
* DependsOn
* Quote CtestRegex
* Use template for cmake generate tests
* Template name mappings
* Formatting, parameters
* Remove duplicate bypass-local-dns.yml
* Enable Location override
* Add Location
* Add spelling words
* Use Ubuntu 20 where the name specifies Ubuntu 20
* Apply suggestions from code review

Co-authored-by: Ben Broderick Phillips <ben@benbp.net>

* PR feedback
* fix storage sample
* Matrix documentation

Co-authored-by: Ben Broderick Phillips <ben@benbp.net>
Co-authored-by: Victor Vazquez <vhvb1989@gmail.com>
2022-04-26 14:34:23 +00:00
Daniel Jurek
04cd29039b
Vcpkg Binary Cache Cleanup (#3482)
* 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
2022-04-04 13:12:16 -07:00
Daniel Jurek
a91d151e79
Vcpkg Beta Automation (for real) (#3497)
* 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
2022-04-01 06:30:03 -07:00
Daniel Jurek
ca8b843954
Revert "Vcpkg Beta Automation (#3430)" (#3495)
This reverts commit 60f0dfdcea.
2022-03-31 13:14:19 -07:00
Daniel Jurek
60f0dfdcea
Vcpkg Beta Automation (#3430)
* 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
2022-03-31 12:52:14 -07:00
George Arama
b7a79158d2
Verify changelog (#3489)
* 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
2022-03-31 11:24:24 -07:00
Victor Vazquez
835f156af9
Vcpkg manifest and binary caching (#3329)
* 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>
2022-03-24 09:11:30 -07:00
Victor Vazquez
67fd525d23
Run tests on Release mode for Windows CI gates (nightly) (#3473)
* run tests on Release mode

* typo

* one step only
2022-03-23 17:29:43 -07:00
Daniel Jurek
ca61b8b214
Update prepare-pipelines.yml (#3459) 2022-03-22 12:19:28 -07:00
Victor Vazquez
feaaf0b414
Update release mode windows + samples (#3451)
* 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
2022-03-22 01:39:39 +00:00
Daniel Jurek
44310b635a
Log binary sizes (excl. UWP changes) (#3357)
* 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
2022-03-03 11:36:11 -08:00
Larry Osterman
ddc9eb355f
Fixed Live Tests for Attestation SDK. (#3366)
* 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>
2022-02-24 22:48:15 +00:00
Larry Osterman
cd9ae61a8e
Created Attestation Administration client (#3355)
* Created Attestation Administration client

* Integrated with main
2022-02-19 01:56:35 +00:00
Daniel Jurek
d741007571
Add relevant variable groups to new pipelines (#3353) 2022-02-17 06:00:28 +00:00
Larry Osterman
d2fd862ce1
Create Attestation SDK (#3228)
* Created Attestation


Co-authored-by: Victor Vazquez <victor.vazquez@microsoft.com>
Co-authored-by: Daniel Jurek <djurek@microsoft.com>
2022-02-16 09:15:18 -08:00
Daniel Jurek
a97903770a
Skip release stage on private repository (#3322) 2022-02-04 23:15:16 -08:00
Victor Vazquez
0414dd3b15
restore uwp, only remove tests (#3300) 2022-02-01 11:05:56 -08:00
Victor Vazquez
1cd14b196d
diable uwp gates (#3296) 2022-01-31 16:09:30 -08:00
George Arama
71d4b87bb0
fix build (#3270)
* fix build

* add build samples to ci
2022-01-25 14:26:10 -08:00
Victor Vazquez
c10de791cc
Build ci gates per service (#3260) 2022-01-20 18:09:06 +00:00
Scott Beddall
8474c4c69c
Fix BOM artifact upload failure on failed cmake (#3256)
* ensure bom generation matches the artifact conditions. unless cancelled, it'll always be generated and uploaded
2022-01-18 15:26:55 -08:00
Victor Vazquez
20bb1ec276
Recordings for storage (#3194)
* Recordings for storage (#4)
2022-01-18 14:50:15 -08:00
George Arama
9d1ede92ec
Prototype build from source (#3180)
* 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
2022-01-14 13:06:00 -08:00
Scott Beddall
67dce1292e
Add Manifest Generation (#3241)
* add manifest generation

* enable bom signing

* swap to publish-artifact, add necessary artifact upload for ci.tests.
2022-01-14 09:06:31 -08:00
Victor Vazquez
30c5d77d88
Remove Logging from the LibcurlConnectionPool - cleaning routine (#3219)
Remove Logging from the LibcurlConnectionPool - cleaning routine (#3219)
2022-01-13 20:04:18 +00:00
Victor Vazquez
dc5b45e759
Test Cmake generate configs (#3230)
Adding extra stage for individual packages generation
2022-01-11 15:49:56 -08:00
Daniel Jurek
afe34f63ef
Upload map files to specific artifact locations (#3229)
* Require success to upload map files

* Use a different artifact name for each attempt

* Agent.JobAttempt -> System.JobAttempt, add some display names
2022-01-10 15:25:32 -08:00
Victor Vazquez
e7c610dcb3
aver (#3212) 2022-01-05 12:24:55 -08:00
George Arama
f60db74f21
Enable extra logging for tests (#3202)
* enable -VV

* verbose

* PR comments

* PR discussion
2022-01-04 12:03:04 -08:00
Daniel Jurek
fa0fa97155
Generate map files (#3181)
* 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
2022-01-03 13:56:41 -08:00
George Arama
468b84c170
increalse live test timeout (#3205) 2022-01-03 11:45:46 -08:00
Victor Vazquez
0bde2ad3f8
Define env from each service ci (#3184)
use env vars by service config
2021-12-14 17:23:44 -08:00
Victor Vazquez
7301f348b0
Recordings for identity (#3156)
Adding test recordings for Identity
2021-12-14 21:42:08 +00:00
Daniel Jurek
ef12972c5c
Move macos up to 10.15 or remove where there is sufficient 10.15 coverage (#3169) 2021-12-08 13:08:00 -08:00
Victor Vazquez
50e984f35c
Recording for Key Vault Keys (#3146)
* test recordings for KeyVault Keys
2021-12-06 20:58:33 +00:00
Sima Zhu
b28496a9fb
Fixed the get-codeowner in release step. (#3130) 2021-11-22 17:31:43 -08:00
Victor Vazquez
ea9c1efe86
Run service samples on CI gate with ubuntu (#3105)
* samples on ubuntu-default
2021-11-18 10:47:18 -08:00
Daniel Jurek
198327e16c
Reduce incidence of build storms (#3079)
* 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
2021-11-08 15:01:50 -08:00
Daniel Jurek
eae7b14f57
Add Xcode 12.5.1 (#3023) 2021-11-04 14:42:29 -07:00
Daniel Jurek
f1aae9d79e
Readd -V to ctest invocation (#3042) 2021-11-04 10:17:02 -07:00
Daniel Jurek
413b4b7665
Add coverage enforcement (#2992)
* Add coverage enforcement

* Add spelling exception for mspremier

* Use previous build coverage data, enforce 3% variance, use Skip.CoverageEnforcement feature flag

* Use version 8 of quality checks

* Remove forceCoverageImprovement, it doesn't allow 0% improvements (e.g. doc changes, etc.)

* branch -> branches

* Configure coverage thresholds per-service

* Use fixed coverage

* Review feedback

* Per-service coverage plumbing

* Flip branch and line coverage requirements for KV to accurately reflect current baseline
2021-11-03 10:56:32 -07:00
Daniel Jurek
52e0eeb393
Add test result uploading (#3017)
* 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
2021-11-03 10:54:43 -07:00
Daniel Jurek
c534a1e160
Cognitive Matrix Consolidation (#2947)
* 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
2021-10-22 13:49:10 -07:00
Victor Vazquez
f4e6390dff
Enable no-rtti (#2963)
* Enable no-rtti
2021-10-14 18:12:03 -07:00
Daniel Jurek
14aa1516d0
Add spell check exceptions and enable CI failure for spelling errors in changed files (#2865)
* Add spell check exceptions and enable spell check failures

* Add HRESULT and sort spelling list

* Add exceptions for cmake-modules
2021-09-13 14:38:49 -07:00
Daniel Jurek
af44672837
Releases to vcpkg tag codeowners (#2825)
* 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.
2021-09-09 14:47:15 -07:00
Daniel Jurek
deac75c2a4
Remove cspell enforcement, there are edge cases where cspell will fail incorrectly based on undocumented configuration behavior (#2811) 2021-08-27 23:08:35 +00:00
Daniel Jurek
2418581e2e
Spell Check Phase 2 (#2794)
* Formatting

* Add cpp to dictionaries, comment to words section, and opted-out paths for spell checking

* Enable blocking of PRs on spelling error
2021-08-26 14:15:22 -07:00
George Arama
a861ae5853
add AZURE_TEST_MODE (#2792)
* add AZURE_TEST_MODE

* fix values
2021-08-25 10:16:03 -07:00
Victor Vazquez
49636a2f93
ignore result of function to compile on G++ 5 (#2784)
* 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
2021-08-24 15:55:46 -07:00
Daniel Jurek
ae4a41cfbd
Use Clang 11 in Ubuntu 20 (#2776)
* 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
2021-08-19 17:14:08 -07:00
Chidozie Ononiwu (His Righteousness)
3e39e0e44a
Add auto-merge to Version increment PR (#2708) 2021-08-03 16:34:07 -07:00
Daniel Jurek
d9b5d69723
Revert "Update Ubuntu VM Image from 18 to 20 (#2564)" (#2689)
* Revert "Update Ubuntu VM Image from 18 to 20 (#2564)"

This reverts commit 59440caa39.

* Add Ubuntu 20 to matrix
2021-08-03 09:14:34 -07:00
Chidozie Ononiwu (His Righteousness)
59440caa39
Update Ubuntu VM Image from 18 to 20 (#2564) 2021-07-27 15:20:37 -07:00
Victor Vazquez
9b06fc8f33
compile samples (#2556)
* compile samples
2021-07-07 06:50:05 -07:00
Daniel Jurek
83b8feeb35
Add dependency on LiveTest to release (#2457)
* 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.
2021-06-30 13:41:16 -07:00
Victor Vazquez
7a31ca5dd3
Fix Main - ignore warning 6101 (#2471)
* Ignoring msvc warning 6101

* remove not required

* not required

* perf issues

* fix livetests build args
2021-06-23 23:50:07 +00:00
Daniel Jurek
fda88bf7b8
Update for "master" -> "main" branch rename (#2455)
* 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.
2021-06-18 09:09:27 -07:00
Victor Vazquez
a63a892002
CI builds Perf test (#2446) 2021-06-14 14:29:09 -07:00
Victor Vazquez
05ef02de90
add multithread build to macOS (#2400) 2021-06-03 21:44:45 -07:00
Azure SDK Bot
bb0d1287bc
Sync eng/common directory with azure-sdk-tools for PR 1615 (#2335)
* Move docindex.yml from steps -> jobs

* Add docindex.yml

Co-authored-by: Daniel Jurek <djurek@microsoft.com>
2021-05-20 17:20:46 -04:00
Daniel Jurek
8cf7746b6b
Add spellcheck (#2181)
* Add spellcheck

* Add spelling error

* Format cspell.json

* Revert "Add spelling error"

This reverts commit 37446522791492e8ee2c1c54af0d2da1e162d2e4.
2021-05-03 19:13:02 +00:00
Mitch Denny
79c9e12741
Enable retain runs. (#2145) 2021-04-23 09:17:08 +10:00
Mitch Denny
5f7f4783bb
Revert retain. (#2109) 2021-04-13 16:25:39 +10:00
Mitch Denny
ff2de0e506
Enable retain runs. (#2101) 2021-04-13 03:35:20 +00:00
Daniel Jurek
35950242fb
Remove Manual build reason at the archetype-sdk-client.yml level. The appropriate check is already in place in archetype-cpp-release.yml (#2095) 2021-04-12 08:53:03 -07:00
Daniel Jurek
5a99f38df1
Add nightly vcpkg publishing (#2025)
* Tool changes to support nightly test package release

* Initial wiring up and refactor vcpkg-publish.yml

* Use vcpkg-clone.yml

* Disable publishing for verification of nightly builds

* Complete the comment

* Dependency is enforced at the stage level, not the deployment/job level

* Remove environment, no approval needed

* Add ability to enable test release parameters

* deploy -> job

* deployment -> job

* Remove strategy

* Download pipeline artifacts

* task -> download

* Set appropriate working directory

* git status

* Set working directory

* Add pipeline for nightly vcpkg PR update

* Correct vcpkg-clone.yml path

* Add identity parameters to git merge commands

* Remove GitIdentityParameters, the merge command does not suppor tthem. Add instead in the pipeline

* Split lines

* Write-Host

* Template for nightly branch name, update comments, Check for scheduling or "PublishNightlyVcpkg"

* include archetype-cpp-release.yml changes

* Re-enable publishing stage

* Close the and

* Runtime condition for integration stage

* Move integration below package publishing stages

* try -- to disambiguate

* ^ -> ~

* Remove --

* Documentation and variable naming

* Move documentation comment

* Update eng/pipelines/templates/steps/generate-nightly-branch-name.yml

Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>

* Apply suggestions from code review

Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>

* Review feedback

* Add ability to skip all release steps

* Equal sign

* The right number of dashes

* Checkout before merge

* Checkout the default branch

* --no-ff

* git reset

* Skip publishing for artifacts which are not publishign to vcpkg

* Add git config --unset

* Apply suggestions from code review

Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>

* Review feedback

* Review feedback

* Remove extra reset

* TestRelease -> DailyRelease

Co-authored-by: Wes Haggard <weshaggard@users.noreply.github.com>
2021-04-06 14:48:32 -07:00
Victor Vazquez
cd4ea9966d
remove verbose config from win ci (#2002) 2021-04-01 01:32:26 +00:00
Daniel Jurek
e396888726
Manually install gcc and g++ 8 if needed (#2012) 2021-03-31 18:36:44 +00:00
Chidozie Ononiwu
7d9032fcc8
Add flag for closing the pull request immediately after opening it (#1965) 2021-03-24 09:52:36 -07:00
Chidozie Ononiwu
3d1a58e3f8
Fixup CHANGELOG.md, add SetPackageVersion, add calls to set-test-pipe… (#1936)
* 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
2021-03-23 11:34:30 -07:00
Daniel Jurek
90cd888a63
Refactor vcpkg PR step (also, use CHANGELOG.md entry in commit message) (#1791)
* 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
2021-03-08 16:18:47 -08:00
Daniel Jurek
272c229071
Add timeoutInMinutes: 10 to Vcpkg Cache (#1792)
* Add timeoutInMinutes: 10 to Vcpkg Cache

* Add comment about Vcpkg Cache timeout
2021-03-08 15:46:38 -08:00
Chidozie Ononiwu
e04624f9a5
Add eng common workflow enforcement (#1760) 2021-03-02 12:54:04 -08:00
Mitch Denny
b68a20e3d2
Re-enable agent OS verification (#1624)
* Re-enable agent OS verification
2021-02-16 15:53:56 +11:00
Daniel Jurek
2d4d766c6d
Publishing automation for vcpkg x-add-version (#1649)
* 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
2021-02-09 14:56:00 -08:00
Daniel Jurek
d92e88415b
Add succeeded() condition to dependent jobs (#1605)
Without checking for succeeded() these jobs will run regardless of the success or failure of the TagRepository step.
2021-02-05 16:28:16 +00:00
Daniel Jurek
dbd9c62a78
Add TagRepository dependency (#1567)
* Add TagRepository dependency

* Remove extra CPP
2021-02-02 09:55:07 -08:00
Daniel Jurek
2cc9099e1a
Add bypass-local-dns.yml to CI and test jobs (#1497)
* 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.
2021-02-01 21:48:36 -08:00
Victor Vazquez
c6b919ac2a
release mode test for Linux with test (#1560)
* 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>
2021-02-01 21:43:40 -08:00
Mitch Denny
d30408becd
Move live tests over to 1ES pools. (#1531) 2021-02-02 08:53:54 +11:00
Mitch Denny
2775d8680b
1ES pools update for release pipeline (#1519) 2021-02-01 10:45:38 +11:00
Victor Vazquez
6c3aeed35c
Json unit tests (#1464)
Adding json unit tests
2021-01-27 10:07:12 -08:00
Daniel Jurek
583120d3ef
Add timeout parameter to live test job (#1478) 2021-01-26 15:04:37 -08:00
Ahson Khan
a850513e28
Update clang format validate script instructions when it fails to be accurate (#1460)
Syncing the instructions based on changes from https://github.com/Azure/azure-sdk-for-cpp/pull/1438

Currently, the instructions suggest running a command which may not work on all OSes:
https://dev.azure.com/azure-sdk/public/_build/results?buildId=701256&view=logs&j=0585f5d6-0937-5c15-894c-06e189e06847&t=a45688da-a69e-5817-f832-3aa6246959b7
```text
Some files were not formatted correctly according to the .clang-format file.
Please run clang-format version 10 or greater to fix the issue by using this bash command at the root of the repo:
find sdk/ -regex '.*\.\(cpp\|hpp\)' -exec clang-format -style=file -i {} \;
```
2021-01-26 01:44:04 +00:00
Victor Vazquez
4455ac577c
Move clang-format check to include tests (#1438)
* Move clang-format check to include tests
2021-01-22 13:35:59 -08:00
Victor Vazquez
385a7887a2
Moving json to internal (#1378)
Wrap nlohmann json lib inside core internal api
2021-01-22 11:12:27 -08:00
Victor Vazquez
a2bc2e9d99
remove static analysis from CI (#1423)
fixes: #1422
2021-01-21 20:20:27 +00:00
Victor Vazquez
473c7ee0b0
add libcurl to livetest pipeline (#1413) 2021-01-20 19:39:00 -08:00
Victor Vazquez
f285aaead9
Make CI fail if there are clang format errors (#1328)
Won't pass until #1330 is merged first

fixes: #1329
2021-01-20 01:09:29 +00:00
Daniel Jurek
f15c823e79
Automate publishing to vcpkg (#1283)
* 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
2021-01-13 14:35:18 -08:00
Mitch Denny
ab6ec8ef0b
Initial cut over to 1ES hosted pools. (#1321) 2021-01-13 10:14:59 +11:00
Victor Vazquez
5e7dc42df8
add verbose to windows builds and use 4 parallel jobs (#1183)
* add verbose to windows build and use 4 parallel jobs
2020-12-15 14:54:49 -08:00
Ahson Khan
0f854ffa9b
Add WinHTTP Transport support to the SDK for windows clients as another HTTP Transport. (#897)
Fixes https://github.com/Azure/azure-sdk-for-cpp/issues/354
2020-12-10 22:00:52 +00:00
Victor Vazquez
c3afb7798f
Remove CMake nlohmann module (#1042)
fixes: https://github.com/Azure/azure-sdk-for-cpp/issues/1041

Make nlohmann a 3rd party required lib. Do not fetch it with CMake if it is not found
2020-12-03 01:52:56 +00:00
Sima Zhu
8d1450b855
Delete the redundant files and point to common scripts (#1062) 2020-12-02 17:23:58 -08:00
Victor Vazquez
ac09ee6f44
Fix coverage report for template and core pipelines (#1002)
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
2020-11-19 20:19:57 +00:00
Victor Vazquez
84f690e968
Allow exclude for codecoverage (#939)
* Add support for EXCLUDE path from code coverage

* code coverage for live tests
2020-11-18 09:57:56 -08:00
Sima Zhu
758b532dcf
Added publish to GH pages steps. (#894) 2020-11-05 15:57:31 -08:00
Daniel Jurek
20349daf11
Live test framework (#608)
- Add live test framework
- Enable storage live tests
2020-11-05 14:59:05 -08:00
Sima Zhu
202fc466fc
Centralize the docindex scripts and regenerate Github IO landing page. (#892)
* Centralize the docindex scripts and regenerate Github IO landing page.
2020-11-02 21:19:46 -08:00
Victor Vazquez
c764052e7c
Add Code coverage (#830)
* Add code coverage scripts
2020-10-27 15:35:15 -07:00
Mitch Denny
64ddc30abd
Add prepare pipelines. (#831)
* Add prepare pipelines.

* Add training blank line.
2020-10-22 12:24:23 +11:00
Sima Zhu
2d8694a8f4
Scan the entire repo to cover root path (#818) 2020-10-21 09:41:08 -07:00
Victor Vazquez
d79d95e5b7
Add prefix for Azure Core Tests - Fix CI test run (#801)
* Add prefix for Azure Core Tests
2020-10-16 17:39:02 -07:00
Victor Vazquez
cd2a8a3812
cmake updates for building transport adapters (#706)
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
2020-10-10 00:08:57 +00:00
Sima Zhu
8fed524b96
Replaced relative link with absolute links and remove locale (#668) 2020-09-17 22:28:36 -07:00
Daniel Jurek
5ddeaabab9
Use vcpkg cache (#646) 2020-09-17 21:16:09 -07:00
Sima Zhu
caf9fbc7d6
Enable master link replacement feature for cpp (#632) 2020-09-17 17:51:27 -07:00
Daniel Jurek
39e8dfd6e7
Vcpkg publish framework (#645)
* Add vcpkg artifact creation and port template copying
* Skip staging if vcpkg port directory doesn't exist
2020-09-17 15:45:43 -07:00
Sima Zhu
9d83f2c7bd
Allow skip publish DocMS or Github IO for each artifact (#648) 2020-09-15 13:31:00 -07:00
Daniel Jurek
21214f9e38
Add support for g++ 8 and 9 (#502)
* Add support for g++ 8 and 9

* Close parentheses

* Not equal empty string

* Use sudo

* Remove apt install step, compilers are already present
2020-09-11 15:19:38 -07:00
Daniel Jurek
48e06b6e4c
Fix C++ multi-package UP release (#633) 2020-09-09 20:18:47 -07:00
Daniel Jurek
3e4fa18377
Add docs.microsoft.com artifact generation (#576)
* 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
2020-09-03 21:08:30 -07:00
Daniel Jurek
919610f429
Use version.hpp for package versions (#572)
* 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"
2020-09-02 18:53:46 -07:00
JinmingHu
3a4e1f3b49
Restructure storage directory (#536)
* 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
2020-08-27 16:16:08 +08:00
Victor Vazquez
1f0da6fcc4
Clean routine (#530)
* adding cleaner routine
2020-08-26 16:51:24 -07:00
Daniel Jurek
455cf134b3
Add CHANGELOG enforcement to release process (#413)
* 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.
2020-08-07 12:07:14 -07:00
KarishmaGhiya
3060f7341c
clean up links and add link verification (#410) 2020-08-07 11:55:11 -07:00
Daniel Jurek
c7d994f08f
Use vcpkg caching (#361)
* Use vcpkg caching

* fetch tags

* Supply OSVmImage to doc generation so vcpkg.yml can include/exclude the correct set of steps
2020-07-31 15:10:09 -07:00
Daniel Jurek
d96413b950
Engineering changes required to publish tags and docs (#260)
* 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.
2020-07-28 10:27:42 -07:00
JinmingHu
95aa6361ef
Concurrent upload block blob from file, concurrent download blob to file (#247)
* concurrent download to file

* concurrent upload block blob from file

* update sample

* Change default download chunk size from 8MB to 4MB

* fix CI
2020-07-08 13:26:22 +08:00
Chidozie Ononiwu
c22e4f8386
Clean up azure-sdk-tools and reduce dependency on external resources (#228) 2020-07-02 14:20:12 -07:00
Daniel Jurek
0cfcdca725
Unified Pipelines for storage (#184)
* 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)
2020-06-26 10:42:48 -07:00
Daniel Jurek
f604a1dd00
Replace CMake steps with script steps (#156)
* Replace CMake steps with script steps
* Remove comment, use script tasks to invoke cmake going forward
2020-06-11 11:20:52 -07:00
JinmingHu
401298577e
Shared Key Authentication Policy (#160)
* 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
2020-06-09 03:38:35 -07:00
JinmingHu
5fc6fea9f4
Auto-generated protocol layer of Container and BlockBlob (#144)
* 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
2020-06-04 13:21:08 +08:00
Rick Winter
602f75744a
HttpPipeline and HttpPolicies (#63)
* HttpPipeline
2020-05-29 10:57:10 -07:00
Danny Amirault
a6bb11ed01
Remove dependancy on azure-sdk-build-tools (#58) 2020-04-01 09:01:40 -07:00
Danny Amirault
00b8ba52b3
Auto update package versions upon release generation (#52)
* Auto update package versions upon release generation
- Adapted from .Net package incrementing
 - https://github.com/Azure/azure-sdk-for-net/blob/master/eng/Update-PkgVersion.ps1
- Seed Changelog file to allow updates to happen

* Spelling fix
2020-03-31 09:58:06 -07:00
Victor Vazquez
9f1493af27
Adding http request (#41)
* adding gtest framework

* http request
2020-03-26 11:38:07 -07:00
Danny Amirault
2708ca8f11
Specify artifact path in YML to locate artifact files correctly (#45)
* Specify artifact path in YML to locate artifact files correctly

* Remove doc generation for now
2020-03-25 12:41:15 -07:00
Danny Amirault
5dff0dad92
Initial CI pipeline work (#36)
* 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.
2020-03-18 13:32:30 -07:00