Files
freeCodeCamp/.github/workflows/node.js-tests.yml
Oliver Eyton-Williams 4cc20172c5 fix: fallback to english challenges (#45635)
* fix: fallback to english challenges

All challenges will use the english version if a translated file is not
available.  SHOW_NEW_CURRICULUM still gates what's shown in the client.

* refactor: use closures to simplify createChallenge

* refactor: remove messy destructure

* refactor: add meta via helper

* fix: fallback to [] for meta.required

* fix: repair challenge.block

* refactor: use CONST_CASE for meta + challenge dirs

* fix: catch empty superblocks immediately

* fix: clean up path.resolves

* fix: invalid syntax in JS project steps

* fix: default to english comments and relax tests

Instead of always throwing errors when a comment is not translated, the
tests now warn while SHOW_UPCOMING_CHANGES is true, so that tests will
pass while we're developing and allow translators time to work.

They still throw when SHOW_UPCOMING_CHANGES is false to catch issues
in production

* test: update createCommentMap test

* refactor: delete stale comment

* refactor: clarify validate with explanatory consts

* feat: throw if audited cert falls back to english

* fix: stop testing upcoming localized curriculum
2022-04-15 09:17:49 -05:00

161 lines
3.5 KiB
YAML

name: Node.js CI
on:
push:
branches-ignore:
- 'renovate/**'
pull_request:
jobs:
lint:
name: Lint
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
node-version: [16.x]
steps:
- name: Checkout Source Files
uses: actions/checkout@v3
- name: Check number of lockfiles
run: |
if [ $(find . -name 'package-lock.json' | grep -vc -e 'node_modules') -gt 1 ]
then
echo 'Error: found too many lockfiles in the repository'
exit 1
fi
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'npm'
- name: Set Environment variables
run: |
cp sample.env .env
echo 'SHOW_NEW_CURRICULUM=true' >> .env
cat .env
- name: Lint Source Files
run: |
echo npm version $(npm -v)
npm ci
npm run create:config
npm run build:curriculum
npm run lint
test:
name: Test
needs: lint
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
node-version: [16.x]
steps:
- name: Checkout Source Files
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Set Environment variables
run: |
cp sample.env .env
cat .env
- name: Install Dependencies
run: |
echo npm version $(npm -v)
npm ci
npm run create:config
npm run build:curriculum
- name: Run Tests
run: npm test
test-upcoming:
name: Test Upcoming Changes
needs: lint
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
node-version: [16.x]
steps:
- name: Checkout Source Files
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Set Environment variables
run: |
cp sample.env .env
echo 'SHOW_UPCOMING_CHANGES=true' >> .env
cat .env
- name: Install Dependencies
run: |
echo npm version $(npm -v)
npm ci
npm run create:config
npm run build:curriculum
- name: Run Tests
run: npm test
test-localization:
name: Localize
needs: lint
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
node-version: [16.x]
locale: [chinese, espanol]
steps:
- name: Checkout Source Files
uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: npm
- name: Set Environment variables
run: |
cp sample.env .env
cat .env
- name: Install Dependencies
env:
CURRICULUM_LOCALE: ${{ matrix.locale }}
CLIENT_LOCALE: ${{ matrix.locale }}
run: |
echo npm version $(npm -v)
npm ci
npm run create:config
npm run build:curriculum
- name: Run Tests
env:
CURRICULUM_LOCALE: ${{ matrix.locale }}
CLIENT_LOCALE: ${{ matrix.locale }}
run: npm test