Skip to content

Commit 71c59f2

Browse files
authored
Merge branch 'develop' into issue-1025
2 parents 6565b7c + cb332b0 commit 71c59f2

207 files changed

Lines changed: 3631 additions & 992 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.circleci/config.yml

Lines changed: 34 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
version: 2.1
2+
orbs:
3+
codecov: codecov/codecov@5
24
jobs:
3-
test-ruby27:
5+
test-ruby31:
46
docker:
5-
- image: cimg/ruby:2.7-node
7+
- image: cimg/ruby:3.1-node
68
- image: cimg/mysql:8.0
7-
command: [--default-authentication-plugin=mysql_native_password]
9+
command: [ --default-authentication-plugin=mysql_native_password ]
810
environment:
911
MYSQL_ROOT_HOST: '%'
1012
MYSQL_ROOT_PASSWORD: 'root'
@@ -22,8 +24,8 @@ jobs:
2224
- checkout
2325
- restore_cache:
2426
keys:
25-
- qpixel-ruby27-{{ checksum "Gemfile.lock" }}
26-
- qpixel-ruby27-
27+
- qpixel-ruby31-{{ checksum "Gemfile.lock" }}
28+
- qpixel-ruby31-
2729
- run:
2830
name: Install Bundler & gems
2931
command: |
@@ -34,7 +36,7 @@ jobs:
3436
command: |
3537
bundle clean --force
3638
- save_cache:
37-
key: qpixel-ruby27-{{ checksum "Gemfile.lock" }}
39+
key: qpixel-ruby31-{{ checksum "Gemfile.lock" }}
3840
paths:
3941
- ~/gems
4042
- run:
@@ -56,21 +58,17 @@ jobs:
5658
name: Current revision
5759
command: |
5860
git rev-parse $(git rev-parse --abbrev-ref HEAD)
59-
- run:
60-
name: Coveralls token
61-
command: |
62-
if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo "Skipping coveralls"; else echo "repo_token: $COVERALLS_REPO_TOKEN" > .coveralls.yml; fi
6361
- run:
6462
name: Test
6563
command: |
6664
bundle exec rails test
6765
- store_test_results:
6866
path: "~/qpixel/test/reports"
69-
system-test-ruby27:
67+
system-test-ruby31:
7068
docker:
71-
- image: cimg/ruby:2.7-browsers
69+
- image: cimg/ruby:3.1-browsers
7270
- image: cimg/mysql:8.0
73-
command: [--default-authentication-plugin=mysql_native_password]
71+
command: [ --default-authentication-plugin=mysql_native_password ]
7472
environment:
7573
MYSQL_ROOT_HOST: '%'
7674
MYSQL_ROOT_PASSWORD: 'root'
@@ -88,8 +86,8 @@ jobs:
8886
- checkout
8987
- restore_cache:
9088
keys:
91-
- qpixel-ruby27-{{ checksum "Gemfile.lock" }}
92-
- qpixel-ruby27-
89+
- qpixel-ruby31-{{ checksum "Gemfile.lock" }}
90+
- qpixel-ruby31-
9391
- run:
9492
name: Install Bundler & gems
9593
command: |
@@ -100,7 +98,7 @@ jobs:
10098
command: |
10199
bundle clean --force
102100
- save_cache:
103-
key: qpixel-ruby27-{{ checksum "Gemfile.lock" }}
101+
key: qpixel-ruby31-{{ checksum "Gemfile.lock" }}
104102
paths:
105103
- ~/gems
106104
- run:
@@ -132,9 +130,9 @@ jobs:
132130
path: "~/qpixel/tmp/screenshots"
133131
when: on_fail
134132

