Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
a85db9b
ISSUE-7711: Added api route GET api/.../groups/:id/test_results (#7754)
Naragod Dec 13, 2025
bf483b4
update changelog with new release v2.9.0 (#7765)
donny-wong Dec 18, 2025
6cb94da
issue-7449: Offer suggestions to partially matching OCR scans (#7760)
Naragod Dec 22, 2025
14a6df7
Enabled instructors to assign inactive students to groups (#7757)
Naragod Dec 23, 2025
68df1e5
build(deps): bump json from 2.16.0 to 2.18.0 (#7772)
dependabot[bot] Jan 2, 2026
ccc0e16
build(deps): bump faker from 3.5.2 to 3.5.3 (#7774)
dependabot[bot] Jan 2, 2026
65e4942
Updated autotest seed files to ensure settings follow tester JSON sch…
david-yz-liu Jan 2, 2026
699a04b
build(deps): bump the rjsf group with 2 updates (#7658)
dependabot[bot] Jan 4, 2026
9b1f36c
Updated various Ruby dependencies (#7776)
david-yz-liu Jan 4, 2026
9f9d5ae
Updated autotest settings form UI (#7777)
david-yz-liu Jan 5, 2026
ec80f2c
Moved helpers into GradeEntryFormsController and added tests (#7789)
Karl-Michaud Jan 18, 2026
4342c61
Fixed marking schemes to allow updates for new assessments (#7788)
lizzie-liu Jan 20, 2026
a43f781
Improved UI for batch test runs table (#7790)
david-yz-liu Jan 20, 2026
d302f0a
Added course start_at and end_at date fields (#7783)
freyazjiner Jan 21, 2026
7a2ffa6
Fixed assignment YML export to nest assignment_properties_attributes …
Karl-Michaud Jan 21, 2026
37833a1
build(deps): bump lodash-es from 4.17.21 to 4.17.23 (#7797)
dependabot[bot] Jan 25, 2026
ebf6ded
build(deps): bump lodash from 4.17.21 to 4.17.23 (#7798)
dependabot[bot] Jan 25, 2026
5c3bae9
Prevented duplicate grader assignments on grader CSV upload (#7786)
Naragod Jan 25, 2026
e264f06
[pre-commit.ci] pre-commit autoupdate (#7780)
pre-commit-ci[bot] Jan 25, 2026
88127aa
Refactored grade beakdown summary table to use react-table v8 (#7800)
lizzie-liu Jan 27, 2026
512b472
Hide deactivated/missing students and restore re-enrolled students du…
donny-wong Jan 29, 2026
8d785f1
Merge commit from fork
david-yz-liu Jan 29, 2026
c350ca9
Merge commit from fork
david-yz-liu Jan 29, 2026
ab5289c
update changelog with new release v2.9.1 [ci skip] (#7804)
donny-wong Jan 29, 2026
bf48c35
Changed model validation errors to use built-in error key resolution …
Karl-Michaud Feb 1, 2026
b7f97e5
build(deps): bump the babel group with 4 updates (#7812)
dependabot[bot] Feb 1, 2026
a8ae182
build(deps): bump puma from 7.1.0 to 7.2.0 (#7813)
dependabot[bot] Feb 1, 2026
bc878d5
Modified file handler to recognize zip files as binary (#7802)
lizzie-liu Feb 1, 2026
880576d
add zip extraction limits to config and upload paths
xttraa Feb 2, 2026
7b26d18
Fixed display of inline images in notebook HTML rendering (#7816)
david-yz-liu Feb 3, 2026
6eae3fd
Separate courses into Current and Past sections in homepage (#7801)
freyazjiner Feb 3, 2026
efa5d4e
Update changelog to latest release milestone (#7819)
Naragod Feb 3, 2026
2a70a71
Internationalized custom model validation error messages (#7805)
Karl-Michaud Feb 4, 2026
3ce43d5
[pre-commit.ci] pre-commit autoupdate (#7817)
pre-commit-ci[bot] Feb 4, 2026
139bf0c
Implemented batch TA assignment grading stats (#7787)
Naragod Feb 4, 2026
5ec9f19
build(deps): bump nbconvert from 7.16.6 to 7.17.0 (#7809)
dependabot[bot] Feb 4, 2026
49f1a29
Improved efficiency of repo permissions update (#7791)
Naragod Feb 5, 2026
a51fef5
Prevented long exam template names and improved error messaging (#7796)
Naragod Feb 6, 2026
372d571
Improved rendering of repository URL in student assignment view (#7807)
Karl-Michaud Feb 6, 2026
20f52ee
Added ability for admins to remove instructor from course (#7808)
Naragod Feb 6, 2026
9327666
build(deps-dev): bump webpack from 5.101.0 to 5.105.0 (#7820)
dependabot[bot] Feb 6, 2026
1fbd3fd
Upgraded to markus_exam_matcher v0.4.0 (#7823)
david-yz-liu Feb 8, 2026
0e8abec
Merge remote-tracking branch 'origin/master' into fix-zip-bomb
david-yz-liu Feb 9, 2026
9ed3760
Updated config.rb settings schema and Changelog
david-yz-liu Feb 9, 2026
c1c220f
Normalize i18n keys
david-yz-liu Feb 9, 2026
1ffc4d0
Merge commit from fork
david-yz-liu Feb 9, 2026
35fb723
Rubocop fixes (#7825)
david-yz-liu Feb 11, 2026
f91aebc
Updated Changelog for v2.9.3 Release (#7824)
Naragod Feb 11, 2026
ba63a45
build(deps): bump rails from 8.0.3 to 8.1.2 (#7815)
dependabot[bot] Feb 12, 2026
524457e
build(deps): bump playwright from 1.56.0 to 1.58.0 (#7810)
dependabot[bot] Feb 12, 2026
c1f8546
build(deps): bump js-routes from 2.3.5 to 2.3.6 (#7771)
dependabot[bot] Feb 12, 2026
c607eba
Added course admin action to refresh autotest schema (#7828)
freyazjiner Feb 22, 2026
99bb135
build(deps): bump nokogiri from 1.19.0 to 1.19.1 (#7834)
dependabot[bot] Feb 22, 2026
f23ec80
Update repo permissions on LTI roster sync (#7831)
Naragod Feb 22, 2026
d1a221a
build(deps): bump rack from 3.2.4 to 3.2.5 (#7832)
dependabot[bot] Feb 22, 2026
5c6d519
build(deps): bump ajv from 8.17.1 to 8.18.0 (#7835)
dependabot[bot] Feb 22, 2026
e8de34d
Merge commit from fork
david-yz-liu Feb 24, 2026
27d2e34
Improved performance of next/previous grouping button in grading view…
Naragod Feb 25, 2026
64ff32a
Updated changelog with new release v2.9.4 (#7839)
Naragod Feb 27, 2026
c22d26a
HTML rendering security hardening (#7841)
david-yz-liu Mar 2, 2026
5710961
Replaced MathJax with KaTeX for front-end math rendering (#7848)
david-yz-liu Mar 4, 2026
fb282e0
Upgraded Student Table to react-table v8 (#7826)
lizzie-liu Mar 5, 2026
fe08f7f
build(deps): bump immutable from 5.0.3 to 5.1.5 (#7856)
dependabot[bot] Mar 6, 2026
2636d53
build(deps-dev): bump factory_bot_rails from 6.5.0 to 6.5.1 (#7846)
dependabot[bot] Mar 6, 2026
5cdd259
build(deps): bump minimatch (#7840)
dependabot[bot] Mar 6, 2026
fb10c6b
build(deps): bump i18n from 1.14.7 to 1.14.8 (#7842)
dependabot[bot] Mar 6, 2026
4fa686f
build(deps): bump json from 2.18.0 to 2.18.1 (#7845)
dependabot[bot] Mar 6, 2026
07e39c1
build(deps): bump rubyzip from 3.0.2 to 3.2.2 (#7844)
dependabot[bot] Mar 6, 2026
0b84edd
build(deps): bump dompurify from 3.2.6 to 3.3.2 (#7857)
dependabot[bot] Mar 6, 2026
d31a2ad
Added index on results.submission_id column (#7851)
Naragod Mar 9, 2026
f2bd386
Refactored TA membership queries to leverage existing role_id index (…
david-yz-liu Mar 9, 2026
f2fa290
update changelog with new release v2.9.5 (#7862)
Naragod Mar 11, 2026
b42192b
Added active_record_doctor development gem
david-yz-liu Mar 11, 2026
61c4b09
Added annotaterb dev gem and generated annotations
david-yz-liu Mar 11, 2026
41d3df9
Added pghero gem and added PgHero admin dashboard
david-yz-liu Mar 11, 2026
0a7b6cb
build(deps): bump action_text-trix from 2.1.16 to 2.1.17 (#7864)
dependabot[bot] Mar 22, 2026
e4984e5
build(deps): bump loofah from 2.25.0 to 2.25.1 (#7870)
dependabot[bot] Mar 22, 2026
2f7c118
build(deps): bump json from 2.18.1 to 2.19.2 (#7871)
dependabot[bot] Mar 22, 2026
8956767
Added seed data to assign TAs to groupings and criteria (#7867)
Naragod Mar 22, 2026
21154af
Improved assignment list loading time (#7868)
david-yz-liu Mar 22, 2026
b9cef1b
Modified LTI roster sync to update info for existing users (#7865)
donny-wong Mar 23, 2026
ae1d62f
Fix localization error in batch test run table for in-progress runs (…
Naragod Mar 24, 2026
a1fdee0
build(deps): bump actionpack from 8.1.2 to 8.1.2.1 (#7873)
dependabot[bot] Mar 24, 2026
c80a405
Added Javascript autotester example (#7866)
freyazjiner Mar 27, 2026
6404bf3
build(deps): bump picomatch (#7879)
dependabot[bot] Mar 27, 2026
07e316b
Fixed Assignment Summary table filtering (#7880)
Karl-Michaud Mar 28, 2026
9024184
build(deps): bump serialize-javascript and terser-webpack-plugin (#7883)
dependabot[bot] Mar 28, 2026
aea953a
build(deps-dev): bump ruby-lsp from 0.26.2 to 0.26.9 (#7882)
dependabot[bot] Mar 30, 2026
e596fd4
Added last_updated_by foreign key To Grades and Marks tables (#7878)
lizzie-liu Mar 30, 2026
166782a
build(deps): bump action_text-trix from 2.1.17 to 2.1.18 (#7884)
dependabot[bot] Mar 30, 2026
ccbac44
[pre-commit.ci] pre-commit autoupdate (#7849)
pre-commit-ci[bot] Apr 2, 2026
4d5fccc
Update ResultsController#update_mark to update mark last_updated_by (…
lizzie-liu Apr 4, 2026
a677c7e
build(deps-dev): bump rspec-rails from 8.0.2 to 8.0.4 (#7890)
dependabot[bot] Apr 4, 2026
41c9b72
Fixed dashboard course box link behavior (#7887)
freyazjiner Apr 4, 2026
6e56fd9
build(deps): bump the babel group with 2 updates (#7889)
dependabot[bot] Apr 4, 2026
5594004
build(deps): bump lodash from 4.17.23 to 4.18.1 (#7898)
dependabot[bot] Apr 4, 2026
755f3a2
build(deps): bump lodash-es from 4.17.23 to 4.18.1 (#7895)
dependabot[bot] Apr 4, 2026
fff1baf
build(deps): bump pg from 1.6.2 to 1.6.3 (#7892)
dependabot[bot] Apr 4, 2026
500f0a2
build(deps): bump rails_performance from 1.4.2 to 1.6.0 (#7891)
dependabot[bot] Apr 4, 2026
90dbbe0
Added i18n-tasks health pre-commit hook for locale file changes (#7894)
Karl-Michaud Apr 5, 2026
b080f6e
Improved assignment summary loading time (#7899)
david-yz-liu Apr 6, 2026
af56e85
Add missing PR reference for #7869 in changelog (#7901)
Naragod Apr 7, 2026
7cdf6ce
Update changelog with new release v2.9.6 [ci skip] (#7905)
donny-wong Apr 8, 2026
c30c0d1
[pre-commit.ci] pre-commit autoupdate (#7900)
pre-commit-ci[bot] Apr 9, 2026
28089e5
Improved loading time of Admin Users table (#7897)
Naragod Apr 17, 2026
2806ae4
Added JSON format to grade entry forms show API endpoint (#7886)
Naragod Apr 17, 2026
39a3e7e
build(deps): bump dompurify from 3.3.2 to 3.4.0 (#7906)
dependabot[bot] Apr 17, 2026
9695e16
build(deps-dev): bump addressable from 2.8.7 to 2.9.0 (#7904)
dependabot[bot] Apr 17, 2026
51d085c
build(deps): bump rack-session from 2.1.1 to 2.1.2 (#7903)
dependabot[bot] Apr 17, 2026
8bbae83
Refactored tables to cache column definitions (#7910)
david-yz-liu Apr 18, 2026
929c2b2
build(deps): bump rmagick from 6.1.4 to 6.2.0 (#7888)
dependabot[bot] Apr 18, 2026
3b47200
Updated Docker dependencies (#7911)
david-yz-liu Apr 19, 2026
3fdc9cc
Added python3.13-dev to Dockerfile for ARM64 wheel builds (#7912)
Naragod Apr 21, 2026
f54d1ba
build(deps): bump nbconvert from 7.17.0 to 7.17.1 (#7913)
dependabot[bot] Apr 23, 2026
21f0221
Added term-based suffixes to course names created via LTI to ensure u…
donny-wong Apr 23, 2026
303bea2
Fixed postgres version mismatch between rails and database docker ima…
donny-wong Apr 24, 2026
6c1fb65
Improved performance of Table component (#7919)
david-yz-liu Apr 26, 2026
24aafcd
Updated GitHub Actions dependencies and added Dependabot config for q…
david-yz-liu Apr 26, 2026
b7b6099
Fixed filter Canvas Test Student from roster sync (#7926)
donny-wong May 1, 2026
188eb0c
build(deps-dev): bump bootsnap from 1.18.6 to 1.24.0 (#7923)
dependabot[bot] May 1, 2026
5cd5098
build(deps): bump erb from 6.0.2 to 6.0.4 (#7918)
dependabot[bot] May 1, 2026
cb5a389
build(deps): bump faker from 3.5.3 to 3.8.0 (#7921)
dependabot[bot] May 1, 2026
65f6881
[pre-commit.ci] pre-commit autoupdate (#7932)
pre-commit-ci[bot] May 9, 2026
38dad52
build(deps-dev): bump brakeman from 7.1.0 to 8.0.4 (#7929)
dependabot[bot] May 9, 2026
0537ff7
build(deps): bump fast-uri from 3.1.0 to 3.1.2 (#7939)
dependabot[bot] May 9, 2026
eefa9b9
build(deps): bump nokogiri from 1.19.2 to 1.19.3 (#7935)
dependabot[bot] May 9, 2026
7d88472
build(deps): bump net-imap from 0.6.2 to 0.6.4 (#7933)
dependabot[bot] May 9, 2026
1a2b28f
build(deps-dev): bump shoulda-matchers from 6.5.0 to 7.0.1 (#7928)
dependabot[bot] May 9, 2026
3ad5f1b
build(deps): bump playwright from 1.58.0 to 1.59.0 (#7931)
dependabot[bot] May 9, 2026
7fa40d3
build(deps-dev): bump binding_of_caller from 1.0.1 to 2.0.0 (#7924)
dependabot[bot] May 9, 2026
e20cb2f
build(deps-dev): bump @babel/plugin-transform-modules-systemjs (#7940)
dependabot[bot] May 9, 2026
77ad4c1
Updated react-loader-spinner to v8.0.2 (#7941)
david-yz-liu May 9, 2026
5129c7e
Updated pdfjs-dist to v5.6.205 (#7942)
david-yz-liu May 9, 2026
4b9996c
build(deps): bump the fortawesome group across 1 directory with 5 upd…
dependabot[bot] May 9, 2026
a0d3595
Replaced SCSS @import with @use to remove duplication (#7943)
david-yz-liu May 9, 2026
cc4d04e
Included due date in LTI assessment sync (#7872)
Naragod May 14, 2026
56a2c42
Added rake task to backfill start and end course dates (#7925)
Naragod May 14, 2026
7b6d74f
Fixed remark request display of original result's total mark (#7945)
donny-wong May 15, 2026
8f8984a
Fixed flaky git-hooks tests (#7950)
david-yz-liu May 15, 2026
4c0313c
Replaced custom HTMLElement class methods with native versions (#7951)
david-yz-liu May 16, 2026
b4f99cf
test: Added tests for GradersController#grader_groupings_mapping (#7946)
YheChen May 16, 2026
36ad6e2
Moved annotation-related Javascript to be bundled with webpack (#7953)
david-yz-liu May 16, 2026
c561bd5
Upgraded react-jsonschema-form to v6.5.2 (#7954)
david-yz-liu May 17, 2026
1068d94
Added tests to fully cover GradersController#grader_criteria_mapping …
mrafie1 May 17, 2026
ae36414
Reviewed and updated CSP rules (#7956)
david-yz-liu May 17, 2026
d6b4e3f
build(deps): bump pghero from 3.7.0 to 3.8.0 (#7930)
dependabot[bot] May 17, 2026
b481a10
Moved all CSS builds into webpack pipeline (#7957)
david-yz-liu May 18, 2026
72d68c0
Fixed flaky test in grade_entry_student_spec.rb (#7958)
danielrafailov1 May 18, 2026
8ad45f4
Added test cases for GroupsController#global_actions (#7955)
akarki2005 May 20, 2026
26f0f60
Rrender (hidden) label for assignments according to visibility settin…
philipkukulak May 21, 2026
16ca6a6
Merge branch 'master' into release_2.10.0
May 22, 2026
17f84cf
update markus version
May 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
65 changes: 65 additions & 0 deletions .annotaterb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
:position: before
:position_in_additional_file_patterns: before
:position_in_class: before
:position_in_factory: before
:position_in_fixture: before
:position_in_routes: before
:position_in_serializer: before
:position_in_test: before
:classified_sort: true
:exclude_controllers: true
:exclude_factories: true
:exclude_fixtures: true
:exclude_helpers: true
:exclude_scaffolds: true
:exclude_serializers: true
:exclude_sti_subclasses: false
:exclude_tests: true
:force: false
:format_markdown: false
:format_rdoc: false
:format_yard: false
:frozen: false
:grouped_polymorphic: false
:ignore_model_sub_dir: false
:ignore_unknown_models: false
:include_version: false
:show_check_constraints: false
:show_complete_foreign_keys: false
:show_foreign_keys: true
:show_indexes: true
:show_indexes_include: false
:simple_indexes: false
:sort: false
:timestamp: false
:trace: false
:with_comment: true
:with_column_comments: true
:with_table_comments: true
:position_of_column_comment: :with_name
:active_admin: false
:command:
:debug: false
:hide_default_column_types: ''
:hide_limit_column_types: ''
:timestamp_columns:
- created_at
- updated_at
:ignore_columns:
:ignore_routes:
:ignore_multi_database_name: false
:models: true
:routes: false
:skip_on_db_migrate: false
:target_action: :do_annotations
:wrapper:
:wrapper_close: 'rubocop:enable Layout/LineLength, Lint/RedundantCopDisableDirective'
:wrapper_open: 'rubocop:disable Layout/LineLength, Lint/RedundantCopDisableDirective'
:classes_default_to_s: []
:additional_file_patterns: []
:model_dir:
- app/models
:require: []
:root_dir:
- ''
50 changes: 30 additions & 20 deletions .dockerfiles/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,38 +1,47 @@
FROM ubuntu:jammy AS base
FROM ubuntu:24.04 AS base

ARG NODE_MAJOR=20
ARG BUNDLER_VERSION='2.4.13'
ARG RUBY_VERSION='3.3.4'
ARG NODE_MAJOR=24
ARG BUNDLER_VERSION='4.0.10'
ARG RUBY_VERSION='3.4.9'
ARG USER=markus

# Required in order to ensure bind-mounts are owned by the correct user inside the container
# this is NOT required when using docker-desktop since that handles uid mappings differently.
# Set this to the same UID as the user that owns the Markus files on the host machine.
ARG UID=1001

# Remove ubuntu user, added in the 23.04 image
RUN userdel -r ubuntu

# Create the user that runs the app
RUN useradd -m -u $UID -s /bin/bash $USER

# Set up the correct node version for later installation
ADD https://deb.nodesource.com/setup_$NODE_MAJOR.x /tmp/setup_node.sh
RUN sh /tmp/setup_node.sh
# Set up the correct node version AND PostgreSQL repo for later installation
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends wget ca-certificates sudo gnupg lsb-release && \
install -m 0755 -d /etc/apt/keyrings && \
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | gpg --dearmor -o /etc/apt/keyrings/postgresql.gpg && \
echo "deb [signed-by=/etc/apt/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list && \
wget -O /tmp/setup_node.sh https://deb.nodesource.com/setup_$NODE_MAJOR.x && \
sh /tmp/setup_node.sh && \
rm /tmp/setup_node.sh

# Copy the debian package containing system dependencies
COPY markus_1.0_all.deb /

# Install basic system dependencies
# Install basic system dependencies and the specific PG client version
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends /markus_1.0_all.deb && \
rm /tmp/setup_node.sh /markus_1.0_all.deb

# Install Ruby (we use ruby-install to configure the installed ruby version).
RUN DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends wget ca-certificates sudo && \
wget https://github.com/postmodern/ruby-install/releases/download/v0.9.3/ruby-install-0.9.3.tar.gz && \
tar -xzvf ruby-install-0.9.3.tar.gz && \
cd ruby-install-0.9.3/ && \
make install && \
ruby-install --update && \
ruby-install --system ruby $RUBY_VERSION
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends \
/markus_1.0_all.deb \
postgresql-client-17 && \
rm /markus_1.0_all.deb

# Install Ruby from precompiled binaries.
# See https://github.com/jdx/ruby
RUN ARCH=$(uname -m | sed 's/x86_64/x86_64_linux/;s/aarch64/arm64_linux/') && \
wget -O /tmp/ruby.tar.gz https://github.com/jdx/ruby/releases/download/$RUBY_VERSION/ruby-$RUBY_VERSION.$ARCH.tar.gz && \
tar --strip-components=1 -C /usr/local -xzf /tmp/ruby.tar.gz && \
rm /tmp/ruby.tar.gz

# Enable reading of PDF files with imagemagick
RUN sed -ri 's/(rights=")none("\s+pattern="PDF")/\1read\2/' /etc/ImageMagick-6/policy.xml
Expand Down Expand Up @@ -81,6 +90,7 @@ RUN apt-get update -qq && \
DEBIAN_FRONTEND=noninteractive add-apt-repository -y ppa:deadsnakes/ppa && \
DEBIAN_FRONTEND=noninteractive apt-get install -yq --no-install-recommends openssh-server \
python3.13 \
python3.13-dev \
python3.13-venv \
equivs \
libjemalloc2
Expand Down Expand Up @@ -133,7 +143,7 @@ ENV RAILS_ENV=production
ENV NODE_ENV=production

# Install gems
RUN SECRET_KEY_BASE=1 bundle install --deployment
RUN SECRET_KEY_BASE=1 BUNDLE_DEPLOYMENT=1 bundle install

# Precompile assets
RUN SECRET_KEY_BASE=1 NO_SCHEMA_VALIDATE=true NO_INIT_SCHEDULER=true PGDATABASE=dummy bundle exec rails assets:precompile
Expand Down
3 changes: 0 additions & 3 deletions .dockerfiles/entrypoint-dev-rails.sh
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,5 @@ sed -i -e :a -e '/^\n*$/{$d;N;};/\n$/ba' /app/db/structure.sql

rm -f ./tmp/pids/server.pid

# cssbundling-rails development command
npm run build-dev:css &

# Then exec the container's main process (what's set as CMD in the Dockerfile or compose.yaml).
exec "$@"
4 changes: 4 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: quarterly
- package-ecosystem: bundler
directory: "/"
schedule:
Expand Down
48 changes: 28 additions & 20 deletions .github/workflows/test_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ on:
jobs:
test_rspec:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
services:
postgres:
image: postgres:14
image: postgres:17
env:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: postgres
Expand Down Expand Up @@ -42,13 +42,20 @@ jobs:
contents: read
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Add PostgreSQL apt repository
run: |
sudo apt-get install -y curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
sudo sh -c 'echo "deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
- name: Install and cache system dependencies
uses: awalsh128/cache-apt-pkgs-action@latest
with:
packages: |
libpq-dev
cmake
pkg-config
ghostscript
pandoc
imagemagick
Expand All @@ -59,7 +66,7 @@ jobs:
pandoc
poppler-utils
fonts-liberation
libasound2
libasound2t64
libatk-bridge2.0-0
libatk1.0-0
libatspi2.0-0
Expand All @@ -83,38 +90,40 @@ jobs:
libxfixes3
libxrandr2
libxshmfence1
version: 1.0
postgresql-client-17
version: 1.0.2
# Packages 'fonts-liberation' and onward are needed for playwright's chromium installation.
# The list was taken from: https://github.com/microsoft/playwright/blob/main/packages/playwright-core/src/server/registry/nativeDeps.ts#L37-L63
# libasound2 renamed to libasound2t64 in Ubuntu 24.04
- name: Set up ruby and cache gems
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby-3.3
ruby-version: ruby-3.4
bundler-cache: true
- name: Set up node and cache packages
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 18
node-version: 24
cache: npm
- name: Install npm packages
run: npm ci
- name: Install python
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Get pip cache dir
id: pip-cache
run: |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT
- name: Cache pip
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ${{ steps.pip-cache.outputs.dir }}
key: ${{ runner.os }}-pip-${{ hashFiles('requirements-jupyter.txt') }}-${{ hashFiles('requirements-scanner.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Cache playwright's installation of Chromium
uses: actions/cache@v4
uses: actions/cache@v5
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('requirements-jupyter.txt') }}
Expand All @@ -132,9 +141,7 @@ jobs:
sudo sed -ri 's/(rights=")none("\s+pattern="PDF")/\1read\2/' /etc/ImageMagick-6/policy.xml
cp config/database.yml.ci config/database.yml
- name: Build assets
run: |
bundle exec rake javascript:build
bundle exec rake css:build
run: bundle exec rake javascript:build
- name: Set up database
run: bundle exec rails db:migrate
- name: Install chromedriver
Expand All @@ -159,7 +166,7 @@ jobs:

test_jest:
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
services:
redis:
image: redis
Expand All @@ -174,15 +181,16 @@ jobs:
permissions:
contents: read
env:
BUNDLE_WITHOUT: development:production:console:unicorn
RAILS_ENV: test
NODE_ENV: test
steps:
- name: Checkout repo
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Set up ruby and cache gems
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby-3.3
ruby-version: ruby-3.4
bundler-cache: true
- name: Configure server
run: |
Expand All @@ -196,9 +204,9 @@ jobs:
run: |
bundle exec rake javascript:build
- name: Set up node and cache packages
uses: actions/setup-node@v4
uses: actions/setup-node@v6
with:
node-version: 18
node-version: 24
cache: npm
- name: Install npm packages
run: npm ci
Expand All @@ -215,7 +223,7 @@ jobs:
finish:
needs: [test_rspec, test_jest]
if: github.event.pull_request.draft == false
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
pull-requests: write
steps:
Expand Down
22 changes: 15 additions & 7 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,12 @@ repos:
- id: end-of-file-fixer
- id: trailing-whitespace
- repo: https://github.com/rbubley/mirrors-prettier
rev: v3.7.3
rev: v3.8.3
hooks:
- id: prettier
types_or: [javascript, jsx, css, scss, html]
- repo: https://github.com/thibaudcolas/pre-commit-stylelint
rev: v16.26.1
rev: v17.10.0
hooks:
- id: stylelint
additional_dependencies: [
Expand All @@ -39,7 +39,7 @@ repos:
app/assets/stylesheets/common/_reset.scss
)$
- repo: https://github.com/rubocop/rubocop
rev: v1.81.7
rev: v1.86.1
hooks:
- id: rubocop
args: ["--autocorrect"]
Expand All @@ -53,11 +53,11 @@ repos:
)$
additional_dependencies:
- rubocop-rails:2.33.4
- rubocop-performance:1.23.0
- rubocop-factory_bot:2.26.1
- rubocop-performance:1.26.1
- rubocop-factory_bot:2.28.0
- rubocop-rspec:3.2.0
- rubocop-rspec_rails:2.30.0
- rubocop-capybara:2.21.0
- rubocop-rspec_rails:2.32.0
- rubocop-capybara:2.22.1
- repo: local
hooks:
- id: erb_lint
Expand All @@ -73,6 +73,14 @@ repos:
)$
additional_dependencies:
- erb_lint:0.9.0
- id: i18n-tasks-health
name: i18n-tasks health
entry: i18n-tasks health
language: ruby
files: config/locales/
pass_filenames: false
additional_dependencies:
- i18n-tasks

exclude: vendor

Expand Down
Loading
Loading