Resize movies with aws lambda #2861
This file contains hidden or 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
| # See https://docs.github.com/en/actions/guides/building-and-testing-python | |
| # 2025-06-15 - slg - Complete rewrite to avoid MySQL and use DynamoDB and S3 local variants. | |
| # These are automatically configured with install-ubuntu or install-macos | |
| name: CI (pip) | |
| on: [push, pull_request] | |
| jobs: | |
| build: | |
| strategy: | |
| matrix: | |
| os: ['macos-latest', 'ubuntu-latest'] # | |
| python-version: [3.11] # installed version on Dreamhost | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - name: configure cache | |
| uses: actions/cache@v4 | |
| with: | |
| path: ~/.cache/pip | |
| key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Update GITHUB_PATH and install Python dependencies for local development | |
| run: | | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: "Configure ubuntu" | |
| if: runner.os == 'Linux' | |
| run: | | |
| make install-ubuntu | |
| - name: "Configure macOS" | |
| if: runner.os == 'macOS' | |
| run: | | |
| make install-macos | |
| - name: "Configure Windows" | |
| if: runner.os == 'Windows' | |
| run: | | |
| make install-windows | |
| - name: Create default AWS credentials and Validate local DynamoDB endpoint | |
| run: | | |
| bin/local_dynamodb_control.bash start | |
| - name: Validate local minio/S3 endpoint and make sure we have buckets | |
| run: | | |
| bin/local_minio_control.bash start | |
| make make-local-bucket | |
| - name: Make a demo course, user and upload the demo movies | |
| run: | | |
| make make-local-demo | |
| - name: Lint with pylint | |
| run: | | |
| make pylint | |
| - name: JavaScript and HTML eslint | |
| run: | | |
| make eslint | |
| - name: Normal pytest | |
| if: runner.os != 'Linux' | |
| run: | | |
| make pytest | |
| - name: Run pytest with coverage | |
| if: runner.os == 'Linux' | |
| run: | | |
| make pytest-coverage | |
| - name: JavaScript tests and coverage | |
| if: runner.os == 'Linux' | |
| run: | | |
| make jscoverage | |
| - name: Upload coverage test to codecov.io | |
| if: runner.os == 'Linux' | |
| uses: codecov/codecov-action@v4 | |
| with: | |
| fail_ci_if_error: true | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| verbose: true | |
| files: ./coverage.xml,./coverage/coverage-final.json |