135-
test-ruby31:
133+
test-ruby32:
136134
docker:
137-
- image: cimg/ruby:3.1-node
135+
- image: cimg/ruby:3.2-node
138136
- image: cimg/mysql:8.0
139137
command: [ --default-authentication-plugin=mysql_native_password ]
140138
environment:
@@ -154,8 +152,8 @@ jobs:
154152
- checkout
155153
- restore_cache:
156154
keys:
157-
- qpixel-ruby31-{{ checksum "Gemfile.lock" }}
158-
- qpixel-ruby31-
155+
- qpixel-ruby32-{{ checksum "Gemfile.lock" }}
156+
- qpixel-ruby32-
159157
- run:
160158
name: Install Bundler & gems
161159
command: |
@@ -166,7 +164,7 @@ jobs:
166164
command: |
167165
bundle clean --force
168166
- save_cache:
169-
key: qpixel-ruby31-{{ checksum "Gemfile.lock" }}
167+
key: qpixel-ruby32-{{ checksum "Gemfile.lock" }}
170168
paths:
171169
- ~/gems
172170
- run:
@@ -188,19 +186,16 @@ jobs:
188186
name: Current revision
189187
command: |
190188
git rev-parse $(git rev-parse --abbrev-ref HEAD)
191-
- run:
192-
name: Coveralls token
193-
command: |
194-
if [ -z "$COVERALLS_REPO_TOKEN" ]; then echo "Skipping coveralls"; else echo "repo_token: $COVERALLS_REPO_TOKEN" > .coveralls.yml; fi
195189
- run:
196190
name: Test
197191
command: |
198192
bundle exec rails test
199193
- store_test_results:
200194
path: "~/qpixel/test/reports"
201-
system-test-ruby31:
195+
- codecov/upload
196+
system-test-ruby32:
202197
docker:
203-
- image: cimg/ruby:3.1-browsers
198+
- image: cimg/ruby:3.2-browsers
204199
- image: cimg/mysql:8.0
205200
command: [ --default-authentication-plugin=mysql_native_password ]
206201
environment:
@@ -220,8 +215,8 @@ jobs:
220215
- checkout
221216
- restore_cache:
222217
keys:
223-
- qpixel-ruby31-{{ checksum "Gemfile.lock" }}
224-
- qpixel-ruby31-
218+
- qpixel-ruby32-{{ checksum "Gemfile.lock" }}
219+
- qpixel-ruby32-
225220
- run:
226221
name: Install Bundler & gems
227222
command: |
@@ -232,7 +227,7 @@ jobs:
232227
command: |
233228
bundle clean --force
234229
- save_cache:
235-
key: qpixel-ruby31-{{ checksum "Gemfile.lock" }}
230+
key: qpixel-ruby32-{{ checksum "Gemfile.lock" }}
236231
paths:
237232
- ~/gems
238233
- run:
@@ -266,7 +261,7 @@ jobs:
266261

267262
rubocop:
268263
docker:
269-
- image: cimg/ruby:3.1-node
264+
- image: cimg/ruby:3.2-node
270265

271266
working_directory: ~/qpixel
272267

@@ -279,8 +274,8 @@ jobs:
279274
- checkout
280275
- restore_cache:
281276
keys:
282-
- qpixel-ruby31-{{ checksum "Gemfile.lock" }}
283-
- qpixel-ruby31-
277+
- qpixel-ruby32-{{ checksum "Gemfile.lock" }}
278+
- qpixel-ruby32-
284279
- run:
285280
name: Install Bundler & gems
286281
command: |
@@ -291,7 +286,7 @@ jobs:
291286
command: |
292287
bundle clean --force
293288
- save_cache:
294-
key: qpixel-ruby31-{{ checksum "Gemfile.lock" }}
289+
key: qpixel-ruby32-{{ checksum "Gemfile.lock" }}
295290
paths:
296291
- ~/gems
297292
- run:
@@ -301,7 +296,7 @@ jobs:
301296
302297
deploy:
303298
docker:
304-
- image: cimg/ruby:3.1-node
299+
- image: cimg/ruby:3.2-node
305300

306301
working_directory: ~/qpixel
307302

