Skip to content

Update Python to v3.12.6 #18046

Update Python to v3.12.6

Update Python to v3.12.6 #18046

Workflow file for this run

name: CI
on: [push]
jobs:
python-tests:
runs-on: ubuntu-22.04
services:
db:
image: postgres:15.8
# 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:5.0.8
ports:
- 6379:6379
elastic:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.23
env:
network.host: "0.0.0.0"
http.cors.enabled: "true"
http.cors.allow-origin: "*"
rest.action.multi.allow_explicit_index: "false"
ES_JAVA_OPTS: -Xms512m -Xmx512m"
ports:
- 9200:9200
steps:
- uses: actions/checkout@v3
- name: Apt update
run: sudo apt-get update -y
- name: Apt install
run: cat Aptfile | sudo xargs apt-get install
- name: Install poetry
uses: snok/install-poetry@v1
with:
version: 1.8.2
virtualenvs-create: true
virtualenvs-in-project: true
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: "3.9.18"
- name: Install dependencies
run: poetry install --no-interaction
# Configurations required for elasticsearch.
- name: Configure sysctl limits
run: |
sudo swapoff -a
sudo sysctl -w vm.swappiness=1
sudo sysctl -w fs.file-max=262144
sudo sysctl -w vm.max_map_count=262144
- name: Runs Elasticsearch
uses: elastic/elastic-github-actions/elasticsearch@master
with:
stack-version: 6.7.1
- name: Create test local state
run: ./scripts/test/stub-data.sh
- name: Running Celery
run: |
celery -A main worker -B -l INFO &
sleep 10
env:
CELERY_TASK_ALWAYS_EAGER: 'True'
CELERY_BROKER_URL: redis://localhost:6379/4
CELERY_RESULT_BACKEND: redis://localhost:6379/4
SECRET_KEY: local_unsafe_key # pragma: allowlist secret
MITX_ONLINE_BASE_URL: http://localhost:8013
MAILGUN_SENDER_DOMAIN: other.fake.site
MAILGUN_KEY: fake_mailgun_key
MITX_ONLINE_ADMIN_EMAIL: example@localhost
OPENEDX_API_CLIENT_ID: fake_client_id
OPENEDX_API_CLIENT_SECRET: fake_client_secret # pragma: allowlist secret
- name: Tests
run: |
export MEDIA_ROOT="$(mktemp -d)"
cp scripts/test/data/webpack-stats/* webpack-stats/
./scripts/test/python_tests.sh
env:
DEBUG: False
NODE_ENV: 'production'
CELERY_TASK_ALWAYS_EAGER: 'True'
CELERY_BROKER_URL: redis://localhost:6379/4
CELERY_RESULT_BACKEND: redis://localhost:6379/4
DATABASE_URL: postgres://postgres:postgres@localhost:5432/postgres # pragma: allowlist secret
ELASTICSEARCH_URL: localhost:9200
MAILGUN_KEY: fake_mailgun_key
MAILGUN_SENDER_DOMAIN: other.fake.site
MITX_ONLINE_ADMIN_EMAIL: example@localhost
MITX_ONLINE_BASE_URL: http://localhost:8013
MITX_ONLINE_DB_DISABLE_SSL: 'True'
MITX_ONLINE_EMAIL_BACKEND: django.core.mail.backends.locmem.EmailBackend
MITX_ONLINE_NOTIFICATION_EMAIL_BACKEND: django.core.mail.backends.locmem.EmailBackend
MITX_ONLINE_SECURE_SSL_REDIRECT: 'False'
MITX_ONLINE_USE_S3: 'False'
OPENEDX_API_BASE_URL: http://localhost:18000
OPENEDX_API_CLIENT_ID: fake_client_id
OPENEDX_API_CLIENT_SECRET: fake_client_secret # pragma: allowlist secret
SECRET_KEY: local_unsafe_key # pragma: allowlist secret
- name: Upload coverage to CodeCov
uses: codecov/codecov-action@v3
with:
file: ./coverage.xml
javascript-tests:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v3
- name: Setup NodeJS
uses: actions/setup-node@v2-beta
with:
node-version: 15.14.0
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
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 --immutable
- name: Lints
run: yarn workspaces foreach run lint
- name: Code formatting
run: yarn workspaces foreach run fmt:check
- name: Scss lint
run: yarn workspaces foreach run scss_lint
- name: Flow
run: yarn workspaces foreach run flow
- name: Tests
run: yarn workspaces foreach run test
env:
CODECOV: true
NODE_ENV: development
- name: Webpack production build
run: |
yarn workspaces foreach run build --bail --mode production
env:
NODE_ENV: production
- name: Upload test coverage to CodeCov
uses: codecov/codecov-action@v3
with:
file: coverage/lcov.info