Скрипт Powershell для сборки CI / CD для фабрики данных Azure - PullRequest
0 голосов
/ 14 мая 2018

Я планирую построить фабрику непрерывной интеграции и развертывания для Azure Data с использованием PowerShell.Таким образом, весь процесс сборки и выпуска, который может быть выполнен с использованием VSTS, должен выполняться с помощью Powershell.Если кто-то может поделиться ссылками или скриптами PowerShell, это будет полезно.Спасибо

1 Ответ

0 голосов
/ 15 мая 2018

Если вы имеете в виду создание определения сборки / выпуска через PowerShell, вы можете сделать это через VSTS REST с PowerShell, простой код:

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f "","{personal access token}")))
$body='{
    "variables": {
        "system.debug": {
            "value": "false",
            "allowOverride": true
        }
    },
    "retentionRules": [
        {
            "branches": [
                "+refs/heads/*"
            ],
            "artifacts": [],
            "artifactTypesToDelete": [
                "FilePath",
                "SymbolStore"
            ],
            "daysToKeep": 10,
            "minimumToKeep": 1,
            "deleteBuildRecord": true,
            "deleteTestResults": true
        }
    ],
    "properties": {},
    "tags": [],
    "jobAuthorizationScope": "projectCollection",
    "jobTimeoutInMinutes": 60,
    "jobCancelTimeoutInMinutes": 5,
    "process": {
        "phases": [
            {
                "steps": [
                    {
                        "environment": {},
                        "enabled": true,
                        "continueOnError": false,
                        "alwaysRun": false,
                        "displayName": "Azure PowerShell script: FilePath",
                        "timeoutInMinutes": 0,
                        "condition": "succeeded()",
                        "task": {
                            "id": "72a1931b-effb-4d2e-8fd8-f8472a07cb62",
                            "versionSpec": "2.*",
                            "definitionType": "task"
                        },
                        "inputs": {
                            "ConnectedServiceNameSelector": "ConnectedServiceNameARM",
                            "ConnectedServiceName": "",
                            "ConnectedServiceNameARM": "aad18bbf-0333-41bf-99ea-674181d17ada",
                            "ScriptType": "FilePath",
                            "ScriptPath": "$/Scrum2015/ClassLibraryA/dbtest.ps1",
                            "Inline": "# You can write your azure powershell scripts inline here. \n# You can also pass predefined and custom variables to this script using arguments",
                            "ScriptArguments": "",
                            "TargetAzurePs": "LatestVersion",
                            "CustomTargetAzurePs": ""
                        }
                    }
                ],
                "name": "Phase 1",
                "refName": "Phase_1",
                "condition": "succeeded()",
                "target": {
                    "executionOptions": {
                        "type": 0
                    },
                    "allowScriptsAuthAccessOption": false,
                    "type": 1
                },
                "jobAuthorizationScope": "projectCollection",
                "jobCancelTimeoutInMinutes": 1
            }
        ],
        "type": 1
    },
    "repository": {
        "properties": {
            "cleanOptions": "0",
            "tfvcMapping": "{\"mappings\":[{\"serverPath\":\"$/Scrum2015/ClassLibraryA\",\"mappingType\":\"map\",\"localPath\":\"\\\\\"},{\"serverPath\":\"$/Scrum2015/ClassLibraryA/VS2010UltimTrial.iso\",\"mappingType\":\"cloak\",\"localPath\":\"\"},{\"serverPath\":\"$/Scrum2015/ClassLibraryA/tools\",\"mappingType\":\"cloak\",\"localPath\":\"\"}]}",
            "labelSources": "0",
            "labelSourcesFormat": "$(build.buildNumber)"
        },
        "id": "$/",
        "type": "TfsVersionControl",
        "name": "Scrum2015",
        "defaultBranch": "$/Scrum2015/ClassLibraryA",
        "rootFolder": "$/Scrum2015",
        "clean": "false",
        "checkoutSubmodules": false
    },
    "processParameters": {},
    "quality": "definition",
    "drafts": [],
    "queue": { 
        "id": 179
    },

    "name": "PowerShellRest2VNext",
    "path": "\\",
    "type": "build",
    "queueStatus": "enabled"
}'
$result = Invoke-RestMethod -Uri $uri -Method Post -ContentType "application/json" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Body $body

Обратите внимание, что вы можете создать пример определения сборки / выпуска, а затем получить его через VSTS REST API для получения содержимого JSON.

Блог, который может вам помочь: VSTS / TFS REST API: основы и работа со сборками и выпусками

Если вы имеете в виду пользовательскую задачу сборки / выпуска, вы можете обратиться к Добавить задачу сборки или выпуска , для powershell, изменить выполнение следующим образом:

"execution": {
    "PowerShell3": {
      "target": "Hello.ps1",
      "argumentFormat": ""
    }
}

Что касается развертывания фабрики данных Azure, вы можете обратиться к: Как программно развернуть конвейер фабрики данных Azure и его зависимости с помощью PowerShell (не нужно вызывать Login-AzureRMAccount и Select-AzureRMSubscrition, просто добавьте Azure Задача PowerShell для создания / выпуска определения).

3-е расширение: Фабрика данных Azure

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...