Merging develop-userTypeFix in develop #533
Workflow file for this run
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
############################################################################## | |
############################################################################## | |
# | |
# NOTE! | |
# | |
# Please read the README.md file in this directory that defines what should | |
# be placed in this file | |
# | |
############################################################################## | |
############################################################################## | |
name: PR Workflow | |
on: | |
pull_request: | |
branches: | |
- '**' | |
env: | |
CODECOV_UNIQUE_NAME: CODECOV_UNIQUE_NAME-${{ github.run_id }}-${{ github.run_number }} | |
jobs: | |
Code-Quality-Checks: | |
name: Performs linting, formatting, type-checking, checking for different source and target branch | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
- name: Install Dependencies | |
run: npm install | |
- name: Count number of lines | |
run: | | |
chmod +x ./.github/workflows/countline.py | |
./.github/workflows/countline.py --lines 600 --exclude_files src/screens/LoginPage/LoginPage.tsx src/GraphQl/Queries/Queries.ts src/screens/OrgList/OrgList.tsx | |
- name: Get changed TypeScript files | |
id: changed-files | |
uses: tj-actions/changed-files@v40 | |
- name: Check formatting | |
if: steps.changed-files.outputs.only_changed != 'true' | |
run: npm run format:check | |
- name: Check for type errors | |
if: steps.changed-files.outputs.only_changed != 'true' | |
run: npm run typecheck | |
- name: Run linting check | |
if: steps.changed-files.outputs.only_changed != 'true' | |
run: npm run lint:check | |
- name: Check for localStorage Usage | |
run: | | |
chmod +x scripts/githooks/check-localstorage-usage.js | |
node scripts/githooks/check-localstorage-usage.js --scan-entire-repo | |
- name: Compare translation files | |
run: | | |
chmod +x .github/workflows/compare_translations.py | |
python .github/workflows/compare_translations.py --directory public/locales | |
- name: Check if the source and target branches are different | |
if: ${{ github.event.pull_request.base.ref == github.event.pull_request.head.ref }} | |
run: | | |
echo "Source Branch ${{ github.event.pull_request.head.ref }}" | |
echo "Target Branch ${{ github.event.pull_request.base.ref }}" | |
echo "Error: Source and Target Branches are the same. Please ensure they are different." | |
exit 1 | |
Check-Changed-Files: | |
name: File count, sensitive files and branch check | |
runs-on: ubuntu-latest | |
# needs: Code-Quality-Checks | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Run Python script | |
run: | | |
python .github/workflows/count_changed_files.py --base_branch "${{ github.base_ref }}" --pr_branch "${{ github.head_ref }}" | |
Check-ESlint-Disable: | |
name: Check for eslint-disable | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.9 | |
- name: Run Python script | |
run: | | |
python .github/workflows/eslint_disable_check.py | |
Test-Application: | |
name: Test Application | |
runs-on: ubuntu-latest | |
needs: [Code-Quality-Checks, Check-ESlint-Disable] | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
- name: Install Dependencies | |
run: npm install | |
- name: Get changed TypeScript files | |
id: changed-files | |
uses: tj-actions/changed-files@v40 | |
- name: Run tests | |
if: steps.changed-files.outputs.only_changed != 'true' | |
run: npm run test -- --watchAll=false --coverage | |
- name: TypeScript compilation for changed files | |
run: | | |
for file in ${{ steps.changed-files.outputs.all_files }}; do | |
if [[ "$file" == *.ts || "$file" == *.tsx ]]; then | |
npx tsc --noEmit "$file" | |
fi | |
done | |
- name: Present and Upload coverage to Codecov as ${{env.CODECOV_UNIQUE_NAME}} | |
uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
verbose: true | |
fail_ci_if_error: false | |
name: '${{env.CODECOV_UNIQUE_NAME}}' | |
- name: Test acceptable level of code coverage | |
uses: VeryGoodOpenSource/very_good_coverage@v2 | |
with: | |
path: "./coverage/lcov.info" | |
min_coverage: 95.0 | |
Graphql-Inspector: | |
name: Runs Introspection on the GitHub talawa-api repo on the schema.graphql file | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout the Repository | |
uses: actions/checkout@v4 | |
- name: Set up Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20.x' | |
- name: resolve dependency | |
run: npm install -g @graphql-inspector/cli | |
- name: Clone API Repository | |
run: | | |
# Retrieve the complete branch name directly from the GitHub context | |
FULL_BRANCH_NAME=${{ github.base_ref }} | |
echo "FULL_Branch_NAME: $FULL_BRANCH_NAME" | |
# Clone the specified repository using the extracted branch name | |
git clone --branch $FULL_BRANCH_NAME https://github.com/PalisadoesFoundation/talawa-api && ls -a | |
- name: Validate Documents | |
run: graphql-inspector validate './src/GraphQl/**/*.ts' './talawa-api/schema.graphql' | |
Check-Target-Branch: | |
name: Check Target Branch | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check if the target branch is develop | |
if: github.event.pull_request.base.ref != 'develop' | |
run: | | |
echo "Error: Pull request target branch must be 'develop'. Please refer PR_GUIDELINES.md" | |
exit 1 | |