# sfops - Execute Every 30 mins

This workflow is designed to execute cron operations every 30 minutes. It can be triggered manually or runs on a schedule.\\

```
name: 'sfops - Execute Every 30 mins'

# Read name of sandbox
on:
  workflow_dispatch:
  schedule:
      - cron: '30 * * * *'   


jobs:
  cron-every-30-mins:
    name: 'Exec cron operations every 30 mins'
    uses:   ${{ sfops.repo_owner }}/${{ sfops.action_repository }}/.github/workflows/cron-jobs-30-mins.yml@main
    with:
      sfopsbot-app-id: ${{ vars.SFOPSBOT_APP_ID }}
      path-to-config : "config/sandbox-pool-config.json"
      metrics-provider: ${{ vars.SFOPS_METRICS_PROVIDER }}
      dashboard-repo:  ${{ vars.SFOPS_DASHBOARD_REPO }}
    secrets:
      DEVHUB_SFDX_AUTH_URL: ${{ secrets.DEVHUB_SFDX_AUTH_URL }}
      DATADOG_API_KEY: ${{ secrets.DATADOG_API_KEY }}
      DATADOG_HOST: ${{ secrets.DATADOG_HOST }}
      SFOPSBOT_APP_PRIVATE_KEY: ${{ secrets.SFOPSBOT_APP_PRIVATE_KEY }}
      NPM_TOKEN: ${{ secrets.GITHUB_TOKEN }}    

```

### Trigger

The workflow is triggered in two ways:

1. Manually via `workflow_dispatch`
2. Automatically every 30 minutes via a cron schedule

### Schedule

```yaml
schedule:
  - cron: '30 * * * *'
```

This cron expression means the job will run at the 30-minute mark of every hour.

### Jobs

The workflow calls a reusable workflow (`cron-jobs-30-mins.yml`) which contains several jobs:

#### 1. check-sandbox-status

This job checks the status of review sandboxes and provisions them if necessary.

Key steps:

* Authenticate with DevHub
* Provision sandboxes to "Available" status
* Update sandbox status in a dashboard repository

#### 2. update-scratchorg-status

This job reports the status of scratch orgs to dev central repository

#### 3. update-sandbox-frontdoor-url

This job updates the frontdoor URL for sandboxes.

#### 4. update-workitem-status

This job updates the status of work items and environment information.

Key steps:

* Report environment information
* Report work item status (likely related to Pull Requests)

#### 5. execute-jobs

This job executes any pending jobs in the repository.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flxbl.io/flxbl/sfops/project-workflows/sfops-execute-every-30-mins.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
