cagov / Cron

Recurring operations running on FAAS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Functionality

CovidTranslationPrApproval

Scans the Covid19 repo for translation PRs and merges them.

Merging Criteria

  1. Targeting the Master branch.
  2. Has the Translated Content label.
  3. PR is NOT draft.
  4. PR is open.
  5. PR is mergeable.
  6. All checks have passed.
  7. All changed files are in the pages/translated-posts path.
  8. All updates are free of non-printable characters, with some exceptions for Arabic control.

PR branches are deleted on merge.

AutoApprover

Scans the Covid Static Data repo for automation PRs and merges them.

Rollup Phase

  • Combines PRs that are labeled for rollup.
  • Any PRs labeled Add to Rollup will be combined into a PR labeled Rollup.
  • All labels will be copied from the original PR to the rollup PR.
  • The original PR will be closed and the branch deleted.
  • The Rollup PR will be re-used as long as it is open.

ASAP Label Phase

  • Any PR with a Publish at xxx label that references a time that has passed, but not more than 15 minutes, will be labeled Publish ASAP.

Merge Phase

  • Any PR labeled Publish ASAP will be merged
    • Except if it is NOT mergeable.
    • Except if it is labeled Do Not Publish.
  • Any PR that could not be merged because of exceptions will be reported as skipped.
  • A report of merges and skipped PRs will be sent to Slack.

Development

To develop in VSCode install azure functions core tools

This will allow you to run commands like func new which will take you through a command line wizard to scaffold a new function.

Debugging

A good way to execute a single function locally is to launch it from the debugger in VSCode

The functions available to launch this way are setup in the .vscode/launch.json file. When dealing with timer trigger functions you can point directly at the function index.js file so it won't try to help debug your cron expression but will run the function itself.

You can insert breakpoints and run specific functions locally this way.

If you aren't using the debugger and are starting the entire project locally you are running the risk of some timer trigger function executing based on your local system clock. This project contains many functions. If it is started locally outside of debug mode all of them will activate and begin listening for triggers.

About

Recurring operations running on FAAS


Languages

Language:JavaScript 99.8%Language:HTML 0.2%