Microsoft Power Platform 개발에 사용 가능한 GitHub Actions

다음 섹션에서는 Microsoft Power Platform 대한 GitHub Actions 설명합니다. 섹션에서는 샘플 GitHub 워크플로도 보여 줍니다. GitHub Actions 및 다운로드 방법에 대한 자세한 내용은 Microsoft Power Platform 대한 GitHub Actions 참조하세요.

Microsoft Power Platform에서 GitHub Actions에 사용할 자격 증명 구성

많은 작업을 수행하려면 Microsoft Dataverse 환경에 연결해야 합니다. 서비스 주체 또는 사용자 자격 증명을 GitHub 리포지토리에 시크릿으로 추가한 다음 워크플로에서 사용합니다.

자격 증명을 구성한 후 작업 스크립트 내에서 서비스 주체를 호출할 수 있습니다.

GitHub 작업 스크립트 내에서 환경 변수로 다음 매개 변수를 정의합니다.

  • 애플리케이션 ID(예: WF_APPLICATION_ID:<your application id>)
  • 테넌트 ID(예: WF_TENANT_ID:<your tenant id>)

클라이언트 시크릿을 GitHub secret으로 추가합니다. 다음과 같은 매개 변수를 사용하여 워크플로 내에서 참조합니다. client secret: ${{secrets.CLIENT_SECRET_GITHUB_ACTIONS}}

도우미 작업

다음 도우미 작업을 사용할 수 있습니다.

actions-install

GitHub Actions 워크플로가 실행기의 컨텍스트에서 Power Platform CLI를 강제로 설치하고 시간 제한 오류가 발생하면 다음 예제와 같이 추가 작업()과 함께 버전 1(actions-install@v1)을 사용합니다.

중요

  • 버전 1(@v1)을 사용하면 기존 GitHub Actions가 업데이트될 수 있으며, 그 결과 현재 워크플로가 변경될 수 있습니다.
  • Power Platform에 대한 다른 GitHub Actions 전에 워크플로의 첫 번째 작업으로 Power Platform Tools 설치 태스크를 추가합니다.
jobs:
    builds:
        runs-on: windows-latest   # alternate runner OS is: ubuntu-latest

    steps:
    - name: Install Power Platform Tools
        uses: microsoft/powerplatform-actions/actions-install@v1

    - name: Export Solution
         uses: microsoft/powerplatform-actions/export-solution@v1
      with:
         environment-url: 'https://myenv.crm.dynamics.com'
         user-name: 'me@myenv.onmicrosoft.com'
         password-secret: ${{ secrets.MYPASSWORD }}
         solution-name: aSolution
         solution-output-file: 'aSolution.zip'
         working-directory: 'out'

Power Platform Actions에서 더 많은 GitHub Actions 예제를 찾을 수 있습니다.

whoAmI

서비스에 연결하고 WhoAmI [SDK/Web API] 요청을 전송하여 서비스 연결을 확인합니다. 이 작업은 처리를 시작하기 전에 연결 상태를 확인할 수 있도록 GitHub 워크플로 초기에 포함해 두면 유용할 수 있습니다.

매개변수 설명
environment-url 연결 중인 환경의 URL입니다.
user-name 연결에 사용하는 계정의 사용자 이름입니다.
password-secret user-name의 비밀번호. Settings의 Secrets에서 GitHub 암호를 정의합니다. 비밀을 정의하고 저장한 후에는 검색할 수 없습니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID

솔루션 관련 작업

이러한 작업은 솔루션에 대한 작업을 수행하며 다음을 포함합니다.

import-solution

솔루션을 대상 환경으로 가져옵니다.

매개변수 설명
environment-url (필수) 솔루션을 가져올 대상 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다.
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호
solution-file (필수) 가져올 솔루션 파일의 경로와 이름입니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID

export-solution

원본 환경에서 솔루션을 내보냅니다.

매개변수 설명
environment-url (필수) 솔루션을 내보내려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다.
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 사용자 이름에 대한 암호입니다. 비밀 아래 설정에서 GitHub 암호를 정의합니다. 비밀을 정의하고 저장한 후에는 검색할 수 없습니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID
solution-name (필수) 내보낼 솔루션의 이름입니다. 항상 솔루션의 이름을 사용하고 표시 이름은 사용하지 마십시오.
solution-output-file (필수) 원본 환경을 내보낼 solution.zip 파일의 경로 및 이름입니다.
관리형 (필수) 관리형 솔루션으로 내보내려면 true로 설정하십시오. 기본값(false)은 비관리형 솔루션으로 내보내는 것입니다.

unpack-solution

압축된 솔루션 파일을 받아 여러 XML 파일로 분해합니다. 소스 제어 시스템에서 이러한 파일을 더 쉽게 읽고 관리할 수 있습니다.

매개변수 설명
solution-file (필수) 압축해제할 solution.zip 파일의 경로 및 파일 이름입니다.
solution-folder (필수) 솔루션의 압축을 풀려는 경로 및 대상 폴더입니다.
solution-type (필수) 추출하려는 솔루션 유형입니다. 옵션은 비관리형(권장), 관리형, 둘 모두입니다.

pack-solution

소스 제어에 있는 솔루션을 다른 환경으로 가져올 수 있는 solution.zip 파일에 압축합니다.

매개변수 설명
solution-file (필수) 솔루션을 압축하여 저장할 solution.zip 파일의 경로 및 파일 이름입니다(예: out/CI/ALMLab.zip).
solution-folder (필수) 패키지할 솔루션의 경로 및 원본 폴더입니다.
solution-type (선택 사항) 포장할 용액 유형입니다. 옵션은 비관리형(권장), 관리형, 둘 모두입니다.

