Skip to content

Commit

Permalink
Merge pull request #16 from nelc/and/backport_migration_check
Browse files Browse the repository at this point in the history
Merge pull request openedx#32239 from openedx/feanil/migration_check
  • Loading branch information
andrey-canon authored Apr 25, 2024
2 parents 662c4cd + 18e8763 commit 3df3270
Show file tree
Hide file tree
Showing 8 changed files with 119 additions and 141 deletions.
4 changes: 4 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,7 @@ openedx/features/discounts/
# Ping tCRIL On-call if someone uses the QuickStart
# https://docs.openedx.org/en/latest/developers/quickstarts/first_openedx_pr.html
lms/templates/dashboard.html @openedx/tcril-oncall

# Ensure minimal.yml stays minimal, this could be a team in the future
# but it's just me for now, others can sign up if they care as well.
lms/envs/minimal.yml @feanil
80 changes: 0 additions & 80 deletions .github/workflows/migrations-check-mysql8.yml

This file was deleted.

96 changes: 54 additions & 42 deletions .github/workflows/migrations-check.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Migrations check on MySql 57
name: Check Django Migrations

on:
workflow_dispatch:
Expand All @@ -15,8 +15,54 @@ jobs:
matrix:
os: [ ubuntu-20.04 ]
python-version: [ 3.8 ]

mongo-version: ["4"]
mysql-version: ["5.7", "8"]
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`
options: >-
--health-cmd "mongo --quiet --eval 'db.runCommand(\"ping\")'"
--health-interval 10s
--health-timeout 5s
--health-retries 3
mysql:
image: mysql:${{ matrix.mysql-version }}
ports:
- 3306:3306
env:
MYSQL_DATABASE: "edxapp"
MYSQL_USER: "edxapp001"
MYSQL_PASSWORD: "password"
MYSQL_RANDOM_ROOT_PASSWORD: true
options: >-
--health-cmd "mysqladmin ping"
--health-interval 10s
--health-timeout 5s
--health-retries 3
steps:
- name: Setup mongodb user
run: |
mongosh edxapp --eval '
db.createUser(
{
user: "edxapp",
pwd: "password",
roles: [
{ role: "readWrite", db: "edxapp" },
]
}
);
'
- name: Verify mongo and mysql db credentials
run: |
mysql -h 127.0.0.1 -uedxapp001 -ppassword -e "select 1;" edxapp
mongosh --host 127.0.0.1 --username edxapp --password password --eval 'use edxapp; db.adminCommand("ping");' edxapp
- name: Checkout repo
uses: actions/checkout@v2

Expand All @@ -28,7 +74,7 @@ jobs:
- name: Install system Packages
run: |
sudo apt-get update
sudo apt-get install -y libxmlsec1-dev
make ubuntu-requirements
- name: Get pip cache dir
id: pip-cache-dir
Expand All @@ -43,51 +89,17 @@ jobs:
key: ${{ runner.os }}-pip-${{ hashFiles('requirements/edx/development.txt') }}
restore-keys: ${{ runner.os }}-pip-

- name: Install MySQL 5.7
run: |
mkdir ${RUNNER_WORKSPACE}/mysql_packages && cd ${RUNNER_WORKSPACE}/mysql_packages
sudo apt-get remove --purge *mysql* -y
sudo rm -rvf /etc/init.d/mysql* /etc/mysql* /var/lib/mysql*
sudo apt-get install libaio1 libnuma1 libtinfo5 -y
wget https://cdn.mysql.com/archives/mysql-5.7/mysql-server_5.7.35-1ubuntu18.04_amd64.deb-bundle.tar
tar -xf mysql-server_5.7*.tar
sudo DEBIAN_FRONTEND=noninteractive dpkg --install mysql-common_5.7*.deb libmysqlclient*.deb mysql-server_5.7*.deb mysql-client_5.7*.deb mysql-community-server_5.7*.deb mysql-community-client_5.7*.deb
- name: Ubuntu and sql Versions
run: |
lsb_release -a
mysql -V
- name: Install Python dependencies
run: |
make dev-requirements
- name: Initiate Services
run: |
sudo systemctl start mongod
sudo /etc/init.d/mysql start
- name: Reset mysql password
run: |
cat <<EOF | sudo mysql -u root
UPDATE mysql.user SET plugin = 'mysql_native_password' WHERE user = 'root';
UPDATE mysql.user SET authentication_string = null WHERE user = 'root';
FLUSH PRIVILEGES;
EOF
- name: Install mysqlclient-dev binary
run: |
sudo apt-get update
sudo apt-get install -y libmysqlclient-dev
- name: Run Tests
env:
LMS_CFG: lms/envs/bok_choy.yml
LMS_CFG: lms/envs/minimal.yml
# This is from the LMS dir on purpose since we don't need anything different for the CMS yet.
STUDIO_CFG: lms/envs/minimal.yml
run: |
echo "CREATE DATABASE IF NOT EXISTS edxtest;" | sudo mysql -u root
echo "CREATE DATABASE IF NOT EXISTS student_module_history_test;" | sudo mysql -u root
echo "Running the LMS migrations."
./manage.py lms --settings bok_choy migrate
./manage.py lms migrate
echo "Running the CMS migrations."
./manage.py cms --settings bok_choy migrate
./manage.py cms migrate
41 changes: 30 additions & 11 deletions README.rst
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#################
Open edX Platform
#################
| |License: AGPL v3| |Status| |Python CI|
Expand All @@ -12,7 +11,7 @@ Open edX Platform
.. |Status| image:: https://img.shields.io/badge/status-maintained-31c653

Purpose
-------
*******
The `Open edX Platform <https://openedx.org>`_ is a service-oriented platform for authoring and
delivering online learning at any scale. The platform is written in
Python and JavaScript and makes extensive use of the Django
Expand All @@ -27,7 +26,7 @@ platform. Functionally, the edx-platform repository provides two services:
* LMS (Learning Management Service), which delivers learning content.

