diff --git a/.ci/build.yml b/.ci/build.yml deleted file mode 100644 index f2d6516a8..000000000 --- a/.ci/build.yml +++ /dev/null @@ -1,381 +0,0 @@ -parameters: - # job parameters - name: 'build' # the name of the build job for dependency purposes - displayName: 'Build' # the human name of the job - timeoutInMinutes: 60 # the timeout in minutes - dependsOn: [] # any jobs this job depends on - masterBranchName: 'main' # the "master" branch that should be used - can be something other than "master" - installAppleCertificates: 'true' # whether or not to install the Apple certificates and provisioning profiles - areaPath: '' # the areaPath to log any issues - runChecks: 'true' - continueOnError: 'false' - publishJob: '' # the job to use as the source of the 'nuget' artifact: '', 'windows', 'macos', 'linux' - publishOutputSuffix: '' # the artifact suffix to use when publishing the output folder - signListPath: 'SignList.xml' # the path to the SignList.xml to copy into the nuget artifact for signing - # job software version parameters - macosImage: 'macOS-12' # the name of the macOS VM image - # 20211121 - # macOS-latest = macOS-10.15 - # macOS-11 required for XCode 13.1 - mono: 'Latest' # the version of mono to use - xcode: '14.0.1' # the version of Xcode to use - cake: '0.33.0' # the version of Cake to use - apiTools: '1.3.4' # the version of the api-tools CLI to use - xharness: '1.0.0-prerelease.20602.1' - tools: [] # a list of any additional .NET Core tools needed - cakeTemplatesBranch: 'main' # the branch of XamarinComponents that has the templates - # build parameters - buildType: 'basic' # the type of build: 'basic', 'manifest', 'directories', 'none' - steps: [] # the steps to use when building, typically for 'none' - verbosity: 'normal' # the build verbosity: 'minimal', 'normal', 'diagnostic' - configuration: 'Release' # the build configuration: 'Debug', 'Release' - validPackagePrefixes: [ 'Xamarin', 'Mono' ] # any NuGet prefixes that should pass validation - artifactsPath: 'output' # the path to the NuGet packages that need to be signed, verified and published - # basic cake build parameters - cakeTarget: 'ci' # [basic] the Cake target to run (defaults to 'ci') - cakeFile: 'build.cake' # [basic] the path to the build.cake file (can be any filename) - cakeExtraArgs: '' # [basic] any additional cake CLI arguments - # manifest-based build parameters - forceBuild: 'false' # [manifest, directories] whether or not to force the build - namesFilter: '' # [manifest, directories] the names of the items to build - targetsFilter: 'ci' # [manifest, directories] the targets of the items to build - runCodeQL: 'false' - tsaOptionsPath: '$(Build.SourcesDirectory)/.ci/tsaoptions.json' - -jobs: - - job: ${{ parameters.name }} - displayName: ${{ parameters.displayName }} - timeoutInMinutes: ${{ parameters.timeoutInMinutes }} - continueOnError: ${{ eq(parameters.continueOnError, 'true') }} - dependsOn: ${{ parameters.dependsOn }} - variables: - Codeql.Enabled: ${{ parameters.runCodeQL }} - Codeql.TSAEnabled: true - Codeql.TSAOptionsPath: ${{ parameters.tsaOptionsPath }} - pool: - vmImage: ${{ parameters.macosImage }} - steps: - - checkout: self - # before the build starts, make sure the tooling is as expected - - bash: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh ${{ parameters.mono }} - displayName: 'Switch to the latest Xamarin SDK' - - bash: echo '##vso[task.setvariable variable=MD_APPLE_SDK_ROOT;]'/Applications/Xcode_${{ parameters.xcode }}.app;sudo xcode-select --switch /Applications/Xcode_${{ parameters.xcode }}.app/Contents/Developer - displayName: 'Switch to the latest Xcode' - - ${{ if eq(parameters.installAppleCertificates, 'true') }}: - - task: InstallAppleProvisioningProfile@1 - displayName: 'Install the iOS provisioning profile' - inputs: - provProfileSecureFile: 'Components iOS Provisioning.mobileprovision' - - task: InstallAppleProvisioningProfile@1 - displayName: 'Install the macOS provisioning profile' - inputs: - provProfileSecureFile: 'Components Mac Provisioning.mobileprovision' - - task: InstallAppleProvisioningProfile@1 - displayName: 'Install the tvOS provisioning profile' - inputs: - provProfileSecureFile: 'Components tvOS Provisioning.mobileprovision' - - task: InstallAppleCertificate@2 - displayName: 'Install the iOS certificate' - inputs: - certSecureFile: 'Components iOS Certificate.p12' - - task: InstallAppleCertificate@2 - displayName: 'Install the macOS certificate' - inputs: - certSecureFile: 'Components Mac Certificate.p12' - - bash: echo '##vso[task.setvariable variable=PATH;]'$PATH:$HOME/.dotnet/tools - displayName: 'Add ~/.dotnet/tools to the PATH environment variable' - # Cake v0.33.0 uses this version - - task: UseDotNet@2 - displayName: Install .NET 2.1.818 - inputs: - version: '2.1.818' - - task: UseDotNet@2 - displayName: Install .NET $(DotNetVersion) - inputs: - version: $(DotNetVersion) - - pwsh: | - dotnet workload install ios --verbosity diag --from-rollback-file https://maui.blob.core.windows.net/metadata/rollbacks/6.0.4xx.json --source $(Dotnet6Source) --source $(NuGetOrgSource) - displayName: Install .NET 6 iOS Workload - - pwsh: | - dotnet tool update -g api-tools --version ${{ parameters.apiTools }} - dotnet tool update -g cake.tool --version ${{ parameters.cake }} - dotnet tool update -g Microsoft.DotNet.XHarness.CLI --version ${{ parameters.xharness }} --add-source https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json - displayName: 'Install required .NET Core global tools' - - ${{ each tool in parameters.tools }}: - - ${{ each pair in tool }}: - - pwsh: dotnet tool update -g ${{ pair.key }} --version ${{ pair.value }} - displayName: 'Install additional .NET Core global tool: ${{ pair.key }}' - - task: NuGetToolInstaller@1 - inputs: - checkLatest: true - displayName: 'Download the latest nuget.exe' - - pwsh: | - $branch = "${{ parameters.cakeTemplatesBranch }}" - if (("$(Build.Repository.Id)" -eq "xamarin/XamarinComponents") -and ("$(System.PullRequest.IsFork)" -eq "False") -and ("$env:FORCE_MASTER_TEMPLATES" -ne "True")) { - if ("$env:SYSTEM_PULLREQUEST_SOURCEBRANCH") { - $branch = "$env:SYSTEM_PULLREQUEST_SOURCEBRANCH" - } else { - $branch = "$(Build.SourceBranch)" - } - } - if ($branch.StartsWith("refs/heads/")) { - $branch = $branch.Substring(11) - } - if ($branch.StartsWith("refs/tags/")) { - $branch = $branch.Substring(10) - } - $root = "https://raw.githubusercontent.com/xamarin/XamarinComponents/$branch/.ci" - Write-Host "##vso[task.setvariable variable=TemplateRootUri]$root" - Write-Host "URL root for templates: $root" - displayName: 'Resolve the cake templates URL' - - pwsh: | - $uri = "$(TemplateRootUri)/validation.cake" - Write-Host "Downloading script from $uri..." - Invoke-WebRequest -Uri $uri -OutFile "validation.cake" - displayName: 'Download the cake script to validate NuGet packages' - - pwsh: | - $uri = "$(TemplateRootUri)/nuget-diff.cake" - Write-Host "Downloading script from $uri..." - Invoke-WebRequest -Uri $uri -OutFile "nuget-diff.cake" - displayName: 'Download the cake script to diff NuGet packages' - # determine the last successful build for "master" branch - - pwsh: | - # determine the "master" branch - $masterBranch = "${{ parameters.masterBranchName }}" - $encodedBranch = [Uri]::EscapeDataString("refs/heads/$masterBranch") - Write-Host "Master branch: $masterBranch" - - # determine the "current" branch - $branch = "$(Build.SourceBranch)" - if ("$env:SYSTEM_PULLREQUEST_TARGETBRANCH") { - $branch = "$env:SYSTEM_PULLREQUEST_TARGETBRANCH" - } - if ($branch.StartsWith("refs/heads/")) { - $branch = $branch.Substring(11) - Write-Host "Current branch: $branch" - } - if ($branch.StartsWith("refs/tags/")) { - $branch = $branch.Substring(10) - Write-Host "Current tag: $branch" - } - - if (($branch -eq $masterBranch) -and ("$(System.PullRequest.IsFork)" -eq "False")) { - Write-Host "Branch is master, fetching last successful build commit..." - - $url = "$(System.TeamFoundationCollectionUri)$(System.TeamProjectId)/_apis/build/builds/?definitions=$(System.DefinitionId)&branchName=$encodedBranch&statusFilter=completed&resultFilter=succeeded&api-version=5.0" - Write-Host "URL for last successful master build: $url" - - $json = Invoke-RestMethod -Uri $url -Headers @{ - Authorization = "Bearer $(System.AccessToken)" - } - Write-Host "JSON response:" - Write-Host "$json" - - $lastSuccessfulBuildCommit = try { $json.value[0].sourceVersion; } catch { $null } - } - - if ($lastSuccessfulBuildCommit) { - Write-Host "Last successful commit found: $lastSuccessfulBuildCommit" - } else { - $lastSuccessfulBuildCommit = "origin/$masterBranch" - Write-Host "No previously successful build found, using $lastSuccessfulBuildCommit." - } - - Write-Host "##vso[task.setvariable variable=GitLastSuccessfulCommit]$lastSuccessfulBuildCommit" - displayName: 'Find the last successful commit' - - # the basic build - - ${{ if eq(parameters.buildType, 'basic') }}: - - pwsh: | - Get-Content $MyInvocation.MyCommand.Definition - dotnet cake ${{ parameters.cakeFile }} ${{ parameters.cakeExtraArgs }} ` - --gitpreviouscommit="$(GitLastSuccessfulCommit)" ` - --gitcommit="$(Build.SourceVersion)" ` - --gitbranch="$(Build.SourceBranch)" ` - --target="${{ parameters.cakeTarget }}" ` - --configuration="${{ parameters.configuration }}" ` - --verbosity="${{ parameters.verbosity }}" - displayName: 'Run basic build' - env: - JavaSdkDirectory: $(JAVA_HOME) - RepositoryCommit: $(Build.SourceVersion) - RepositoryBranch: $(Build.SourceBranchName) - RepositoryUrl: $(Build.Repository.Uri) - RepositoryType: "git" - # the directory-based build - - ${{ if eq(parameters.buildType, 'directories') }}: - - pwsh: | - $uri = "$(TemplateRootUri)/build-directories.cake" - Write-Host "Downloading script from $uri..." - Invoke-WebRequest -Uri $uri -OutFile "build-directories.cake" - displayName: 'Download the cake script to build directory-based repositories' - - pwsh: | - Get-Content $MyInvocation.MyCommand.Definition - $force = if ("$env:FORCEBUILD") { "$env:FORCEBUILD" } else { "${{ parameters.forceBuild }}" } - $names = if ("$env:BUILDDIRECTORYNAMES") { "$env:BUILDDIRECTORYNAMES" } else { "${{ parameters.namesFilter }}" } - $targets = if ("$env:BUILDDIRECTORYTARGETS") { "$env:BUILDDIRECTORYTARGETS" } else { "${{ parameters.targetsFilter }}" } - dotnet cake build-directories.cake ` - --gitpreviouscommit="$(GitLastSuccessfulCommit)" ` - --gitcommit="$(Build.SourceVersion)" ` - --gitbranch="$(Build.SourceBranch)" ` - --forcebuild="$force" ` - --names "$names" ` - --targets="$targets" ` - --copyoutputtoroot=true ` - --configuration="${{ parameters.configuration }}" ` - --verbosity="${{ parameters.verbosity }}" - displayName: 'Run directory build' - env: - JavaSdkDirectory: $(JAVA_HOME) - RepositoryCommit: $(Build.SourceVersion) - RepositoryBranch: $(Build.SourceBranchName) - RepositoryUrl: $(Build.Repository.Uri) - RepositoryType: "git" - # the manifest-based build - - ${{ if eq(parameters.buildType, 'manifest') }}: - - pwsh: | - $uri = "$(TemplateRootUri)/build-manifest.cake" - Write-Host "Downloading script from $uri..." - Invoke-WebRequest -Uri $uri -OutFile "build-manifest.cake" - displayName: 'Download the cake script to build manifest-based repositories' - - pwsh: | - Get-Content $MyInvocation.MyCommand.Definition - $force = if ("$env:FORCEBUILD") { "$env:FORCEBUILD" } else { "${{ parameters.forceBuild }}" } - $names = if ("$env:BUILDMANIFESTNAMES") { "$env:BUILDMANIFESTNAMES" } else { "${{ parameters.namesFilter }}" } - $targets = if ("$env:BUILDMANIFESTTARGETS") { "$env:BUILDMANIFESTTARGETS" } else { "${{ parameters.targetsFilter }}" } - dotnet cake build-manifest.cake ` - --gitpreviouscommit="$(GitLastSuccessfulCommit)" ` - --gitcommit="$(Build.SourceVersion)" ` - --gitbranch="$(Build.SourceBranch)" ` - --forcebuild="$force" ` - --names "$names" ` - --targets="$targets" ` - --copyoutputtoroot=true ` - --configuration="${{ parameters.configuration }}" ` - --verbosity="${{ parameters.verbosity }}" - displayName: 'Run manifest build' - env: - JavaSdkDirectory: $(JAVA_HOME) - RepositoryCommit: $(Build.SourceVersion) - RepositoryBranch: $(Build.SourceBranchName) - RepositoryUrl: $(Build.Repository.Uri) - RepositoryType: "git" - # the build steps, typically for 'none' builds - - ${{ parameters.steps }} - - task: PublishTestResults@2 - displayName: Publish the test results (xUnit) - condition: always() - inputs: - testResultsFormat: xUnit - testResultsFiles: 'output/**/*TestResults.xml' - testRunTitle: 'xUnit Test results for $(System.JobName)' - - task: PublishTestResults@2 - displayName: Publish the test results (NUnit) - condition: always() - inputs: - testResultsFormat: NUnit - testResultsFiles: 'output/**/*TestResults.xml' - testRunTitle: 'NUnit Test results for $(System.JobName)' - - task: PublishTestResults@2 - displayName: Publish the test results (VSTest) - condition: always() - inputs: - testResultsFormat: VSTest - testResultsFiles: 'output/**/*.trx' - testRunTitle: 'VS Test results for $(System.JobName)' - # post-build steps - - pwsh: | - dotnet cake validation.cake ` - --namespaces="${{ join(',', parameters.validPackagePrefixes) }}" ` - --verbosity="${{ parameters.verbosity }}" - displayName: 'Run NuGet package validation' - - pwsh: | - dotnet cake nuget-diff.cake ` - --artifacts="${{ parameters.artifactsPath }}" ` - --output="${{ parameters.artifactsPath }}/api-diff" ` - --cache="$(Agent.TempDirectory)/api-diff" ` - --verbosity="${{ parameters.verbosity }}" - displayName: 'Generate API diff' - # after the build is complete - - pwsh: | - $srcExists = (Test-Path "${{ parameters.signListPath }}") - $dstExists = (Test-Path "${{ parameters.artifactsPath }}\SignList.xml") - if ($srcExists -and !$dstExists) { - Copy-Item "${{ parameters.signListPath }}" "${{ parameters.artifactsPath }}\SignList.xml" - Write-Host "Copied ${{ parameters.signListPath }} to ${{ parameters.artifactsPath }}\SignList.xml" - } elseif (!$srcExists) { - Write-Host "${{ parameters.signListPath }} did not exist, nothing copied." - } elseif ($dstExists) { - Write-Host "${{ parameters.artifactsPath }}\SignList.xml already existed, nothing copied." - } - displayName: 'Copy SignList.xml to the nuget artifact' - - task: PublishBuildArtifacts@1 - displayName: 'Publish artifacts' - condition: or(eq('${{ parameters.publishJob }}', ''), eq('${{ parameters.publishJob }}', variables['System.JobName'])) - inputs: - PathToPublish: ${{ parameters.artifactsPath }} - ArtifactName: nuget - - task: PublishBuildArtifacts@1 - displayName: 'Publish platform artifacts' - condition: always() - inputs: - PathToPublish: output - ArtifactName: output-$(System.JobName)${{ parameters.publishOutputSuffix }} - # run any required checks - - ${{ if eq(variables['System.TeamProject'], 'devdiv') }}: - - task: ComponentGovernanceComponentDetection@0 - displayName: 'Run component detection' - condition: and(always(), eq('refs/heads/${{ parameters.masterBranchName }}', variables['Build.SourceBranch'])) - inputs: - scanType: 'Register' - verbosity: 'Verbose' - alertWarningLevel: 'High' - - - ${{ if and(eq(parameters.runChecks, 'true'), eq(variables['System.TeamProject'], 'devdiv')) }}: - - job: ${{ parameters.name }}_checks - displayName: 'Run required code checks' - condition: or(eq('refs/heads/${{ parameters.masterBranchName }}', variables['Build.SourceBranch']), eq('refs/heads/update-codecheck-tasks', variables['Build.SourceBranch'])) - pool: - name: 'Hosted Windows 2019 with VS2019' - steps: - - task: CredScan@3 - displayName: 'Analyze source for credentials' - - task: PoliCheck@2 - inputs: - targetType: F - targetArgument: '$(Build.SourcesDirectory)' - - task: SdtReport@2 - displayName: 'Create security analysis report' - inputs: - GdnExportAllTools: false - GdnExportGdnToolApiScan: false - GdnExportGdnToolArmory: false - GdnExportGdnToolBandit: false - GdnExportGdnToolBinSkim: false - GdnExportGdnToolCodesignValidation: false - GdnExportGdnToolCredScan: true - GdnExportGdnToolCredScanSeverity: 'Default' - GdnExportGdnToolCSRF: false - GdnExportGdnToolDetekt: false - GdnExportGdnToolESLint: false - GdnExportGdnToolFlawfinder: false - GdnExportGdnToolFortifySca: false - GdnExportGdnToolFxCop: false - GdnExportGdnToolGosec: false - GdnExportGdnToolModernCop: false - GdnExportGdnToolPoliCheck: true - GdnExportGdnToolPoliCheckSeverity: 'Default' - GdnExportGdnToolRoslynAnalyzers: false - GdnExportGdnToolPSScriptAnalyzer: false - GdnExportGdnToolSDLNativeRules: false - GdnExportGdnToolSemmle: false - GdnExportGdnToolSpotBugs: false - GdnExportGdnToolTSLint: false - - task: PublishSecurityAnalysisLogs@3 - displayName: 'Publish security analysis logs' - - task: TSAUpload@2 - continueOnError: true - inputs: - GdnPublishTsaOnboard: true - GdnPublishTsaConfigFile: ${{ parameters.tsaOptionsPath }} - GdnPublishTsaExportedResultsPublishable: true diff --git a/.ci/tsaoptions.json b/.ci/tsaoptions.json deleted file mode 100644 index fcfcffca1..000000000 --- a/.ci/tsaoptions.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "codebaseName": "GoogleApisForiOSComponents_main", - "notificationAliases": [ - "xamacomd@microsoft.com" - ], - "codebaseAdmins": [ - "REDMOND\\vsengxamarin" - ], - "instanceUrl": "https://devdiv.visualstudio.com/", - "projectName": "DevDiv", - "areaPath": "DevDiv\\VS Client - Runtime SDKs\\[Archived] Components", - "iterationPath": "DevDiv\\Future Backlog", - "tools": [ - "CredScan", - "PoliCheck" - ] -} diff --git a/azure-pipelines-compliance.yml b/azure-pipelines-compliance.yml deleted file mode 100644 index 3d5b4f02a..000000000 --- a/azure-pipelines-compliance.yml +++ /dev/null @@ -1,77 +0,0 @@ -variables: - codeBaseName: 'xamarin_GoogleApisForiOSComponents' - areaPath: 'DevDiv\VS Client - Runtime SDKs\[Archived] Components' - iterationPath: 'DevDiv\Future Backlog' - Codeql.Enabled: true - timeoutInMinutes: 360 - continueOnError: 'true' - poolName: 'Azure Pipelines' - imageName: 'macOS-latest' - verbosity: 'diagnostic' - -resources: - repositories: - - repository: yaml-templates - type: github - name: xamarin/yaml-templates - endpoint: xamarin - ref: refs/heads/main - -schedules: - - cron: '0 12 * * 0' - displayName: 'Weekly Compliance Check' - branches: - include: [ 'main' ] - always: false - -pool: - name: $(poolName) - vmImage: $(imageName) - -steps: - - checkout: self - - # CodeQL Init - - task: CodeQL3000Init@0 - displayName: CodeQL Init - - # Component Governance - - template: security/component-governance/v0.yml@yaml-templates - - # CredScan - - template: security/credscan/v3.yml@yaml-templates - - # PoliCheck - - template: security/policheck/v2.yml@yaml-templates - - # Publish Report - - template: security/publish-report/v2.yml@yaml-templates - - # CodeQL Finalize - - task: CodeQL3000Finalize@0 - displayName: CodeQL Finalize - - # TSA Upload - - task: TSAUpload@1 - continueOnError: true - inputs: - tsaVersion: 'TsaV2' - codebase: 'NewOrUpdate' - tsaEnvironment: 'PROD' - codeBaseName: $(codeBaseName) - notifyAlwaysV2: false - instanceUrlForTsaV2: 'DEVDIV' - projectNameDEVDIV: 'DevDiv' - areaPath: $(areaPath) - iterationPath: $(iterationPath) - uploadAPIScan: false - uploadBinSkim: false - uploadCredScan: true - uploadFortifySCA: false - uploadFxCop: false - uploadModernCop: false - uploadPoliCheck: true - uploadPREfast: false - uploadRoslyn: false - uploadTSLint: false - uploadAsync: true diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index f2c464ad2..000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,43 +0,0 @@ -trigger: - - main - - refs/tags/* - -resources: - repositories: - - repository: internal-templates - type: github - name: xamarin/yaml-templates - endpoint: xamarin - ref: refs/heads/main - -variables: - DotNetVersion: 6.0.402 - DotNet6Source: https://aka.ms/dotnet6/nuget/index.json - NuGetOrgSource: https://api.nuget.org/v3/index.json - BUILD_COMMIT: $(Build.SourceVersion) - BUILD_NUMBER: $(Build.BuildNumber) - -jobs: - - template: .ci/build.yml - parameters: - runCodeQL: true - timeoutInMinutes: 240 - areaPath: 'DevDiv\VS Client - Runtime SDKs\iOS and Mac\External Bindings' - cakeExtraArgs: '--names=$(SdksNames)' - - - ${{ if eq(variables['System.TeamProject'], 'devdiv') }}: - - template: sign-artifacts/jobs/v2.yml@internal-templates - parameters: - dependsOn: [ 'build' ] - condition: startsWith(variables['Build.SourceBranch'], 'refs/tags/') - - - template: compliance/sbom/job.v1.yml@internal-templates # Software Bill of Materials (SBOM): https://eng.ms/docs/cloud-ai-platform/devdiv/one-engineering-system-1es/1es-docs/secure-supply-chain/ado-sbom-generator - parameters: - packageName: 'Xamarin Google APIs Components for iOS' - packageFilter: '*.nupkg' - ${{ if not(startsWith(variables['Build.SourceBranch'], 'refs/tags/')) }}: - artifactNames: ['nuget'] - dependsOn: [ 'build' ] - ${{ if startsWith(variables['Build.SourceBranch'], 'refs/tags/') }}: - artifactNames: ['nuget-signed'] - dependsOn: [ 'signing' ] diff --git a/manifest.yaml b/manifest.yaml deleted file mode 100644 index b380a0cfc..000000000 --- a/manifest.yaml +++ /dev/null @@ -1,132 +0,0 @@ -- Name: Firebase.iOS.ABTesting - BuildScript: ./Firebase.ABTesting/build.cake - TriggerPaths: [ Firebase.ABTesting ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.AdMob - BuildScript: ./Firebase.AdMob/build.cake - TriggerPaths: [ Firebase.AdMob ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Analytics - BuildScript: ./Firebase.Analytics/build.cake - TriggerPaths: [ Firebase.Analytics ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Auth - BuildScript: ./Firebase.Auth/build.cake - TriggerPaths: [ Firebase.Auth ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.CloudFirestore - BuildScript: ./Firebase.CloudFirestore/build.cake - TriggerPaths: [ Firebase.CloudFirestore ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.CloudMessaging - BuildScript: ./Firebase.CloudMessaging/build.cake - TriggerPaths: [ Firebase.CloudMessaging ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Core - BuildScript: ./Firebase.Core/build.cake - TriggerPaths: [ Firebase.Core ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Crashlytics - BuildScript: ./Firebase.Crashlytics/build.cake - TriggerPaths: [ Firebase.Crashlytics ] - MacBuildTargets: [ samples, component ] -# - Name: Firebase.iOS.CrashReporting -# BuildScript: ./Firebase.CrashReporting/build.cake -# TriggerPaths: [ Firebase.CrashReporting ] -# MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Database - BuildScript: ./Firebase.Database/build.cake - TriggerPaths: [ Firebase.Database ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.DynamicLinks - BuildScript: ./Firebase.DynamicLinks/build.cake - TriggerPaths: [ Firebase.DynamicLinks ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.CloudFunctions - BuildScript: ./Firebase.CloudFunctions/build.cake - TriggerPaths: [ Firebase.CloudFunctions ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.InstanceID - BuildScript: ./Firebase.InstanceID/build.cake - TriggerPaths: [ Firebase.InstanceID ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Invites - BuildScript: ./Firebase.Invites/build.cake - TriggerPaths: [ Firebase.Invites ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.MLKit - BuildScript: ./Firebase.MLKit/build.cake - TriggerPaths: [ Firebase.MLKit ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.MLKit.Common - BuildScript: ./Firebase.MLKit.Common/build.cake - TriggerPaths: [ Firebase.MLKit.Common ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.MLKit.ModelInterpreter - BuildScript: ./Firebase.MLKit.ModelInterpreter/build.cake - TriggerPaths: [ Firebase.MLKit.ModelInterpreter ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.PerformanceMonitoring - BuildScript: ./Firebase.PerformanceMonitoring/build.cake - TriggerPaths: [ Firebase.PerformanceMonitoring ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.RemoteConfig - BuildScript: ./Firebase.RemoteConfig/build.cake - TriggerPaths: [ Firebase.RemoteConfig ] - MacBuildTargets: [ samples, component ] -- Name: Firebase.iOS.Storage - BuildScript: ./Firebase.Storage/build.cake - TriggerPaths: [ Firebase.Storage ] - MacBuildTargets: [ samples, component ] -# - Name: Google.iOS.Core -# BuildScript: ./Google.Core/build.cake -# TriggerPaths: [ Google.Core ] -# MacBuildTargets: [ samples, component ] -- Name: Google.iOS.SignIn - BuildScript: ./Google.SignIn/build.cake - TriggerPaths: [ Google.SignIn ] - MacBuildTargets: [ samples, component ] -- Name: Google.iOS.Analytics - BuildScript: ./Google.Analytics/build.cake - TriggerPaths: [ Google.Analytics ] - MacBuildTargets: [ samples, component ] -- Name: Google.iOS.AppIndexing - BuildScript: ./Google.AppIndexing/build.cake - TriggerPaths: [ Google.AppIndexing ] - MacBuildTargets: [ samples, component ] -# - Name: Google.iOS.AppInvite -# BuildScript: ./Google.AppInvite/build.cake -# TriggerPaths: [ Google.AppInvite ] -# MacBuildTargets: [ samples, component ] -- Name: Google.iOS.Cast - BuildScript: ./Google.Cast/build.cake - TriggerPaths: [ Google.Cast ] - MacBuildTargets: [ samples, component ] -- Name: Google.iOS.InstanceID - BuildScript: ./Google.InstanceID/build.cake - TriggerPaths: [ Google.InstanceID ] - MacBuildTargets: [ samples, component ] -# - Name: Google.iOS.GoogleCloudMessaging -# BuildScript: ./Google.GoogleCloudMessaging/build.cake -# TriggerPaths: [ Google.GoogleCloudMessaging ] -# MacBuildTargets: [ samples, component ] -- Name: Google.iOS.MobileAds - BuildScript: ./Google.MobileAds/build.cake - TriggerPaths: [ Google.MobileAds ] - MacBuildTargets: [ nuget ] -- Name: Google.iOS.Maps - BuildScript: ./Google.Maps/build.cake - TriggerPaths: [ Google.Maps ] - MacBuildTargets: [ samples, component ] -- Name: Google.iOS.Places - BuildScript: ./Google.Places/build.cake - TriggerPaths: [ Google.Places ] - MacBuildTargets: [ samples, component ] -# - Name: Google.iOS.PlayGames -# BuildScript: ./Google.PlayGames/build.cake -# TriggerPaths: [ Google.PlayGames ] -# MacBuildTargets: [ samples, component ] -- Name: Google.iOS.TagManager - BuildScript: ./Google.TagManager/build.cake - TriggerPaths: [ Google.TagManager ] - MacBuildTargets: [ samples, component ]