name: Javascript tests on: pull_request: push: branches: - master jobs: run_tests: name: JS runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest] node-version: [20] python-version: - "3.11" steps: - uses: actions/checkout@v4 - name: Fetch master to compare coverage run: git fetch --depth=1 origin master - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} cache: 'npm' - name: Setup npm run: npm i -g npm@10.7.x - name: Install Firefox 123.0 run: | sudo apt-get purge firefox wget "https://ftp.mozilla.org/pub/firefox/releases/123.0/linux-x86_64/en-US/firefox-123.0.tar.bz2" tar -xjf firefox-123.0.tar.bz2 sudo mv firefox /opt/firefox sudo ln -s /opt/firefox/firefox /usr/bin/firefox - name: Install Required System Packages run: sudo apt-get update && sudo apt-get install libxmlsec1-dev ubuntu-restricted-extras xvfb - name: Setup Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Get pip cache dir id: pip-cache-dir run: | echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT - name: Cache pip dependencies id: cache-dependencies uses: actions/cache@v4 with: path: ${{ steps.pip-cache-dir.outputs.dir }} key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/base.txt') }} restore-keys: ${{ runner.os }}-pip- - name: Install Required Python Dependencies run: | make base-requirements - name: Install npm run: npm ci - name: Run JS Tests run: | npm run test - name: Save Job Artifacts uses: actions/upload-artifact@v4 with: name: Build-Artifacts path: | reports/**/* test_root/log/*.png test_root/log/*.log **/TEST-*.xml overwrite: true