엔지니어가 작업을 수행할 때 이를 달성하는 방법에 대해 작성해야 한다고 트위터에 누군가 게시했습니다. 다른 엔지니어가 솔루션을 찾기 위해 검색하는 시간을 절약할 수 있습니다. 이것이 바로 우리가 여기 있는 이유입니다.
이 문서에서는 Azure를 클라우드 공급자 및 GitHub 작업으로 사용하여 노드 js 프로젝트에 대한 CI/CD 파이프라인을 구성합니다.
우선
Microsoft Azure 포털에 로그인하거나 계정이 없는 경우 계정을 만드세요. (작성 당시에는 새 계정에 최대 $200 크레딧을 제공했습니다.
다음으로 Azure 앱을 검색해 보세요.
만들기 > 웹앱. 그런 다음 양식에 세부정보를 입력하세요. 런타임 스택을 Node xx LTS로 선택합니다. 까지 계속 생성합니다.
프로세스가 끝나면 Microsoft 기본 페이지가 있는 웹 앱이 있어야 합니다.
다음으로
여기에는 여러 가지 방법이 문서화되어 있지만 매우 간단하므로 서비스 주체 옵션을 사용하고 있습니다.
Azure cli를 엽니다(아래 이미지에 표시됨)
다음 명령을 실행하세요.
az ad sp create-for-rbac --name "myApp" --role contributor --scopes /subscriptions/
및 를 Azure 앱 서비스 대시보드의 올바른 세부 정보로 바꿉니다. "myApp"은 서비스 주체의 이름입니다.
명령어는 다음과 같은 출력을 생성합니다.
{
"clientId": "
"clientSecret": "
"subscriptionId": "
"tenantId": "
(...)
}
나중에 사용됩니다.
드디어 Github로
저장소에서 설정 > 비밀 및 변수 > 행위.
새 저장소 비밀 추가를 클릭하세요. json 출력을 비밀 필드에 그대로 붙여넣고 이름 필드에 AZURE_CREDENTIALS를 붙여넣습니다.
작업 탭으로 이동하여 프로젝트에 Github 작업 흐름을 추가하세요. "Azure Web App에 Node.js 배포"를 검색하고 구성을 클릭하여 계속합니다.
아래와 같이 파일을 편집하세요.
`on:
푸시:
가지: [ "개발" ]
작업 흐름_디스패치:
환경:
AZURE_WEBAPP_NAME: # 이를 애플리케이션 이름으로 설정합니다
AZURE_WEBAPP_PACKAGE_PATH: '.' # 이를 웹 앱 프로젝트의 경로로 설정하고 기본값은 저장소 루트입니다
NODE_VERSION: '' # 사용할 노드 버전으로 설정
권한:
내용:읽기
직업:
빌드 및 배포:
실행: 우분투 최신
단계:
- 이름: 'Github Action 확인'
용도: actions/checkout@v4
- uses: azure/login@v1 with: creds: ${{ secrets.AZURE_CREDENTIALS }} - name: Setup Node ${{ env.NODE_VERSION }} uses: actions/setup-node@v4 with: node-version: ${{ env.NODE_VERSION }} cache: 'npm' - name: npm install, build, and test run: | npm install - uses: azure/webapps-deploy@v3 with: app-name: ${{ env.AZURE_WEBAPP_NAME }} package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }} # Azure logout - name: logout run: | az logout`
개발 분기로 푸시하면 워크플로 파일이 트리거되고 이전에 비밀에 저장한 자격 증명을 사용하여 Azure Portal에 로그인한 후 계속해서 빌드 및 배포됩니다.
웹 앱 이름, 노드 버전을 적절하게 편집하여 교체해야 합니다.
마지막으로 첫 번째 실행을 위한 워크플로를 트리거합니다. Azure Portal의 기본 웹 페이지가 사라져야 하며 개발 분기에 푸시할 때 트리거되는 CI/CD 파이프라인에 대해 웹앱이 구성되어 있어야 합니다.
다른 엔지니어에게 도움이 되기를 바랍니다.
위 내용은 개발자 메모: Azure 및 Github Actions를 사용하여 노드 js 프로젝트에 대한 CI/CD 파이프라인 구성의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!