Skip to content

chore: add a check for dashboard tested #222

chore: add a check for dashboard tested

chore: add a check for dashboard tested #222

Workflow file for this run

name: 'verify pr'
on:
pull_request:
types: ['opened', 'labeled', 'reopened', 'synchronize']
env:
GIT_AUTHOR_NAME: '@dhis2-bot'
GIT_AUTHOR_EMAIL: '[email protected]'
GIT_COMMITTER_NAME: '@dhis2-bot'
GIT_COMMITTER_EMAIL: '[email protected]'
GH_TOKEN: ${{secrets.DHIS2_BOT_GITHUB_TOKEN}}
CI: true
jobs:
setup-matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.specs }}
steps:
- uses: actions/checkout@v4
- name: Generate Test matrix
id: set-matrix
run: echo "::set-output name=specs::$(node cypress/support/generateTestMatrix.js)"
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install
run: yarn install --frozen-lockfile
- name: Build
run: yarn d2-app-scripts build
- uses: actions/upload-artifact@v4
with:
name: app-build
path: |
**/build
!**/node_modules
retention-days: 1
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 18.x
- name: Install
run: yarn install --frozen-lockfile
- name: Generate translations
run: yarn d2-app-scripts i18n generate
- name: Lint
run: yarn d2-style check
# test:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - uses: actions/setup-node@v4
# with:
# node-version: 18.x
# - name: Install
# run: yarn install --frozen-lockfile
# - name: Generate translations
# run: yarn d2-app-scripts i18n generate
# - name: Test
# run: yarn d2-app-scripts test
# env:
# REPORTPORTAL_API_KEY: ${{ secrets.REPORTPORTAL_API_KEY }}
# REPORTPORTAL_ENDPOINT: ${{ vars.REPORTPORTAL_ENDPOINT }}
# REPORTPORTAL_PROJECT: ${{ vars.REPORTPORTAL_PROJECT }}
# CI_BUILD_ID: ${{ github.sha }}-${{ github.workflow }}-${{ github.event_name }}
# BRANCH_NAME: ${{ github.head_ref || github.ref_name }}
# PR_TITLE: ${{ github.event_name == 'pull_request' && github.event.pull_request.title || format('Direct push to {0}', github.ref_name) }}
# call-workflow-e2e-prod:
# if: ${{ !contains(github.event.head_commit.message, '[skip ci]') }}
# needs: [build, lint, test, setup-matrix]
# uses: dhis2/workflows/.github/workflows/analytics-e2e-tests-prod.yml@feat/support-hardcoded-dev-version
# with:
# should_record: ${{ contains(github.event.head_commit.message, '[e2e record]') || contains(join(github.event.pull_request.labels.*.name), 'e2e record')}}
# spec-group: ${{ needs.setup-matrix.outputs.matrix }}
# secrets:
# username: ${{ secrets.CYPRESS_DHIS2_USERNAME }}
# password: ${{ secrets.CYPRESS_DHIS2_PASSWORD }}
# recordkey: ${{ secrets.CYPRESS_RECORD_KEY }}
# reportportal_api_key: ${{ secrets.REPORTPORTAL_API_KEY }}
# reportportal_endpoint: ${{ vars.REPORTPORTAL_ENDPOINT }}
# reportportal_project: ${{ vars.REPORTPORTAL_PROJECT }}
check_if_dashboard_tested:
runs-on: ubuntu-latest
steps:
- name: Check whether dashboard has been tested
uses: actions/github-script@v6
with:
script: |
const requiredText = '[x] DASHBOARD TESTED';
const description = context.payload.pull_request.body;
console.log(description);
console.log(requiredText)
// Regex to find the checkbox with the specific text
const checkboxRegex = new RegExp(`${requiredText}`, 'i');
if (!checkboxRegex.test(description)) {
throw new Error(`Dashboard has not been tested, ${requiredText}`);
}