Installation
------------
************

Installing and running an Open edX instance is not simple. We strongly
recommend that you use a service provider to run the software for you. They
Expand All @@ -43,8 +42,28 @@ so, `Open edX Installation Options`_ explains your options.
.. _Open edX Developer Stack: https://github.com/openedx/devstack
.. _Open edX Installation Options: https://openedx.atlassian.net/wiki/spaces/OpenOPS/pages/60227779/Open+edX+Installation+Options

Dependencies
============

In order to build and run this code you'll need the following available on your
system:

Interperters/Tools:

* Python 3.8

* Node 16

Services:

* MySQL 5.7

* Mongo 4.x

* Memcached

License
-------
*******

The code in this repository is licensed under version 3 of the AGPL
unless otherwise noted. Please see the `LICENSE`_ file for details.
Expand All @@ -53,7 +72,7 @@ unless otherwise noted. Please see the `LICENSE`_ file for details.


More about Open edX
-------------------
*******************

See the `Open edX site`_ to learn more about the Open edX world. You can find
information about hosting, extending, and contributing to Open edX software. In
Expand All @@ -63,13 +82,13 @@ and other rich community resources.
.. _Open edX site: https://openedx.org

Documentation
-------------
*************

Documentation can be found at https://docs.edx.org.
Documentation can be found at https://docs.openedx.org.


Getting Help
------------
************

If you're having trouble, we have discussion forums at
https://discuss.openedx.org where you can connect with others in the community.
Expand All @@ -85,7 +104,7 @@ For more information about these options, see the `Getting Help`_ page.


Issue Tracker
-------------
*************

We use JIRA for our issue tracker, not GitHub issues. You can search
`previously reported issues`_. If you need to report a problem,
Expand All @@ -96,7 +115,7 @@ please make a free account on our JIRA and `create a new issue`_.


How to Contribute
-----------------
*****************

Contributions are welcome! The first step is to submit a signed
`individual contributor agreement`_. See our `CONTRIBUTING`_ file for more
Expand All @@ -105,7 +124,7 @@ quality, which will make your contribution more likely to be accepted.


Reporting Security Issues
-------------------------
*************************

Please do not report security issues in public. Please email
[email protected].
Expand Down
6 changes: 3 additions & 3 deletions cms/envs/common.py
Original file line number Diff line number Diff line change
Expand Up @@ -1052,7 +1052,7 @@
'ATOMIC_REQUESTS': True,
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'HOST': '127.0.0.1',
'NAME': 'edxapp',
'OPTIONS': {},
'PASSWORD': 'password',
Expand All @@ -1062,7 +1062,7 @@
'read_replica': {
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'HOST': '127.0.0.1',
'NAME': 'edxapp',
'OPTIONS': {},
'PASSWORD': 'password',
Expand All @@ -1072,7 +1072,7 @@
'student_module_history': {
'CONN_MAX_AGE': 0,
'ENGINE': 'django.db.backends.mysql',
'HOST': 'localhost',
'HOST': '127.0.0.1',
'NAME': 'edxapp_csmh',
'OPTIONS': {},
'PASSWORD': 'password',
Expand Down
Loading

0 comments on commit 3df3270

Please sign in to comment.