publish-solution

솔루션 사용자 지정을 게시합니다.

매개변수 설명
environment-url (필수) 솔루션을 게시할 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다.
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호
solution-file (필수) 가져올 솔루션 파일의 경로와 이름입니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID

clone-solution

특정 환경에 대한 솔루션을 복제합니다.

매개변수 설명
environment-url (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다.
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호
solution-file (필수) 가져올 솔루션 파일의 경로와 이름입니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID
solution-name (필수) 복제에 필요한 solution.zip 파일의 경로 및 이름입니다(예: out/CI/ALMLab.zip).
solution-version 복제할 솔루션 버전
target-folder 추출된 솔루션을 저장할 대상 폴더입니다. (예: Git repository\target-solution-folder).
Working-directory 솔루션 복제에 필요한 진행 중인 아티팩트를 위한 임시 폴더입니다.
기본값: root of the repository

check-solution

불일치를 감지하기 위해 솔루션 파일을 확인합니다.

매개변수 설명
environment-url (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다.
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID
경로 (필수) 검사할 솔루션 파일의 경로와 이름입니다.
geo 사용할 Microsoft Power Platform 검사기 서비스의 지리적 위치 기본값은 'united states'입니다.
rule-level-override 규칙 및 해당 수준의 JSON 배열을 포함하는 파일 경로입니다. 허용되는 값은 Critical, High, Low 및 Informational입니다. 예: [{"Id":"meta-remove-dup-reg","OverrideLevel":"Medium"},{"Id":"il-avoid-specialized-update-ops","OverrideLevel":"Medium"}]
checker-logs-artifact-name Microsoft Power Platform 검사기 로그가 업로드될 아티팩트 폴더의 이름입니다. 기본값은 'CheckSolutionLogs'입니다.

upgrade-solution

솔루션을 업그레이드합니다.

매개변수 설명
environment-url (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 사용자 이름
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호.
solution-file (필수) 가져올 솔루션 파일의 경로와 이름입니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 시크릿입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID
solution-name (필수) 업그레이드할 솔루션 이름
async 솔루션을 비동기적으로 업그레이드합니다.
max-async-wait-time 최대 비동기 대기 시간(분)입니다. 기본값은 60분입니다.

패키지 작업

이러한 작업은 패키지에 대해 작업을 수행합니다.

deploy-package

패키지 DLL 또는 패키지가 포함된 ZIP 파일을 배포합니다.

참고

이 작업은 Windows에서만 지원됩니다.

매개변수 설명
environment-url (필수) 솔루션을 복제하려는 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
user-name (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용중인 계정의 사용자 이름입니다.
password-secret (필수) 사용자 이름/암호 인증을 사용하는 경우 연결에 사용 중인 계정의 암호
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID
패키지 (필수) 패키지 DLL 또는 패키지가 들어 있는 ZIP 파일의 경로입니다.

포털 작업

이러한 작업은 Power Pages에서 다음 작업을 수행합니다.

upload-paportal

Power Pages에 데이터를 업로드합니다.

매개변수 설명
environment-url (필수) 솔루션을 가져올 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-id 및 client-secret으로 인증할 때의 테넌트 ID
upload-path 웹 사이트 콘텐츠가 저장된 경로(alias: -p).
deployment-profile deployment-profiles/[profile-name].deployment.yaml 파일의 프로필 변수를 통해 정의된 환경 세부 정보를 사용하여 포털 데이터를 업로드합니다.
모델 버전 업로드할 사이트 데이터가 표준() 또는 2(1)을 사용하는지 여부를 나타냅니다. 기본값은 1여야 합니다.

Power Pages에 대한 Microsoft Power Platform CLI 지원에 대해 자세히 알아보세요.

카탈로그 작업 (프리뷰)

이러한 작업은 Power Platform의 카탈로그에 대해 작업을 수행합니다.

참고

현재 Power Platform의 카탈로그 작업은 미리 보기로 제공됩니다.

설치

대상 환경에 Catalog 항목을 설치합니다.

매개변수 설명
catalog-item-id (필수) 대상 환경에 설치할 카탈로그 항목입니다.
target-url (필수) 카탈로그 항목 설치에 대한 대상 환경의 URL입니다(예: https://YourOrg.crm.dynamics.com).
설정 (필수) 설치 프레임워크를 실행하는 데 필요한 런타임 패키지 설정입니다. 문자열의 형식은 key=value|key=value이어야 합니다.
대상 버전 설치할 버전입니다. 버전을 지정하지 않으면 게시된 버전이 선택됩니다.
poll-status 요청 상태를 확인합니다.

제출

현재 Dataverse 환경(조직)에서 게시된 모든 카탈로그 항목을 나열합니다.

매개변수 설명
path (필수) 카탈로그 제출 문서의 경로입니다.
package-zip 패키지 zip 파일 경로입니다.
solution-zip 솔루션 zip 파일 경로입니다.
poll-status 요청 상태를 확인하기 위한 폴링.

상태

카탈로그 설치 또는 제출 요청 제출 상태를 가져옵니다.

매개변수 설명
tracking-id (필수) 요청 추적 ID.
유형 (필수) 요청 유형입니다. 유효한 값은 Install 및 Submit입니다.

GitHub 워크플로 작성

GitHub Actions를 사용하여 GitHub 워크플로를 작성하는 방법에 대해 자세히 알아보려면 Microsoft Power Platform용 GitHub Actions 랩을 완료하세요.

자세한 내용은 GitHub Actions 정보를 참조하세요.

참고 항목

Microsoft Power Platform용 GitHub Actions