Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge pull request #32239 from openedx/feanil/migration_check #16

Merged
merged 2 commits into from
Apr 25, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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
Loading