@@ -319,17 +314,15 @@ jobs:
319314
workflows:
320315
test_lint:
321316
jobs:
322-
- test-ruby27
323317
- test-ruby31
324-
- system-test-ruby27
325318
- system-test-ruby31
319+
- test-ruby32
320+
- system-test-ruby32
326321
- rubocop
327322
- deploy:
328323
requires:
329-
- test-ruby27
330-
- test-ruby31
331-
- system-test-ruby27
332-
- system-test-ruby31
324+
- test-ruby32
325+
- system-test-ruby32
333326
- rubocop
334327
filters:
335328
branches:

.gitignore

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,16 @@
99

1010
# Docker environment (production)
1111
docker/env
12+
# mount mysql volume so that its easy to interact with the database outside of the container.
13+
# This also allows persistent database storage
14+
docker/mysql
15+
# allow custom docker-compose files as users might have different needs
16+
docker-compose*.yml
17+
!docker-compose.yml
1218

1319
# Don't track changes to the docker-compose .env file only in project root
1420
/.env
1521

16-
# mount mysql volume so that its easy to interact with the database outside of the container. This also allows persistent database storage
17-
docker/mysql
18-
1922
# Ignore the default SQLite database.
2023
/db/*.sqlite3
2124
/db/*.sqlite3-journal
@@ -29,6 +32,7 @@ coverage/
2932
coverage/*
3033

3134
.idea
35+
.vscode
3236

3337
test/reports
3438

@@ -51,6 +55,9 @@ qpixel-import.tar.gz
5155
# Ignore Vim stuff.
5256
*.swp
5357

58+
# Ignore emacs stuff.
59+
*~
60+
5461
dump.rdb
5562

5663
# Ignore IRB files

Gemfile

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
source 'https://rubygems.org'
2-
ruby '>= 2.7', '< 4'
2+
ruby '>= 3.1', '< 3.3'
33

44
# Essential gems: servers, adapters, Rails + Rails requirements
55
gem 'coffee-rails', '~> 5.0.0'
@@ -9,8 +9,8 @@ gem 'image_processing', '~> 1.12'
99
gem 'jquery-rails', '~> 4.5.0'
1010
gem 'mysql2', '~> 0.5.4'
1111
gem 'puma', '~> 5.6'
12-
gem 'rails', '~> 7.0.0'
13-
gem 'rails-html-sanitizer', '~> 1.4'
12+
gem 'rails', '~> 7.0.8'
13+
gem 'rails-html-sanitizer', '~> 1.6'
1414
gem 'redis', '~> 4.8'
1515
gem 'rotp', '~> 6.2'
1616
gem 'sass-rails', '~> 6.0'
@@ -41,14 +41,15 @@ gem 'will_paginate-bootstrap', '~> 1.0'
4141

4242
# AWS for S3 (image storage) and SES (emails).
4343
gem 'aws-sdk-s3', '~> 1.61', require: false
44+
gem 'aws-sdk-sns', '~> 1.72'
4445
gem 'aws-ses-v4', require: 'aws/ses'
4546

46-
# Task scheduler.
47+
# Task scheduling & maintenance.
48+
gem 'maintenance_tasks', '~> 2.2'
4749
gem 'whenever', '~> 1.0', require: false
4850

4951
# Debugging, linting, testing.
5052
gem 'awesome_print', '~> 1.9'
51-
gem 'coveralls', '~> 0.8', require: false
5253
gem 'rubocop', '~> 1'
5354
gem 'rubocop-rails', '~> 2.15'
5455

@@ -82,6 +83,8 @@ group :test do
8283
gem 'minitest', '~> 5.16.0'
8384
gem 'minitest-ci', '~> 3.4.0'
8485
gem 'rails-controller-testing', '~> 1.0'
86+
gem 'simplecov', '~> 0.21'
87+
gem 'simplecov_json_formatter', '~> 0.1'
8588
gem 'term-ansicolor', '~> 1.7'
8689

8790
gem 'capybara', '~> 3.38'

0 commit comments

Comments
 (0)