format #412
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
name: CI | |
on: [push] | |
jobs: | |
python-tests: | |
runs-on: ubuntu-latest | |
services: | |
# Label used to access the service container | |
db: | |
# Docker Hub image | |
image: postgres:11.6 | |
# Set health checks to wait until postgres has started | |
options: >- | |
--health-cmd pg_isready | |
--health-interval 10s | |
--health-timeout 5s | |
--health-retries 5 | |
env: | |
POSTGRES_USER: postgres | |
POSTGRES_PASSWORD: postgres # pragma: allowlist secret | |
POSTGRES_DB: postgres | |
ports: | |
- 5432:5432 | |
redis: | |
image: redis:3.2.10 | |
ports: | |
- 6379:6379 | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Apt install | |
run: cat Aptfile | sudo xargs apt-get install | |
- name: Install poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.5.1 | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: "3.9.13" | |
cache: poetry | |
- name: Install dependencies | |
run: poetry install --no-interaction | |
- name: Code formatting | |
run: poetry run black --check . | |
- name: Lint | |
run: poetry run pylint ./**/*.py | |
- name: Tests | |
run: | | |
export MEDIA_ROOT="$(mktemp -d)" | |
./scripts/test/python_tests.sh | |
env: | |
DEBUG: 'False' | |
NODE_ENV: 'production' | |
DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres # pragma: allowlist secret | |
ODL_VIDEO_SECURE_SSL_REDIRECT: 'False' | |
ODL_VIDEO_DB_DISABLE_SSL: 'True' | |
CELERY_TASK_ALWAYS_EAGER: 'True' | |
REDIS_URL: redis://localhost:6379/4 | |
XDG_CACHE_HOME: /src/.cache | |
SECRET_KEY: actions_secret | |
AWS_ACCESS_KEY_ID: fakeawskey | |
AWS_SECRET_ACCESS_KEY: fakeawssecret | |
AWS_REGION: us-east-1 | |
CLOUDFRONT_KEY_ID: cfkeyid | |
DROPBOX_KEY: foo_dropbox_key | |
ET_PIPELINE_ID: foo_et_pipeline_id | |
FIELD_ENCRYPTION_KEY: jtma0CL1QMRLaJgjXNlJh3mtPNcgok0G5ajRCMZ_XNI= | |
GA_DIMENSION_CAMERA: fake | |
GA_KEYFILE_JSON: fake | |
GA_VIEW_ID: fake | |
GA_TRACKING_ID: fake | |
LECTURE_CAPTURE_USER: admin | |
MAILGUN_URL: http://fake_mailgun_url.com | |
MAILGUN_KEY: foookey | |
ODL_VIDEO_BASE_URL: http://video.example.com | |
VIDEO_S3_BUCKET: video-s3 | |
VIDEO_S3_TRANSCODE_BUCKET: video-s3-transcodes | |
VIDEO_S3_THUMBNAIL_BUCKET: video-s3-thumbs | |
VIDEO_S3_SUBTITLE_BUCKET: video-s3-subtitles | |
VIDEO_S3_WATCH_BUCKET: video-s3-watch | |
VIDEO_CLOUDFRONT_DIST: video-cf | |
YT_ACCESS_TOKEN: fake | |
YT_REFRESH_TOKEN: fake | |
YT_CLIENT_ID: fake | |
YT_CLIENT_SECRET: fakse # pragma: allowlist secret | |
YT_PROJECT_ID: fake | |
- name: Upload coverage to CodeCov | |
uses: codecov/codecov-action@v1 | |
with: | |
file: ./coverage.xml | |
javascript-tests: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Set up NodeJS | |
uses: actions/setup-node@v2-beta | |
with: | |
node-version: 13.13.0 | |
- name: Setup environment | |
run: sudo apt-get install libelf1 | |
- name: Get yarn cache directory path | |
id: yarn-cache-dir-path | |
run: echo "::set-output name=dir::$(yarn cache dir)" | |
- uses: actions/cache@v1 | |
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`) | |
with: | |
path: ${{ steps.yarn-cache-dir-path.outputs.dir }} | |
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} | |
restore-keys: | | |
${{ runner.os }}-yarn- | |
- name: Install dependencies | |
run: yarn install --frozen-lockfile --ignore-engines --prefer-offline | |
- name: Lints | |
run: npm run lint | |
- name: Tests | |
run: npm run test | |
env: | |
CODECOV: true | |
NODE_ENV: development | |
- name: Webpack build | |
run: node node_modules/webpack/bin/webpack.js --config webpack.config.prod.js --bail | |
- name: Upload coverage to CodeCov | |
uses: codecov/codecov-action@v1 | |
with: | |
file: coverage/lcov.info |