Commit Graph

64 Commits

Author SHA1 Message Date
Irtaza Akram
4fa1a4b6b3 fix: github action artifact upload issue 2024-06-25 16:46:10 +05:00
Kyle McCormick
88a6855255 test: cancel old unit tests when a new PR commit is pushed (#34909)
Based on: 
* https://docs.github.com/en/actions/using-jobs/using-concurrency#example-using-concurrency-and-the-default-behavior
* https://stackoverflow.com/questions/68418857/how-to-cancel-existing-runs-when-a-new-push-happens-on-github-actions-but-only
2024-06-05 08:26:04 -04:00
Kyle McCormick
b063dfc1ea test: always run aggregate unit test check (#34903)
When a shard of unit-tests.yml fails, we want the `success` job to be
maked "Failed" (not "Skipped"). That's because "Failed" blocks the PR
from merging, whereas "Skipped" does not. This change ensures that
`success` always runs to completion rather than being cancelled as soon
as a unit test shard fails or is cancelled.

From https://github.com/marketplace/actions/alls-green#options:

> Important: For this to work properly, it is a must to have the job always run,
> otherwise GitHub will make it skipped when any of the dependencies fail. In
> some contexts, skipped is interpreted as success which may lead to undersired,
> unobvious and even dangerous (as in security breach "dangerous") side-effects.

Closes https://github.com/openedx/edx-platform/issues/34789
2024-06-04 10:15:51 -04:00
Emad Rad
6c5b98087e chore: cleanup
- rst heading definitions
- indirect hyperlinks and code-blocks added for better readability
- MarkDown warnings resolved
- Yaml style issues fixed
2024-06-03 22:18:27 +03:30
Irtaza Akram
11e8b8ba90 fix: verify-and-collect issues 2024-05-30 15:00:49 -04:00
Irtaza Akram
c22fbec6a9 fix: move collect-and-verify to unit-tests.yml 2024-05-30 15:00:49 -04:00
Irtaza Akram
b3185ffe7b fix: env for runner 2024-05-30 15:00:49 -04:00
Irtaza Akram
2506d9373a fix: test runner 2024-05-30 15:00:49 -04:00
Irtaza Akram
99248ae992 fix: review changes 2024-05-30 15:00:49 -04:00
Irtaza Akram
5a46a3aa0f fix: tests on forks 2024-05-30 15:00:49 -04:00
Irtaza Akram
6b5f11a79b fix: merged gh-hosted into gha 2024-05-30 15:00:47 -04:00
Irtaza Akram
a6755edcbb fix: remove sudo for pip specific commands 2024-05-30 15:00:33 -04:00
Irtaza Akram
f6f75b428c fix: lynx dependency 2024-05-30 15:00:33 -04:00
Irtaza Akram
e428dd4511 fix: update github actions & remove edx runner 2024-05-30 15:00:30 -04:00
Feanil Patel
4687dae487 build: Drop testing with Mongo 4.4 and Python 3.8 2024-05-14 09:25:18 -04:00
Kyle McCormick
e6610f5ece test: only run Mongo 4.4 tests on xmodule directory (#34683)
Cuts the number of unit test checks from 64 down to 34

Also, we rename test contexts so that they're easier to read in GHA.
2024-05-06 14:37:38 -04:00
Feanil Patel
e9d716375f build: Update to allow tests to run on python 3.11
* Update so tox will allow running on the new version.
* Update so the hosted runner actually respects the python version in
  the matrix
2024-05-01 10:23:34 -04:00
Feanil Patel
85db730cef build: Run tests on python 3.11 as well as 3.8 2024-05-01 10:03:42 -04:00
Tim McCormack
afe93559b9 Revert "build: Python requirements upgrade and lxml build without binary (#34…" (#34661)
This reverts commit 52adce48d1 because we were getting this in the build pipeline:

```
WARNING: lxml 5.2.1 does not provide the extra 'html-clean'
ERROR: Exception:
Traceback (most recent call last):
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/cli/base_command.py", line 173, in _main
    status = self.run(options, args)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/cli/req_command.py", line 203, in wrapper
    return func(self, options, args)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/commands/install.py", line 315, in run
    requirement_set = resolver.resolve(
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/resolver.py", line 94, in resolve
    result = self._result = resolver.resolve(
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 472, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 366, in resolve
    failure_causes = self._attempt_to_pin_criterion(name)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 221, in _attempt_to_pin_criterion
    satisfied = all(
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_vendor/resolvelib/resolvers.py", line 222, in <genexpr>
    self._p.is_satisfied_by(requirement=r, candidate=candidate)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/provider.py", line 178, in is_satisfied_by
    return requirement.is_satisfied_by(candidate)
  File "/edx/app/edxapp/venvs/edxapp/lib/python3.8/site-packages/pip/_internal/resolution/resolvelib/requirements.py", line 84, in is_satisfied_by
    assert candidate.name == self.name, (
AssertionError: Internal issue: Candidate is not for this requirement lxml[html-clean,html-clean] vs lxml[html-clean]
WARNING: You are using pip version 21.2.1; however, version 24.0 is available.
You should consider upgrading via the '/edx/app/edxapp/venvs/edxapp/bin/python -m pip install --upgrade pip' command.
```
2024-04-29 21:06:45 +00:00
edX requirements bot
52adce48d1 build: Python requirements upgrade and lxml build without binary (#34655)
* build: build lxml without binary in requirements and CI workflows
---------
Co-authored-by: Usama Sadiq <usama.sadiq@arbisoft.com>
2024-04-29 23:48:57 +05:00
Daniel Valenzuela
c0aba8a805 build: add MongoDB 7 to the CI (#34213) 2024-03-08 18:50:13 +01:00
Muhammad Soban Javed
e40a01c7cc feat!: upgrade Django version to 4.2 (LTS)
This reverts commit 23659d5ba8.
2024-02-02 17:08:54 +05:00
Usama Sadiq
23659d5ba8 Revert "feat!: upgrade Django version to 4.2 (LTS) (#34162)" (#34165)
This reverts commit 1fc2e8a771.
2024-02-01 19:29:56 +05:00
Muhammad Soban Javed
1fc2e8a771 feat!: upgrade Django version to 4.2 (LTS) (#34162)
* feat!: upgrade Django version to 4.2 (LTS)
---------

Co-authored-by: iamsobanjaved <iamsobanjaved@users.noreply.github.com>
2024-02-01 16:10:34 +05:00
Muhammad Soban Javed
790e364097 Revert "chore!: upgrade Django version to 4.2 (LTS)" 2024-01-31 17:14:43 +05:00
Muhammad Soban Javed
67d53dce26 chore!: upgrade Django version to 4.2 (LTS)
This reverts commit 6f32d0e6f1.
2024-01-25 18:17:43 +05:00
Muhammad Soban Javed
6f32d0e6f1 Revert "chore!: upgrade Django version to 4.2 (LTS)" (#34095) 2024-01-23 19:07:53 +05:00
Muhammad Soban Javed
fc8e40fb10 chore!: upgrade Django version to 4.2 (LTS) (#33969)
* chore!: upgrade Django version to 4.2 (LTS)

* feat: Upgrade Python dependency Django

chore!: upgrade Django version to 4.2

Commit generated by workflow `openedx/edx-platform/.github/workflows/upgrade-one-python-dependency.yml@refs/heads/master`

* chore: Update common.py

* chore: Update common.py

---------

Co-authored-by: Muhammad Soban Javed <iamsobanjaved@gmai.com>
Co-authored-by: iamsobanjaved <iamsobanjaved@users.noreply.github.com>
Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2024-01-23 16:53:34 +05:00
Kyle McCormick
9c6e765bf6 test: run ./xmodule/ tests with CMS settings (#33534)
Currently, ./xmodule/ unit tests are only run with LMS settings. However,
./common/ and ./xmodule/ are run twice: once with LMS settings and once with
CMS settings.

Just like ./common/ and ./openedx/, the unit tests in ./xmodule/ validate
behavior in both LMS and CMS. So, order to fully test ./xmodule/, we should to
run its tests with CMS settings too.

This will enable us to better validate certain LibraryContentBlocks behaviors
being touched by https://github.com/openedx/edx-platform/pull/33263 which can't
be expressed under LMS settings.

Also in this commit:

* refactor: rename the shards to be clear whether they're running under LMS or CMS
* docs: correct comments regarding conditions under which codejail's
   test_cant_do_something_forbidden is skipped.
* test: update a unit test which was using the now-deleted library_sourced block to use
   library_content block instead.
2023-10-19 10:19:28 -04:00
dependabot[bot]
9e816e9754 build(deps): bump actions/download-artifact from 2 to 3
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 2 to 3.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v2...v3)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-12 13:49:16 +00:00
dependabot[bot]
75bad83da2 build(deps): bump re-actors/alls-green from 1.2.1 to 1.2.2
Bumps [re-actors/alls-green](https://github.com/re-actors/alls-green) from 1.2.1 to 1.2.2.
- [Release notes](https://github.com/re-actors/alls-green/releases)
- [Commits](13b4244b31...05ac9388f0)

---
updated-dependencies:
- dependency-name: re-actors/alls-green
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-10-11 13:11:03 +00:00
Awais Qureshi
5e8decbd8e test: running django42 tests. (#33144) 2023-09-20 11:34:23 -04:00
Usama Sadiq
2ffcc1aa3f build: distinguish unit test and pylint successful checks (#32452)
We will be able to use these composite checks to block
PR merges instead of blocking on every single individual
unit test and pylint check.

Closes: https://github.com/openedx/edx-platform/issues/32238
2023-08-24 17:38:52 +00:00
Matjaz Gregoric
f0331ba813 fix: don't run test check when using GH runners 2023-05-11 09:06:08 +02:00
Matjaz Gregoric
2d2a3100f1 fix: update shard names for GH tests
Github hosted tests weren't working because shards were not up to date.
2023-05-11 08:29:31 +02:00
Tim McCormack
197fef9c2b docs: Various cleanup of outdated comments and docstrings (#31754)
- Remove pylint warning suppression from SHAKE-128 hexdigest calls; these
  are no longer needed as of astroid 2.12.12. For background, see issue
  <https://github.com/PyCQA/pylint/issues/4039>. Also, correct a comment
  that referred to SHAKE-256 instead of SHAKE-128.
- Replace "released" with "beta" in several places where there was a copy
  & paste error in dark_lang. Add mention of `beta_lang` to a docstring
  where it was omitted.
- Remove comment regarding Mongo startup; the code it referred to has since
  been removed.
- Fix typos.
2023-02-14 18:11:57 +00:00
Zubair Shakoor
59a19957a0 Code coverage added (#31630)
* fix: code coverage added

* fix: .coverage folder added

* fix: .coverage folder location changed

* fix: combine folder modified

* fix: combine command updated

* fix: .coverage folder rollback

* fix: path commented

* fix: upload path modified

* fix: path updated to root

* fix: .coveragerc added

* fix: new coverage folder added

* fix: combine path removed

* fix: coverage files path changed

* fix: data files path updated

* fix: .coverage added as path

* fix: coveragerc updated

* fix: env TEST_SUIT rollbacked

* fix: renaming coverage files step added

* fix: ls added for testing

* fix: debugging commands added

* fix: triggeering cov command in tox.in

* fix: cd coverage added

* fix: commands modified

* fix: triggering coverage using command

* fix: removed omitteed files

* fix: removed all omited files

* fix: skipped all omitted files

* fix: source updated to root in coveragern

* fix: coveragerc files rolledback

* fix: source changed to edx-platform

* fix: cms-2 shard name reemoved

* fix: rmeoved coveragee trigger

* fix: removed shard added back

* fix: --cov-config=setup.cfg added

* fix: combining cov paths format changed to comma

* fix: bash changeeed for coveerage

* fix: paths updateed for testing

* fix: coverage combine command fixed

* fix: final check applied

* fix: final coveragee step addeed and tested

* fix: actions version upgraded in unit tests

* fix: testing space separated commands

* fix: coverage data files path removeed from combine command

* fix: coverage combine reports/* addedd

* fix: updated --cov path

* fix: data_file path updated by removing TEST_SUIT variable

---------

Co-authored-by: Awais Qureshi <awais.qureshi@arbisoft.com>
2023-02-03 14:14:09 +05:00
Tim McCormack
b8a34f0c57 build: Set Django version for tests more safely; drop support for non-GHA (#31387)
We have a need to lock the version of Django for production and tests, but
also to test on newer versions of Django so that we can get the repo ready
for long-term-support releases.

We've been doing that by extracting the `django==x.y.z` from the
pip-compiled files and moving it to a django.txt that is then co-installed
but can be overridden during tests. The problem is that this can result
in broken packages.

The approach here is to have `make test-requirements` continue to
ensure a consistent set of packages, and then install a different
Django on top of that in the CI script -- and call `pip check` to make
sure that combination isn't broken.

Adding Django 4.0 to the unit-tests.yml matrix will now correctly
result in this error and a failing job:
`django-splash 1.2.1 has requirement Django<4.0, but you have django 4.0.8.`

The other half of this is to change other CI runners to remove their
ability to control the Django version, since it's complicated to make
this work, and we probably only need it in unit-tests.yml. Convert them
to just use `make test-requirements`.

Also:

- Simplify handling of `pip --src` by setting `PIP_SRC` (rather than our
  own `PIP_SRC_DIR`, which pip ignores because `--src-dir` isn't an option
  that it knows). This is needed to allow `make test-requirements` to do
  the pip calls. An alternative would be to set a pip-options env var for
  the make target to use, but `PIP_SRC` already exists.
- Remove outdated modifications to common_constraints
- Add comment explaining why pylint tests need dev-requirements
2022-12-12 21:45:15 +00:00
Soban Javed
89ce1a52a7 build: run tests for open-release branches on GH hosted runners 2022-11-17 16:40:41 +05:00
Ned Batchelder
f3031d0b2a build(fix): use alls-green to correctly aggregate earlier steps
If a job "needs" earlier jobs, and one of the earlier jobs fails, then
the "needs" job will be marked as Skipped.  A required check that is
skipped doesn't block merging.

The alls-green action has the correct logic to fail the aggregation job
if any of its required jobs fail.
2022-10-06 04:22:42 -07:00
Tim McCormack
2edbdcf7f4 build: Clear out stale dependencies when installing requirements (#31080)
We've been seeing some cross-version caching issues in the
edx-platform-runner unit tests, which apparently run on a "dirty"
environment—the virtualenv does not get cleared out between runs,
which probably improves performance but allows installed dependencies
to "leak" between runs. This results in errors between master and older
open-releases but could also prevent us from noticing missing deps.

By using pip-sync in the new CI Make targets (as we already do for
the regular `make requirements` target) we can ensure that any stale
dependencies from runs by other branches (or older versions of the
code) are removed.

Calling `make local-requirements` at the end of each `*-requirements`
target rather than making it a prerequisite is necessary for using sync,
since otherwise the local reqs would be wiped out.

The `requirements` target is also deduplicated into the newer
`dev-requirements` (aliased to it, with both installing private deps now.)

Adding a prerequisite of `pre-requirements` allows us to simplify some
workflow calls slightly. This ends up being the bulk of the commit by
line count. The pip lockfile also wasn't being used in the Makefile, so
I added that to pre-requirements as well.

Also fix leading whitespace issue in Makefile.
2022-10-03 20:26:40 +00:00
Ned Batchelder
1e0f0e344b build: add a collection step so we can simplify required checks 2022-09-30 12:48:21 -07:00
Ned Batchelder
18fcbc33ef style: make the action syntax more uniform 2022-09-30 12:48:21 -07:00
UsamaSadiq
897cb3617f refactor!: delete common/lib and related usages 2022-09-22 14:16:34 +05:00
Muhammad Soban Javed
d053bba952 Revert "Revert "refactor: move common/lib/capa/capa to xmodule/capa" (#30762)"
This reverts commit 4463ee751d.
2022-07-27 15:36:08 +05:00
Muhammad Soban Javed
4463ee751d Revert "refactor: move common/lib/capa/capa to xmodule/capa" (#30762) 2022-07-21 18:22:15 +05:00
Soban Javed
9eba9f983a refactor!: move common/lib/capa/capa to xmodule/capa
As part of dissolving our sub-projects in edx-platform, we are moving this package under the xmodule directory.
We have fixed all the occurences of import of this package and also fixed all documents related references.
This might break your platform if you have any reference of `import capa` or `from capa import` in your codebase or in any Xblock.

Ref: https://openedx.atlassian.net/browse/BOM-2582
2022-07-19 12:20:04 +05:00
Muhammad Umar Khan
a389a9ff10 Revert "Revert "refactor: move xmodule folder to root"" 2022-06-20 18:20:06 +05:00
Muhammad Umar Khan
d890f06507 Revert "refactor: move xmodule folder to root" 2022-06-20 16:03:48 +05:00
M Umar Khan
a91df0c40f refactor: move xmodule folder to root
- Moving xmodule folder to root as we're dissolving sub-projects of common folder in edx-platform
    - More info: https://openedx.atlassian.net/browse/BOM-2579
- -e common/lib/xmodule has been removed from the requirements as xmodule has itself become the part of edx-platform and not being installed through requirements
- The test files common/lib/xmodule/test_files/ have been removed as they are not being used anymore
2022-06-20 14:33:45 +05:00