PHP 배포 도구 Deployer에서 분기 선택 구현

6748 단어 Deployer배포PHP
PHP로 작성된 Deployer라는 배포 도구에 대한 이야기입니다.
👉 htps : //에서 pぉ이ぇr. rg/

Deployer의 특징에는 레시피라는 단위로 배포시의 기능을 PHP로 확장할 수 있습니다(Slack에 게시 등).

이 기사에서는 실제로 Deployer를 사용하여 배포할 때 추가한 기능을 소개합니다.

배포할 분기를 사용자에게 선택하도록 허용



일반적으로 Deployer에서 배포하는 분기는 고정 또는 옵션이므로 사용자가 배포 할 때 CLI에서 배포 할 분기를 대화식으로 선택할 수 있습니다.

set_brancy_by_selection.php
<?php
use function Deployer\{askConfirmation, askChoice, get, set, writeln, input};

// ブランチをユーザー選択式に
set('branch', function () {
    // --branch=<branch> でオプション指定されてるときはそれを使用できる
    if ($branch = input()->getOption('branch')) {
        return $branch;
    }

    $repository = get('repository');
    exec("git ls-remote -h {$repository}", $outputLines);
    $branches = [];
    foreach ($outputLines as $line) {
        if (preg_match('#refs/heads/(.*)$#', $line, $matches)) {
            $branches[] = $matches[1];
        }
    }

    $branch = askChoice("Choose a branch to deploy:", $branches);
    writeln("> Branch chosen: {$branch}");
    if (!askConfirmation("Are you sure to work with '{$branch}' ?")) {
        exit();
    }

    return $branch;
});

이 코드를 사용하면 분기가 필요할 때 지점을 선택할 수 있습니다.



명령 행 인수로 전달하면 그대로 사용됩니다.
./dep deploy <stage> --branch=master



Deployer 명령



Deployer recipe 에서 사용할 수 있는 CLI 에서의 사용자 입출력 주위의 명령의 소개입니다.

askChoice


function askChoice($message, array $availableChoices, $default = null, $multiselect = false)
$availableChocies 로 지정한 array 를 바탕으로 선택지를 내주는 느낌입니다.



askConfirmation


function askConfirmation($message, $default = null)
y / n 에서 두 가지 확인을 내줍니다.



writeln


function writeln($message, $options = 0)

메시지를 출력합니다.

그 외에도 원격으로 명령 실행과 같은 필요한 기능이 있습니다. htps : //에서 pぉ이ぇr. 오 rg/도 cs/아피. HTML

그리고는 PHP의 코드를 그대로 사용할 수 있으므로, 익숙하다면 특히 제작 없이 사용할 수 있는 감자입니다.

좋은 웹페이지 즐겨찾기