Monitoring #1980
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Monitoring | |
on: | |
schedule: | |
- cron: "0 0 * * *" | |
push: | |
branches: | |
- main | |
paths: | |
- "monitoring/**" | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
environment: | |
description: "Environment for workflow execution" | |
required: true | |
default: "local" | |
type: choice | |
options: | |
- local # Just a bare Docker build without push | |
- sepolia # Pushes Docker image to keep-test cluster | |
- mainnet # Pushes Docker image to keep-prd cluster | |
jobs: | |
monitoring-detect-changes: | |
runs-on: ubuntu-latest | |
outputs: | |
path-filter: ${{ steps.filter.outputs.path-filter }} | |
steps: | |
- uses: actions/checkout@v3 | |
if: github.event_name == 'pull_request' | |
- uses: dorny/paths-filter@v2 | |
if: github.event_name == 'pull_request' | |
id: filter | |
with: | |
filters: | | |
path-filter: | |
- './monitoring/**' | |
monitoring-build: | |
needs: monitoring-detect-changes | |
if: | | |
github.event_name != 'pull_request' | |
|| needs.monitoring-detect-changes.outputs.path-filter == 'true' | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./monitoring | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
cache: "yarn" | |
cache-dependency-path: monitoring/yarn.lock | |
- name: Configure git to don't use unauthenticated protocol | |
run: git config --global url."https://".insteadOf git:// | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Build | |
run: yarn build | |
monitoring-docker: | |
needs: [monitoring-detect-changes, monitoring-build] | |
if: github.event_name == 'workflow_dispatch' | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./monitoring | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Load environment variables | |
if: ${{ github.event.inputs.environment != 'local' }} | |
uses: keep-network/ci/actions/load-env-variables@v2 | |
with: | |
environment: ${{ github.event.inputs.environment }} | |
- uses: docker/setup-buildx-action@v2 | |
- name: Cache Docker layers | |
uses: actions/cache@v2 | |
with: | |
path: /tmp/.buildx-cache | |
key: ${{ runner.os }}-buildx-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-buildx- | |
- name: Login to Docker registry | |
if: ${{ github.event.inputs.environment != 'local' }} | |
uses: docker/login-action@v1 | |
env: | |
CLUSTER_MAPPING: '{"sepolia": "KEEP_TEST", "mainnet": "KEEP_PRD"}' | |
with: | |
registry: ${{ env.GCR_REGISTRY_URL }} | |
username: _json_key | |
password: ${{ secrets[format('{0}_GCR_JSON_KEY', fromJson(env.CLUSTER_MAPPING)[github.event.inputs.environment])] }} | |
- name: Build Docker image | |
uses: docker/build-push-action@v3 | |
with: | |
cache-from: type=local,src=/tmp/.buildx-cache | |
cache-to: type=local,dest=/tmp/.buildx-cache-new | |
context: ./monitoring | |
push: ${{ github.event.inputs.environment != 'local' }} | |
tags: | | |
${{ env.GCR_REGISTRY_URL || 'local' }}/${{ env.GOOGLE_PROJECT_ID || 'local' }}/tbtc-v2-monitoring | |
# Temporary workaround - move cache instead of copying. See: | |
# - https://github.com/docker/build-push-action/issues/252 | |
# - https://github.com/moby/buildkit/issues/1896 | |
- name: Move cache | |
run: | | |
rm -rf /tmp/.buildx-cache | |
mv /tmp/.buildx-cache-new /tmp/.buildx-cache | |
monitoring-format: | |
needs: monitoring-detect-changes | |
if: | | |
github.event_name == 'push' | |
|| needs.monitoring-detect-changes.outputs.path-filter == 'true' | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: ./monitoring | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: "18.x" | |
cache: "yarn" | |
cache-dependency-path: monitoring/yarn.lock | |
- name: Configure git to don't use unauthenticated protocol | |
run: git config --global url."https://".insteadOf git:// | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile | |
- name: Check formatting | |
run: yarn format |