Azure DevOps run pipeline every 3 weeks - cron

I need to run the azure pipeline every 3 weeks. Have any idea how to implement that?
It seems that there is only a way to run it every 3rd week every month which is not my requirement.

Related

How to Specifically Schedule Pipelines with Azure DevOps

How to schedule a one time run, non-repeating pipeline in AzurDevOps. I want to create this pipeline for our UAT environment, but I don't want to run it manually, so I was thinking is there a way I can put multiple specific dates to run the pipeline?
In short, we can't schedule a non-repeating pipeline in DevOps because it defines a schedule using cron syntax.
Each Azure Pipelines scheduled trigger cron expression is a space-delimited expression with five entries(Minutes, Hours, Days, Months, Days of week).
If you need to run pipeline at some specific days, as a workaround, please schedule it on your end and call the Rest API to run your pipeline.
There are the detailed steps: https://blog.geralexgr.com/cloud/trigger-azure-devops-build-pipelines-using-rest-api.

Scheduling a long running task in Azure

I am very new in Azure. I have got a requirement to extract all ADO Workitems for all projects under the domain. I did it using WIQL and personal access token in C#. But the extraction takes around 1 hr to fetch everything for the last few years. Thats fine..
But the trouble is I have no idea how to make it schedule to run early morning every day (Outside business hours). Earlier we have got a dedicated server and thus I made the app a console app and used Task scheduler to run that every morning. But in Azure, please suggest a best and easy solution.
Developed in .NET Core 3.0
Azure webjobs will solve this problem you can enable the trigger to run automatically. Follow below article for step by step:
Micorsoft Document Reference
Using CRON jobs you step the schedule your task early morning
For this requirement, you can create a azure timer trigger function with cron expression which you want. Do your task in function code, the function will be executed according to the cron expression.
When you create the function app, please choose app service plan but not consumption plan because function in consumption plan can just run maximum 10 minutes and you mentioned your task will take about 1 hour. So choose app service plan and set the value of property functionTimeout as -1 in the host.json of your function.
By the way, you'd better also enable "Always on" of your function app because you need the function long running.

Azure YAML Deployments are very slow

I am using azure YAML pipelines to deploy my .Net application. Generally, a deployment uses to complete in 30 min for one server.
But, for the past three days, it's taking almost 90 mins for deployment.
My org network is good and in the Azure status check pipelines are in advisory mode with below message "expect start time delays up to 30 minutes for macOS hosted pipelines during peak hours"
Is there any recent update from Microsoft related to YAML pipeline performance?
You could check this page: Azure DevOps Status, if Azure DevOps has event issue, we could check latest news in the Status page.
And I found this event issue: Advisory: expect start time delays up to 30 minutes for macOS hosted pipelines during peak hours
The latest news and workaround is: Customers will continue to see daily queueing during peak hours for macOS pools on Azure Pipelines due to a capacity shortage. We’re adding additional capacity over the next 3 months. Until the shortage is resolved, customers should expect queueing during peak hours.
As a workaround, customers can add self-hosted macOS agents to add new capacity for running their Pipelines: https://learn.microsoft.com/en-us/azure/devops/pipelines/agents/v2-osx?view=azure-devops

Azure data factory end time trigger

I have one scenario let say I have one ADF instance name XYZ contains one pipeline which is schedule trigger starts at 12:00 AM in night. Trigger some time ends in 1 hours and sometime it takes more than 2 hours because of data load.
I have one more ADF instance ABC in that also one pipeline I have, now my requirement is that I have to schedule the ABC instance pipeline when xyz instance trigger is completed.
Kindly help on this requirement. Both ADF have different instance & also trigger end time may vary based on load.
The simplest way is using Logic app. In Logic app designer, we can create two pipeline run steps to trigger the two pipelines in different Data Factory running.
Create a Recurrence trigger to run this logic app in a loop.
In the Azure Data Factory operations:
select Create a pipeline run Action.
The summary is here:
So we can trigger the pipeline run of the ADF instance name XYZ, and when it is completed, it will trigger the pipeline run of the ADF instance ABC.

Azure Automation Complex Schedule

Is there a way we can specify a Complex Schedule for an Azure Automation Runbook?
Currently we can only configure if the Runbook needs to run Hourly,Daily,Weekly / Monthly. I want to set up something like "Run from Tuesday to Saturday, Daily at 1 PM".
Only way I can think of right now is to code it inside the RunBook.
Please let me know if there's any other way.
Thanks
Automation offers weekly and monthly schedules in the new Azure portal. This service announcement talks a bit about how you can use weekly/monthly schedules to do what you are looking for. You can also use the New-AzureRMAutomationSchedule cmdlet to create weekly schedules and specify the days (use the ByWeekly parameter set).
You have to write custom powershell script within your runbook and schedule your runbook to run every hour or probably everyday at 1PM.
The custom powershell script will have code which checks if a day is NOT Sunday, Monday and Saturday!

Resources