CRON 식을 사용하여 Azure DevOps에서 빌드 예약

6628 단어 devopscronazure
다양한 이벤트에서 실행되도록 Azure DevOps 파이프라인을 트리거할 수 있습니다.

파이프라인을 구축할 때 정의된 일정에 따라 실행하고 싶은 경우가 있을 수 있습니다. 여기에서 CRON 표현식이 유용합니다.

Azure DevOps 파이프라인을 예약할 수 있나요?



예! CRON 표현식을 파이프라인 파일의 트리거로 사용하여 쉽게 예약할 수 있습니다.

크론이란 무엇입니까?



CRON은 작업을 예약하는 데 사용되는 명령줄 유틸리티입니다. CRON 작업 또는 CRON 작업이라고 하는 것을 들을 수 있습니다.
CRON 구문은 처음 접할 때 때때로 혼란스러울 수 있습니다. CRON 구문 내에서 구성할 수 있는 섹션은 5개입니다. 요일, 월, 일, 시, 분을 지정할 수 있습니다.

이것은 메모리에 커밋할 필요가 없지만 구문을 읽을 수 있는 것은 유용합니다. 다음은 구문 분석 방법을 보여주는 훌륭한 다이어그램입니다.

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6)
# │ │ │ │ │                       
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>


웹사이트https://crontab.guru/를 즐겨 사용합니다. 웹 사이트에 구문을 입력하면 해당 일정이 수행할 작업을 해독하거나 동일하게 실행하려는 일정에 맞는 구문을 구축하는 데 사용할 수 있습니다.

Azure DevOps CRON 구문이란 무엇인가요?



일정에 따라 실행되는 Azure DevOps 파이프라인의 예를 보여드리겠습니다.

trigger:
# YAML file in the release branch
schedules:
- cron: "0 0 * * 1-5"
  displayName: Daily build at midnight (Monday-Friday)
  branches:
    include:
    - main


위는 매주 월요일, 화요일, 수요일, 목요일, 금요일 자정에 트리거되고 파이프라인이 구축하도록 설계된 것을 완료하는 내 파이프라인의 일부입니다.

주목해야 할 것은 다른 분기가 아닌 기본 분기에 대한 트리거가 열린다는 것입니다. 이를 통해 다양한 분기와 요구 사항을 세밀하게 제어할 수 있습니다.

It's important to note that you encapsulate the CRON schedule in double quotes within Azure DevOps. With other platforms, such as GitHub Actions you use single quotes.



전체 파이프라인은 다음과 같습니다.

# Basic pipeline that runs at midnight every day of the working week for the main branch. 

trigger:
# YAML file in the release branch
schedules:
- cron: "0 0 * * 1-5"
  displayName: Daily build at midnight (Monday-Friday)
  branches:
    include:
    - main

pool:
  vmImage: 'windows-latest'
  demands:
  - msbuild
  - visualstudio

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: DotNetCoreCLI@2
  displayName: Restore
  inputs:
    command: restore
    projects: '**/*.csproj'

- task: DotNetCoreCLI@2
  displayName: Build
  inputs:
    projects: '**/*.csproj'
    arguments: '--configuration $(BuildConfiguration)'

- task: DotNetCoreCLI@2
  displayName: Publish
  inputs:
    command: publish
    publishWebProjects: false
    projects: '$(Build.SourcesDirectory)\dotnet-core-tutorial.csproj'
    arguments: --configuration $(BuildConfiguration) --output $(build.artifactstagingdirectory)\output
    zipAfterPublish: false

좋은 웹페이지 즐겨찾기