name: static assets check for lms and cms on: pull_request: push: branches: - master jobs: static_assets_check: name: static-assets-check runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-24.04] python-version: - "3.11" node-version: [20] npm-version: [10.7.x] mongo-version: - "7.0" services: mongo: image: mongo:${{ matrix.mongo-version }} ports: - 27017:27017 # Note: Calling mongo here only works with mongo 4, in newer versions of mongo # we'll have to use `mongosh`, hence the 'which mongosh mongo'. options: >- --health-cmd "$(which mongosh mongo) --quiet --eval 'db.runCommand(\"ping\")'" --health-interval 10s --health-timeout 5s --health-retries 3 steps: - name: Checkout repo uses: actions/checkout@v4 - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install system Packages run: | sudo apt-get update sudo apt-get install libxmlsec1-dev pkg-config - name: Setup Node uses: actions/setup-node@v4 with: node-version: ${{ matrix.node-version }} - name: Setup npm run: npm i -g npm@${{ matrix.npm-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/development.txt') }} restore-keys: ${{ runner.os }}-pip- - name: Install Limited Python Deps for Build run: | pip install -r requirements/edx/assets.txt - name: Add node_modules bin to $Path run: echo $GITHUB_WORKSPACE/node_modules/.bin >> $GITHUB_PATH - name: Check Dev Assets Build env: COMPREHENSIVE_THEMES_DIR: ./themes run: | npm clean-install --dev npm run build-dev - name: Check Prod Assets Build env: COMPREHENSIVE_THEMES_DIR: ./themes run: | npm clean-install npm run build - name: Install Full Python Deps for Collection run: | pip install -r requirements/edx/base.txt -e . - name: Check Assets Collection env: LMS_CFG: lms/envs/minimal.yml CMS_CFG: lms/envs/minimal.yml DJANGO_SETTINGS_MODULE: lms.envs.production run: | ./manage.py lms collectstatic --noinput ./manage.py cms collectstatic --noinput