diff --git a/.github/workflows/health_check.yml b/.github/workflows/health_check.yml index dd8f86177b81..76bf747eb337 100644 --- a/.github/workflows/health_check.yml +++ b/.github/workflows/health_check.yml @@ -1,22 +1,25 @@ name: Health Check on: + # Run the workflow test on push events push: paths: - scripts/health_check.py - .github/workflows/health_check.yml + # Run the main workflow on workflow_dispatch or schedule workflow_dispatch: schedule: # Every 5 minutes - cron: '*/5 * * * *' jobs: - health-check: + health_check: runs-on: ubuntu-latest strategy: - matrix: - environment: ['dev', 'stage', 'prod'] fail-fast: false + matrix: + environment: | + ${{fromJson(github.event_name == 'push' && '["test"]' || '["dev","stage","prod"]')}} steps: - uses: actions/checkout@v4 diff --git a/scripts/health_check.py b/scripts/health_check.py index 98bec2e0d7aa..45f127d35af7 100755 --- a/scripts/health_check.py +++ b/scripts/health_check.py @@ -13,6 +13,8 @@ ('dev', 'https://addons-dev.allizom.org'), ('stage', 'https://addons.allizom.org'), ('prod', 'https://addons.mozilla.org'), + # TODO: maybe we could use the local environmnet here + ('test', '') ], ) @@ -46,14 +48,18 @@ def _fetch(self, path: str) -> dict[str, str] | None: return data def version(self): + if self.environment.name == 'test': + return {} return self._fetch('__version__') def monitors(self): + if self.environment.name == 'test': + return { + 'up': {'state': True}, + 'down': {'state': False, 'status': 'something is wrong'} + } return self._fetch('services/monitor.json') - -# Test - def main(env: ENV_ENUM, verbose: bool = False, output: str | None = None): fetcher = Fetcher(env, verbose)