Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: add a check for dashboard tested #3272

Open
wants to merge 16 commits into
base: master
Choose a base branch
from
Open
1 change: 1 addition & 0 deletions .github/pull_request_template.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ _text_
- [ ] Update docs
- [ ] Manual testing
- [ ] _task_
- [ ] DASHBOARD TESTED

---

Expand Down
84 changes: 52 additions & 32 deletions .github/workflows/verify-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,41 +62,61 @@ jobs:
- name: Lint
run: yarn d2-style check

test:
# 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:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- name: Check whether dashboard has been tested
uses: actions/github-script@v6
with:
node-version: 18.x
script: |
const requiredText = '[x] DASHBOARD TESTED';
const description = context.payload.pull_request.body;
console.log(description);

- name: Install
run: yarn install --frozen-lockfile
console.log(requiredText)

- name: Generate translations
run: yarn d2-app-scripts i18n generate
// Regex to find the checkbox with the specific text
const checkboxRegex = new RegExp(`${requiredText}`, 'i');

- 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 }}
if (!checkboxRegex.test(description)) {
throw new Error(`Dashboard has not been tested, ${requiredText}`);
}
Loading