Commit graph

123 commits

Author SHA1 Message Date
Nicolas Giard 08dfb82fa4
ci: use setup-node@v3 for run tests workflow 2022-10-11 17:48:32 -04:00
Nicolas Giard 2926d3bd5b
ci: add playwright tests to PR checks 2022-09-21 15:36:07 -04:00
Nicolas Giard 143877ec3d
test: Use Playwright + agenda start/end dates fix (#4471)
* test: agenda-neue - separate timezone controls assertions to allow retries

* test: agenda-neue - use dom query selectors instead of first() / eq()

* test: agenda-neue - playwright

* test: fix playwright setup for ci

* test: playwright - remove safari + fix timezone local

* test: upload playwright report

* test: playwright - fix trace upload

* test

* test: playwright - agenda search

* test: fix startdate timezone

* test: playwright - agenda table events

* test: playwright - remove only filter

* test: remove exit early flag

* test: allow longer tests

* test: agenda materials dialog

* test: agenda filter by area/group

* test: agenda calendar view

* test: agenda settings

* test: jump to day

* test: fix agenda jump to day timezone parse

* test: increase test timeout

* test: remove fail fast

* test: test sharding + increase delay

* test: fixes

* test: use macos image

* test: fixes

* test: agenda color assign + future + live meeting tests

* test: agenda mobile tests

* test: remainder of tests for playwright + optimizations

* test: red line intersection accept close value

* test: add delay for agenda search tests

* chore: cleanup old tests + adapt build workflow

* ci: fix build workflow

* ci: fix build workflow order

* fix: point to playwright floor plan images + readme
2022-09-20 13:33:22 -05:00
Nicolas Giard 82756c31a4
ci: update build workflow to use bash when running python tests 2022-09-08 15:38:13 -04:00
Nicolas Giard 31f659de55
ci: fix build workflow test condition 2022-09-08 15:26:25 -04:00
Nicolas Giard c8c2ca1c81
ci: fix build workflow test condition 2022-09-08 15:06:10 -04:00
Nicolas Giard 56bd75a4b0
ci: add ignore lower coverage flag to build workflow 2022-09-08 14:55:36 -04:00
Nicolas Giard 1dedeac83e
ci: add cypress screenshots to build artifacts 2022-09-07 21:04:16 -04:00
Nicolas Giard 131c4d78d4
ci: run cypress modern on macos 2022-09-07 15:33:05 -04:00
Nicolas Giard c5d11aafb9
ci: cypress - run vite preview in background 2022-09-07 14:39:04 -04:00
Nicolas Giard 9d055f8dd8
test: add agenda-neue cypress tests (#4293)
* fix: move vue app to parent dir

* test: prepare vue for cypress testing

* test: add basic cypress test for vue app

* test: add agenda-neue header tests

* test: meeting generator for cypress tests (wip)

* test: agenda-neue meeting nav + settings button

* test: agenda-neue check settings button position against viewport size

* test: agenda-neue fix viewport + add schedule list header tests

* test: agenda-neue timezone tests + future meeting template

* test: agenda-neue add test floor plan image fixtures

* test: floor-plan-neue - handle floor plan images

* test: floor-plan-neue room selection + pin drop tests

* test: floor-plan-neue - test all viewports

* test: floor-plan-neue add missing header tests

* test: agenda-neue - generate areas + groups

* test: agenda-neue - test filter areas + groups dialog

* test: agenda-neue code cleanup + generate schedule (wip)

* test: agenda-neue - generate schedule (wip)

* test: agenda-neue - generate schedule + test settings dialog (wip)

* test: agenda-neue - settings timezone controls

* test: agenda-neue - settings toggles + agenda table headers tests

* test: agenda-neue - table events + memory fixes

* test - agenda-neue - table events remaining columns tests

* test: agenda-neue - meeting materials dialog + future schedule list table buttons

* test: agenda-neue - remove skips

* test: agenda-neue - search

* test: agenda-neue - remove skips

* test: agenda-neue - use random seed for deterministic results

* test: agenda-neue - set constant clock

* test: add percy to cypress + upgrade cypress

* test: agenda-neue - jump to day tests

* test: agenda-neue - add to calendar tests

* test: agenda-neue - add pick sessions tests

* test: agenda-neue - calendar view tests

* test: agenda-neue - color assignment tests

* test: agenda-neue - skip test not supported in firefox/safari

* test: agenda-neue - live sessions tests

* test: agenda-neue - smaller screens tests

* chore: update workflows to handle modern + legacy cypress tests

* test: fix legacy agenda weekview test + cypress legacy config
2022-09-07 14:14:12 -04:00
Nicolas Giard 41ae0cfac1
ci: update baseline coverage on build + new file URL (#4365) 2022-08-25 09:58:16 -05:00
Jennifer Richards bacd54477b
ci: fix filename of MQ broker workflow YAML (#4354) 2022-08-22 15:28:58 -05:00
Jennifer Richards 280629e061
ci: fix repo used for container builds (#4353)
* doc: change /a/docker/datatracker-cel to .../datatracker

* ci: remove debug repo from build workflows
2022-08-22 15:18:04 -05:00
Jennifer Richards 3705bedfcd
feat: Celery support and asynchronous draft submission API (#4037)
* ci: add Dockerfile and action to build celery worker image

* ci: build celery worker on push to jennifer/celery branch

* ci: also build celery worker for main branch

* ci: Add comment to celery Dockerfile

* chore: first stab at a celery/rabbitmq docker-compose

* feat: add celery configuration and test task / endpoint

* chore: run mq/celery containers for dev work

* chore: point to ghcr.io image for celery worker

* refactor: move XML parsing duties into XMLDraft

Move some PlaintextDraft methods into the Draft base class and
implement for the XMLDraft class. Use xml2rfc code from ietf.submit
as a model for the parsing.

This leaves some mismatch between the PlaintextDraft and the Draft
class spec for the get_author_list() method to be resolved.

* feat: add api_upload endpoint and beginnings of async processing

This adds an api_upload() that behaves analogously to the api_submit()
endpoint. Celery tasks to handle asynchronous processing are added but
are not yet functional enough to be useful.

* perf: index Submission table on submission_date

This substantially speeds up submission rate threshold checks.

* feat: remove existing files when accepting a new submission

After checking that a submission is not in progress, remove any files
in staging that have the same name/rev with any extension. This should
guard against stale files confusing the submission process if the
usual cleanup fails or is skipped for some reason.

* refactor: make clear that deduce_group() uses only the draft name

* refactor: extract only draft name/revision in clean() method

Minimizing the amount of validation done when accepting a file. The
data extraction will be moved to asynchronous processing.

* refactor: minimize checks and data extraction in api_upload() view

* ci: fix dockerfiles to match sandbox testing

* ci: tweak celery container docker-compose settings

* refactor: clean up Draft parsing API and usage

  * remove get_draftname() from Draft api; set filename during init
  * further XMLDraft work
    - remember xml_version after parsing
    - extract filename/revision during init
    - comment out long broken get_abstract() method
  * adjust form clean() method to use changed API

* feat: flesh out async submission processing

First basically working pass!

* feat: add state name for submission being validated asynchronously

* feat: cancel submissions that async processing can't handle

* refactor: simplify/consolidate async tasks and improve error handling

* feat: add api_submission_status endpoint

* refactor: return JSON from submission api endpoints

* refactor: reuse cancel_submission method

* refactor: clean up error reporting a bit

* feat: guard against cancellation of a submission while validating

Not bulletproof but should prevent

* feat: indicate that a submission is still being validated

* fix: do not delete submission files after creating them

* chore: remove debug statement

* test: add tests of the api_upload and api_submission_status endpoints

* test: add tests and stubs for async side of submission handling

* fix: gracefully handle (ignore) invalid IDs in async submit task

* test: test process_uploaded_submission method

* fix: fix failures of new tests

* refactor: fix type checker complaints

* test: test submission_status view of submission in "validating" state

* fix: fix up migrations

* fix: use the streamlined SubmissionBaseUploadForm for api_upload

* feat: show submission history event timestamp as mouse-over text

* fix: remove 'manual' as next state for 'validating' submission state

* refactor: share SubmissionBaseUploadForm code with Deprecated version

* fix: validate text submission title, update a couple comments

* chore: disable requirements updating when celery dev container starts

* feat: log traceback on unexpected error during submission processing

* feat: allow secretariat to cancel "validating" submission

* feat: indicate time since submission on the status page

* perf: check submission rate thresholds earlier when possible

No sense parsing details of a draft that is going to be dropped regardless
of those details!

* fix: create Submission before saving to reduce race condition window

* fix: call deduce_group() with filename

* refactor: remove code lint

* refactor: change the api_upload URL to api/submission

* docs: update submission API documentation

* test: add tests of api_submission's text draft consistency checks

* refactor: rename api_upload to api_submission to agree with new URL

* test: test API documentation and submission thresholds

* fix: fix a couple api_submission view renames missed in templates

* chore: use base image + add arm64 support

* ci: try to fix workflow_dispatch for celery worker

* ci: another attempt to fix workflow_dispatch

* ci: build celery image for submit-async branch

* ci: fix typo

* ci: publish celery worker to ghcr.io/painless-security

* ci: install python requirements in celery image

* ci: fix up requirements install on celery image

* chore: remove XML_LIBRARY references that crept back in

* feat: accept 'replaces' field in api_submission

* docs: update api_submission documentation

* fix: remove unused import

* test: test "replaces" validation for submission API

* test: test that "replaces" is set by api_submission

* feat: trap TERM to gracefully stop celery container

* chore: tweak celery/mq settings

* docs: update installation instructions

* ci: adjust paths that trigger celery worker image  build

* ci: fix branches/repo names left over from dev

* ci: run manage.py check when initializing celery container

Driver here is applying the patches. Starting the celery workers
also invokes the check task, but this should cause a clearer failure
if something fails.

* docs: revise INSTALL instructions

* ci: pass filename to pip update in celery container

* docs: update INSTALL to include freezing pip versions

Will be used to coordinate package versions with the celery
container in production.

* docs: add explanation of frozen-requirements.txt

* ci: build image for sandbox deployment

* ci: add additional build trigger path

* docs: tweak INSTALL

* fix: change INSTALL process to stop datatracker before running migrations

* chore: use ietf.settings for manage.py check in celery container

* chore: set uid/gid for celery worker

* chore: create user/group in celery container if needed

* chore: tweak docker compose/init so celery container works in dev

* ci: build mq docker image

* fix: move rabbitmq.pid to writeable location

* fix: clear password when CELERY_PASSWORD is empty

Setting to an empty password is really not a good plan!

* chore: add shutdown debugging option to celery image

* chore: add django-celery-beat package

* chore: run "celery beat" in datatracker-celery image

* chore: fix docker image name

* feat: add task to cancel stale submissions

* test: test the cancel_stale_submissions task

* chore: make f-string with no interpolation a plain string

Co-authored-by: Nicolas Giard <github@ngpixel.com>
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-08-22 13:29:31 -05:00
Robert Sparks 1dab3b1086
fix: use django 2.2 makemigrations --check (#4351) 2022-08-22 12:37:04 -05:00
Robert Sparks b8aa52f33a
fix: run migrations before looking for missing ones while bulding (#4350) 2022-08-22 11:15:45 -05:00
Robert Sparks 3532a4f28b
test: migrate db before checking for missing migrations. (#4341) 2022-08-18 10:08:31 -05:00
Nicolas Giard f5908475c2
ci: cypress - run datatracker in background 2022-07-13 19:12:33 -04:00
Nicolas Giard e8c37d6f4b
ci: run cypress tests 2022-07-13 18:57:48 -04:00
Nicolas Giard 6f1d7e478e
ci: reduce lock threads workflow to daily schedule 2022-06-22 16:26:21 -04:00
Nicolas Giard ef6c5b7f78
ci: update db nightly build schedule to 0800 UTC 2022-06-20 15:25:28 -04:00
Nicolas Giard df27d0f3cf
ci: update lock threads workflow 2022-06-16 14:26:35 -04:00
Nicolas Giard 3252e75c49
ci: add auto closed issue/pr locking workflow 2022-06-16 14:23:21 -04:00
Nicolas Giard e2034d43f7
ci: change build artifact name 2022-06-15 18:14:44 -04:00
Nicolas Giard 58bb8cd72a
chore: remove full image build poc 2022-06-15 16:02:18 -04:00
Nicolas Giard d825a59e67
ci: build app image with full assets 2022-06-04 17:59:31 -04:00
Nicolas Giard 9983b97a38
ci: remove debug arm64 db workflow 2022-05-26 02:56:12 -04:00
Nicolas Giard e39ace5f60
ci: escape matrix values in nightly db workflow 2022-05-25 22:47:20 -04:00
Nicolas Giard 242626c849
ci: fix nightly db docker workflow typo 2022-05-25 22:46:15 -04:00
Nicolas Giard 816cf8867e
ci: create manifest from nightly db dev images (x64 + arm64) 2022-05-25 22:45:30 -04:00
Nicolas Giard 8c9c198d27
ci: add debug db container build workflow for arm64 2022-05-25 16:50:17 -04:00
Nicolas Giard 6094645e7a
ci: revert db docker image to only amd64 2022-05-24 21:41:59 -04:00
Nicolas Giard 6c1f98aaf8
ci: build multi-arch db image 2022-05-24 21:06:52 -04:00
Nicolas Giard 90c2720031
ci: add arm64 to base docker image platforms to build 2022-05-24 19:50:16 -04:00
Nicolas Giard 0eb9cb4f57
ci: use new app base docker image for tests 2022-05-24 15:59:43 -04:00
Nicolas Giard a7d080b4df
ci: build app base docker image 2022-05-24 15:50:01 -04:00
Nicolas Giard 2b94db2161
ci: run tests on PRs with node + python dependencies changes 2022-05-17 00:17:17 -04:00
Nicolas Giard 636ebd7c81
chore: remove browser dropdown from report bug issue template 2022-05-10 18:51:35 -04:00
Nicolas Giard ed80308225
chore: update issue config links 2022-05-10 18:33:31 -04:00
Nicolas Giard 98108e020b
chore: fix new request issue template filename 2022-05-10 18:31:49 -04:00
Nicolas Giard 58ad3db836
chore: add new feature issue template 2022-05-10 18:30:36 -04:00
Nicolas Giard 7f8c58355f
chore: fix issue template 2022-05-10 18:25:31 -04:00
Nicolas Giard 25390ab896
chore: update issue template wording 2022-05-10 18:24:58 -04:00
Robert Sparks cdd86b9d5e
ci: show makemigrations output (#3932)
* ci: show makemigrations output

* chore: remove unused releasetest settings
2022-05-03 20:54:25 -05:00
Nicolas Giard 3606dbef38
ci: fix makemigrations echo during pr checks + build 2022-05-03 18:31:50 -04:00
Nicolas Giard f778058005
ci: add db migrations checks to tests and build workflows (#3920)
* ci: add db migrations checks to tests and build workflows

* ci: refactor migrations check expression

* chore: rework conditional and exit

Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
2022-05-03 12:06:41 -05:00
Nicolas Giard 7c6917562f
ci: use strict semver for builds + always run pip install on tests 2022-04-21 16:57:29 -04:00
Nicolas Giard 72d1293f09
ci: only set production flags when create release is enabled 2022-04-15 17:41:14 -04:00
Nicolas Giard 2f78a56aed
ci: add production flags during release build 2022-04-15 17:26:42 -04:00