Azure Pipelines의 YAML 개선 사항 - 스프린트 142 업데이트
Azure DevOps의 스프린트 142 업데이트 에는 빌드에 사용자 지정 카운터 추가, 끌어오기 요청을 위해 빌드할 분기 지정, 인라인 템플릿 사용 등 YAML에 대한 몇 가지 개선 사항이 있었습니다. 또한 모든 사용자에 대한 새 탐색을 켜고 어두운 테마를 도입했으며 Azure Boards 연결 및 첨부 파일 환경을 개선했습니다.
자세한 내용은 아래 기능 목록을 확인하세요.
기능
일반:
Azure Boards:
Azure Repos:
Azure Pipelines:
- 빌드에 사용자 지정 빌드 카운터 추가
- YAML을 사용하여 끌어오기 요청에 대해 빌드할 분기 지정
- YAML 템플릿 식 인라인 사용
- 파이프라인 초기화 로그를 사용하여 문제 해결 개선
- YAML 파이프라인에 대한 기본 보존
- Linux/ARM 및 Windows 32비트 플랫폼에서 빌드
- 변수 그룹 복제
- 연결된 모든 원본에 대한 커밋 및 작업 항목 참조
- Azure App Service 배포에서 지원되는 패키지에서 실행
- App Server 배포 작업을 사용하여 Linux 컨테이너 배포
Azure Test Plans:
Azure Artifacts:
Wiki:
관리:
일반
모든 사용자에 대해 새 탐색이 설정됩니다.
모든 사용자에 대해 새로운 탐색을 설정했습니다! 이것은 우리의 새로운 제품 디자인을 롤아웃의 주요 이정표입니다. 이 릴리스를 통해 모든 사용자를 새 탐색 모델로 이동하는 동안 사용자는 2019년 1월 16일까지 이전 탐색을 옵트아웃하고 사용할 수 있습니다. 모든 페이지의 오른쪽 위에 있는 아바타 아래 메뉴에서 미리 보기 기능을 선택하여 옵트아웃할 수 있습니다.
자세한 내용은 탐색 업데이트 블로그 게시물을 참조하세요.
어두운 테마
우리의 오랜 기능 요청 중 하나는 어두운 테마를 제공하는 것이었습니다. 이제 새 탐색의 일부로 사용할 수 있음을 알려드리겠습니다. 모든 페이지의 오른쪽 위에 있는 아바타 아래 메뉴에서 테마 를 선택하여 어두운 테마를 켤 수 있습니다.
Azure Boards
더 풍부한 작업 항목 첨부 파일을 사용하여 참조 자료 구성
작업 항목에 파일을 첨부하면 사용자와 팀이 참조 자료를 중앙 집중화하여 필요할 때 항상 닫을 수 있습니다. 이제 작업 항목 양식의 아무 곳에나 파일을 끌어서 놓기만 하면 새 첨부 파일을 더 쉽게 추가할 수 있습니다. 첨부 파일을 목록으로 계속 보거나 그리드 보기로 전환하여 미리 보기 미리 보기를 표시할 수 있습니다. 파일을 두 번 클릭하여 미리 보기를 열고 주기를 통해 필요한 정보를 빠르게 찾습니다.
조직 전체에서 작업 항목을 연결하여 종속성 관리
관련 작업 또는 종속 작업을 연결하면 추적 중인 작업에 더 광범위한 컨텍스트를 제공하고 다른 팀과의 종속성을 관리하는 데 도움이 됩니다. 원격 작업에 대한 링크를 사용하면 이제 회사 내 조직에서 작업을 추적할 수 있습니다. 기존 작업 항목의 URL을 복사하고, 다른 작업 항목으로 이동한 다음, 사용 원본, 생성 대상 및 원격 관련의 세 가지 새로운 링크 유형 중 하나를 사용하여 링크를 만듭니다. Azure Boards 추적 가능성에 대한 자세한 내용은 작업 항목 연결 설명서를 참조하세요.
참고
권한은 동일한 Azure AD 테넌트에서 모두 지원되어야 하는 두 Azure DevOps 조직에서 적용됩니다.
여러 종속성을 관리하기 시작하면 쿼리의 새 원격 링크 수 필드를 사용하여 프로젝트에 원격 종속성이 있는 작업 항목을 나열하거나 종속성 추적기 확장을 설치하는 것이 좋습니다. 크기 조정 요구 사항을 충족하기 위해 Microsoft의 Windows 그룹에서 만든 이 확장은 원격 링크를 기반으로 하여 종속성의 풍부한 계층 구조 및 그래픽 표현을 표시합니다.
검색에서 작업 항목 열기
이전에는 작업 항목 미리 보기 창이 꺼져 있는 경우 검색 결과 페이지에서 작업 항목을 열 수 없었습니다. 이렇게 하면 검색 결과를 파헤치기가 어려워집니다. 이제 작업 항목 제목을 클릭하여 모달 창에서 작업 항목을 열 수 있습니다. 이 기능은 UserVoice에서 우선 순위가 지정되었습니다.
Azure Repos
확장 작성자는 현재 리포지토리에 대한 컨텍스트를 쿼리할 수 있습니다.
버전 제어 확장 작성자의 과제 중 하나는 이름, ID 및 URL과 같이 사용자에게 표시되는 리포지토리의 컨텍스트를 가져오는 것입니다. 이를 돕기 위해 VersionControlRepositoryService를 확장 액세스 가능한 서비스로 추가했습니다. 이를 사용하여 확장 작성자가 웹 UI 내에서 현재 Git 리포지토리 컨텍스트에 대한 정보를 쿼리할 수 있습니다. 현재 getCurrentGitRepository() 메서드가 하나 있습니다.
- Git 리포지토리를 선택하면 리포지토리(이름, ID 및 URL)에 대한 기본 데이터와 함께 GitRepository 개체가 반환됩니다.
- TFVC 리포지토리를 선택하거나 Azure Repos 페이지 외부에서 서비스에 액세스하는 경우 null이 반환됩니다.
다음은 이 서비스를 사용하는 샘플 확장 입니다.
Azure Pipelines
빌드에 사용자 지정 빌드 카운터 추가
빌드 카운터는 빌드의 번호를 고유하게 지정하고 레이블을 지정하는 방법을 제공합니다. 이전에는 $(rev:r) 특수 변수를 사용하여 이 작업을 수행할 수 있었습니다. 이제 빌드를 실행할 때마다 자동으로 증가되는 고유한 카운터 변수를 빌드 정의에 정의할 수 있습니다. 정의의 변수 탭에서 이 작업을 수행합니다. 이 새로운 기능은 다음과 같은 방법으로 더 많은 기능을 제공합니다.
- 사용자 지정 카운터를 정의하고 해당 시드 값을 설정할 수 있습니다. instance 카운터는 100에서 시작할 수 있습니다. $(rev:r)은 항상 0에서 시작됩니다.
- 사용자 고유의 사용자 지정 논리를 사용하여 카운터를 다시 설정할 수 있습니다. $(rev:r)은 빌드 번호 생성에 연결되며 빌드 번호에 새 접두사가 있을 때마다 자동으로 다시 설정됩니다.
- 정의당 여러 카운터를 정의할 수 있습니다.
- 빌드 외부의 카운터 값을 쿼리할 수 있습니다. instance 경우 카운터를 사용하여 마지막 재설정 이후 실행된 빌드 수를 계산할 수 있습니다.
빌드 카운터에 대한 자세한 내용은 사용자 정의 변수 에 대한 설명서를 참조하세요.
YAML을 사용하여 끌어오기 요청에 대해 빌드할 분기 지정
YAML 파이프라인은 PR(끌어오기 요청)에 대해 빌드할 분기를 지정할 수 있습니다. 포함 및 제외할 분기를 선택할 수 있습니다. 이 기능은 이전에 웹 UI에서 사용할 수 있었습니다. YAML 파일로 이동하면 구성-코드 워크플로의 일부가 됩니다.
PR 트리거를 사용하는 예제는 다음과 같습니다.
pr:
branches:
include:
- features/*
exclude:
- features/experimental/*
paths:
include:
- **/*.cs
steps:
- script: echo My PR build!
YAML 템플릿 식 인라인 사용
YAML 템플릿은 파이프라인의 일부를 재사용하는 강력한 방법입니다. 템플릿 식을 사용하면 공통 코드를 팩터링하는 것 외에도 값을 변경하고 YAML이 포함된 항목을 제어할 수 있습니다. 지금까지 템플릿 식은 YAML 식의 전체 값을 차지해야 했습니다. 이 예제는 식이 솔루션 속성의 전체 값이므로 작동합니다.
- task: msbuild@1
inputs:
solution: ${{ parameters.solution }}
이제 아래 예제와 같이 제한을 완화하고 인라인 템플릿을 허용했습니다.
- script: echo The solution file is ${{ parameters.solution }}
파이프라인 초기화 로그를 사용하여 문제 해결 개선
파이프라인이 실행될 때 Azure Pipelines는 파이프라인 정의가 올바른지 확인하고, 예약할 작업을 결정하고, 에이전트에게 작업을 실행하도록 요청하는 등의 작업을 해야 합니다. 지금까지 이 프로세스는 완전히 불투명했기 때문에 문제가 발생하면 고객이 문제를 해결하는 것이 거의 불가능했습니다. 파이프라인 초기화 로그라는 새로운 종류의 로그를 도입하여 이러한 세부 정보를 표시합니다. 완료된 빌드에서 모든 로그 다운로드 옵션을 선택하여 파이프라인 초기화 로그에 액세스할 수 있습니다.
YAML 파이프라인에 대한 기본 보존
사용자가 YAML 파이프라인에 대한 보존 정책을 구성하는 방법을 연구 중입니다. 이 새로운 기능을 사용할 수 있을 때까지 많은 사용자가 이전 10일 기본 보존 기간보다 오랫동안 빌드를 유지하려고 하므로 모든 YAML 빌드의 기본 보존 기간을 30일로 늘렸습니다. 새 모델이 준비될 때까지 YAML 파이프라인에 대한 편집기에서 보존 탭을 제거했습니다.
Linux/ARM 및 Windows 32비트 플랫폼 빌드
Azure Pipelines 오픈 소스 플랫폼 간 에이전트는 항상 64비트(x64) Windows, macOS 및 Linux에서 지원됩니다. 이 스프린트에서는 Linux/ARM 및 Windows/32비트라는 두 가지 새로운 지원 플랫폼을 소개합니다. 이러한 새로운 플랫폼은 Linux/ARM 머신인 Raspberry Pi와 같은 덜 일반적이지만 덜 중요한 플랫폼을 기반으로 빌드할 수 있는 기능을 제공합니다.
변수 그룹 복제
변수 그룹 복제에 대한 지원이 추가되었습니다. 변수 그룹을 복제하고 일부 변수만 업데이트하려는 경우 변수를 하나씩 추가하는 지루한 프로세스를 거치지 않아도 됩니다. 이제 변수 그룹의 복사본을 빠르게 만들고, 값을 적절하게 업데이트하고, 새 변수 그룹으로 저장할 수 있습니다.
참고
비밀 변수 값은 변수 그룹을 복제할 때 복사되지 않습니다. 암호화된 변수를 업데이트한 다음 복제된 변수 그룹을 저장해야 합니다.
연결된 모든 원본에 대한 커밋 및 작업 항목 참조
추적성 향상을 위한 노력을 계속하면서 이제 고객이 파이프라인에 연결된 모든 아티팩트에서 커밋 및 작업 항목 세부 정보를 볼 수 있음을 알려드립니다. 기본적으로 커밋 및 작업 항목은 동일한 단계에 대한 마지막 배포와 비교됩니다. 그러나 필요한 경우 다른 이전 배포와 비교할 수 있습니다.
Azure App Service 배포에서 지원되는 패키지에서 실행
Azure App Service 배포 작업(4.*) 버전은 이제 RunFromPackage(이전에 RunFromZip이라고 함)를 지원합니다.
App Service msdeploy(WebDeploy), git, ARM 등과 같은 파일을 배포하는 다양한 기술을 지원합니다. 그러나 이러한 모든 기술에는 제한이 있습니다. 파일은 wwwroot 폴더(특히 d:\home\site\wwwroot) 아래에 배포되고 런타임은 해당 위치에서 파일을 실행합니다.
패키지에서 실행을 사용하면 개별 파일을 wwwroot에 복사하는 배포 단계가 더 이상 없습니다. 대신 zip 파일을 가리키면 zip이 wwwroot에 읽기 전용 파일 시스템으로 탑재됩니다. 여기에는 여러 가지 이점이 있습니다.
- 파일 복사 잠금 문제의 위험을 줄여줍니다.
- (다시 시작으로) 프로덕션 앱에 배포될 수 있습니다.
- 앱에서 실행되는 파일을 확인할 수 있습니다.
- Azure App Service 배포의 성능을 향상시킵니다.
- 특히 대규모 npm 패키지 트리가 있는 JavaScript 함수의 경우 콜드 부팅 시간을 줄일 수 있습니다.
App Server 배포 작업을 사용하여 Linux 컨테이너 배포
4.* 버전의 Azure App Service 배포 작업은 이제 Linux에서 Azure Functions 사용자 지정 컨테이너 배포를 지원합니다.
Azure Functions Linux 호스팅 모델은 앱 특정 종속성을 패키징하고 활용하는 측면에서 더 큰 유연성을 제공하는 Docker 컨테이너를 기반으로 합니다. Linux의 함수는 다음과 같은 2가지 모드로 호스트할 수 있습니다.
- 기본 제공 컨테이너 이미지: 함수 앱 코드를 가져오고 Azure는 컨테이너(기본 제공 이미지 모드)를 제공하고 관리하므로 특정 Docker 관련 지식이 필요하지 않습니다. 이는 기존 버전의 App Service 배포 작업에서 지원됩니다.
- 사용자 지정 컨테이너 이미지: Linux에서 Azure Functions 사용자 지정 컨테이너 이미지 배포를 지원하도록 App Service 배포 작업을 개선했습니다. 함수에 특정 언어 버전이 필요하거나 기본 제공 이미지 내에 제공되지 않은 특정 종속성 또는 구성이 필요한 경우 Azure Pipelines를 사용하여 사용자 지정 이미지를 빌드하고 Linux의 Azure Function에 배포할 수 있습니다.
Azure Test Plans
데스크톱 애플리케이션에 대한 수동 테스트를 실행하는 Azure Test Runner 클라이언트
이제 ATR(Azure Test Runner) 클라이언트를 사용하여 데스크톱 애플리케이션에 대한 수동 테스트를 실행할 수 있습니다. 이렇게 하면 Microsoft 테스트 관리자에서 Azure Test Plans 이동하는 데 도움이 됩니다. 여기에서 지침을 참조하세요. ATR 클라이언트를 사용하여 수동 테스트를 실행하고 각 테스트 단계에 대한 테스트 결과를 기록할 수 있습니다. 스크린샷, 이미지 작업 로그 및 오디오 비디오 녹화와 같은 데이터 수집 기능도 있습니다. 테스트할 때 문제가 발견되면 테스트 실행기를 사용하여 버그에 자동으로 포함된 테스트 단계, 스크린샷 및 주석으로 버그를 만듭니다.
ATR에는 실행기의 일회성 다운로드 및 설치가 필요합니다. 아래와 같이 데스크톱 애플리케이션에 대해 실행을 선택합니다.
Azure Artifacts
파이프라인 아티팩트 공개 미리 보기
Azure Pipelines와 함께 사용하도록 설계된 확장성이 뛰어난 새로운 아티팩트 형식인 파이프라인 아티팩트 공개 미리 보기를 릴리스합니다. 파이프라인 아티팩트 는 최근에 발표된 유니버설 패키지 기능에서 사용하는 것과 동일한 기술을 기반으로 하며 대규모 엔터프라이즈 클래스 빌드에 대한 빌드 출력을 저장하는 데 걸리는 시간을 크게 줄일 수 있습니다.
Wiki
참가 권한을 사용하여 코드를 wiki로 게시
이전에는 git 리포지토리에 대한 리포지토리 만들기 권한이 있는 사용자만 코드를 wiki로 게시할 수 있었습니다. 이로 인해 리포지토리 관리자 또는 작성자는 git 리포지토리에 호스트된 Markdown 파일을 wiki로 게시하라는 요청에 병목 현상이 발생했습니다. 이제 코드 리포지토리에 대한 기여 권한이 있는 경우 코드를 wiki로 게시할 수 있습니다.
관리
CAP 적용 PAT
2017년 2월에 Azure Active Directory CAP(조건부 액세스 정책)에 대한 지원을 발표했지만 개인용 액세스 토큰과 같은 대체 인증 메커니즘이 CAP를 적용하지 않을 것이라는 제한 사항이 있었습니다. 이 격차를 메우고 있으며 Azure DevOps는 이제 PAT, SSH 키, 대체 인증 자격 증명 및 OAuth를 사용할 때 CAP IP 펜싱 정책을 적용할 것이라고 발표하게 되어 기쁩니다. 관리자는 이 기능을 활용하기 위해 아무 것도 할 필요가 없습니다. 모든 기존 정책에 자동으로 적용됩니다.
다음 단계
참고
이러한 기능은 향후 2~3주 동안 출시될 예정입니다.
아래의 새로운 기능에 대해 읽고 Azure DevOps로 이동하여 직접 사용해 보세요.
피드백을 제공하는 방법
이러한 기능에 대해 어떻게 생각하는지 듣고 싶습니다. 피드백 메뉴를 사용하여 문제를 보고하거나 제안을 제공합니다.
Stack Overflow에서 커뮤니티에서 조언과 질문에 답변할 수도 있습니다.
감사합니다,
아론 비요크