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

Microsoft Power Platform용 GitHub Actions는 다음 섹션에서 설명합니다. 또한 샘플 GitHub 워크플로도 표시됩니다. GitHub 작업 및 다운로드 방법에 대한 자세한 내용은 Microsoft Power Platform 용 GitHub Actions으로 이동하십시오.

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

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

  • GitHub에서 암호를 설정하는 방법에 대한 자세한 내용은 암호화된 암호를 참조하세요.

  • Microsoft Power Platform의 서비스 주체 인증을 설정하는 방법에 대한 자세한 내용은 DevOps Build tools를 참조하세요.

구성되면 작업 스크립트 내에서 서비스 주체를 호출할 수 있습니다.

GitHub Action Script 내에서 환경 변수로 정의할 매개 변수:

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

클라이언트 암호는 GitHub 암호로 추가 및 저장해야 하며 client secret: ${{secrets.CLIENT_SECRET_GITHUB_ACTIONS}} 등의 매개 변수를 사용하여 워크플로 내에서 참조됩니다.

도우미 작업

사용 가능한 도우미 작업은 아래에 설명되어 있습니다.

actions-install

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

중요

  • 버전 1(@v1)을 사용하면 기존 GitHub Actions가 업데이트되어 현재 워크플로가 업데이트될 수 있습니다.
  • 다른 Power Platform용 GitHub Action에 앞서 워크플로의 첫 번째 작업으로 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 작업에서 GitHub Actions의 추가 샘플을 찾을 수 있습니다.

whoAmI

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

매개 변수 설명
environment-url 연결중인 환경의 URL입니다.
user-name 연결에 사용하는 계정의 사용자 이름입니다.
password-secret 사용자 이름에 대한 암호입니다. GitHub 암호는 비밀 아래 설정에 정의됩니다. 암호를 정의하고 저장한 후에는 검색할 수 없습니다.
app-id 인증에 사용할 애플리케이션 ID. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
client-secret GitHub 파이프라인을 인증하는 데 사용되는 클라이언트 암호입니다. 서비스 주체 자격 증명으로 인증하는 경우 이 매개 변수는 필수입니다.
tenant-id app-idclient-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-idclient-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-idclient-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-idclient-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-idclient-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-idclient-secret으로 인증 시 테넌트 ID.
path (필수) 검사할 솔루션 파일의 경로와 이름입니다.
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-idclient-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-idclient-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-idclient-secret으로 인증 시 테넌트 ID.
upload-path 웹 사이트 콘텐츠가 저장된 경로(alias: -p).
deployment-profile deployment-profiles/[profile-name].deployment.yaml 파일의 프로필 변수를 통해 정의된 환경 세부 정보로 포털 데이터 업로드.

카탈로그 작업(프리뷰)

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

노트

현재 Power Platform용 카탈로그 작업은 프리뷰 릴리스입니다.

설치

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

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

제출

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

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

상태

Catalog 설치/제출 요청의 상태를 가져옵니다.

매개 변수 설명
tracking-id (필수) 요청 추적 ID입니다.
type (필수) 요청 유형(값: 설치, 제출)

GitHub 워크플로 작성

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

추가 정보: GitHub Actions 정보

참고 항목

Microsoft Power Platform용 GitHub Actions