Skip to content

Commit dbac880

Browse files
Merge branch 'main' into beacons-regenerate
2 parents a4dccb9 + 36758e0 commit dbac880

25 files changed

+226
-450
lines changed

.github/workflows/deploy-production.yml

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,38 +6,38 @@ on:
66
jobs:
77
deploy-production:
88
runs-on: ubuntu-latest
9-
9+
1010
steps:
11-
- name: Checkout code
12-
uses: actions/checkout@v6
11+
- name: Checkout code
12+
uses: actions/checkout@v6
1313

14-
- name: Set up Ruby
15-
uses: ruby/setup-ruby@v1
16-
with:
17-
ruby-version: '3.4.8'
18-
bundler-cache: true
14+
- name: Set up Ruby
15+
uses: ruby/setup-ruby@v1
16+
with:
17+
ruby-version: "4.0.1"
18+
bundler-cache: true
1919

20-
- name: Install Kamal
21-
run: gem install kamal
20+
- name: Install Kamal
21+
run: gem install kamal
2222

23-
- name: Set up SSH key
24-
run: |
25-
mkdir -p ~/.ssh
26-
echo "${{ secrets.PRODUCTION_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_production.pem
27-
chmod 600 ~/.ssh/skillrx_web_production.pem
23+
- name: Set up SSH key
24+
run: |
25+
mkdir -p ~/.ssh
26+
echo "${{ secrets.PRODUCTION_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_production.pem
27+
chmod 600 ~/.ssh/skillrx_web_production.pem
2828
29-
- name: Deploy to production with Kamal
30-
env:
31-
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
32-
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
33-
DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
34-
SECRET_KEY_BASE: ${{ secrets.PRODUCTION_SECRET_KEY_BASE }}
35-
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
36-
AWS_ACCESS_KEY_ID: ${{ secrets.PRODUCTION_AWS_ACCESS_KEY_ID }}
37-
AWS_SECRET_ACCESS_KEY: ${{ secrets.PRODUCTION_AWS_SECRET_ACCESS_KEY }}
38-
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_NAME }}
39-
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_KEY }}
40-
SCOUT_KEY: ${{ secrets.PRODUCTION_SCOUT_KEY }}
41-
SCOUT_LOGS_INGEST_KEY: ${{ secrets.PRODUCTION_SCOUT_LOGS_INGEST_KEY }}
42-
run: |
43-
bin/kamal deploy -d production --skip-push
29+
- name: Deploy to production with Kamal
30+
env:
31+
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
32+
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
33+
DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
34+
SECRET_KEY_BASE: ${{ secrets.PRODUCTION_SECRET_KEY_BASE }}
35+
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
36+
AWS_ACCESS_KEY_ID: ${{ secrets.PRODUCTION_AWS_ACCESS_KEY_ID }}
37+
AWS_SECRET_ACCESS_KEY: ${{ secrets.PRODUCTION_AWS_SECRET_ACCESS_KEY }}
38+
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_NAME }}
39+
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_KEY }}
40+
SCOUT_KEY: ${{ secrets.PRODUCTION_SCOUT_KEY }}
41+
SCOUT_LOGS_INGEST_KEY: ${{ secrets.PRODUCTION_SCOUT_LOGS_INGEST_KEY }}
42+
run: |
43+
bin/kamal deploy -d production --skip-push

.github/workflows/deploy-staging.yml

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ name: Deploy to Staging
22

33
on:
44
push:
5-
branches: [ main ]
5+
branches: [main]
66
workflow_dispatch:
77

88
jobs:
@@ -12,38 +12,38 @@ jobs:
1212
concurrency:
1313
group: deploy-staging
1414
cancel-in-progress: false
15-
15+
1616
steps:
17-
- name: Checkout code
18-
uses: actions/checkout@v6
19-
20-
- name: Set up Ruby
21-
uses: ruby/setup-ruby@v1
22-
with:
23-
ruby-version: '3.4.8'
24-
bundler-cache: true
25-
26-
- name: Install Kamal
27-
run: gem install kamal
28-
29-
- name: Set up SSH key
30-
run: |
31-
mkdir -p ~/.ssh
32-
echo "${{ secrets.STAGING_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_staging.pem
33-
chmod 600 ~/.ssh/skillrx_web_staging.pem
34-
35-
- name: Deploy to staging with Kamal
36-
env:
37-
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
38-
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
39-
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
40-
SECRET_KEY_BASE: ${{ secrets.STAGING_SECRET_KEY_BASE }}
41-
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
42-
AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AWS_ACCESS_KEY_ID }}
43-
AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AWS_SECRET_ACCESS_KEY }}
44-
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_NAME }}
45-
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_KEY }}
46-
SCOUT_KEY: ${{ secrets.STAGING_SCOUT_KEY }}
47-
SCOUT_LOGS_INGEST_KEY: ${{ secrets.STAGING_SCOUT_LOGS_INGEST_KEY }}
48-
run: |
49-
bin/kamal deploy -d staging
17+
- name: Checkout code
18+
uses: actions/checkout@v6
19+
20+
- name: Set up Ruby
21+
uses: ruby/setup-ruby@v1
22+
with:
23+
ruby-version: "4.0.1"
24+
bundler-cache: true
25+
26+
- name: Install Kamal
27+
run: gem install kamal
28+
29+
- name: Set up SSH key
30+
run: |
31+
mkdir -p ~/.ssh
32+
echo "${{ secrets.STAGING_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_staging.pem
33+
chmod 600 ~/.ssh/skillrx_web_staging.pem
34+
35+
- name: Deploy to staging with Kamal
36+
env:
37+
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
38+
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
39+
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
40+
SECRET_KEY_BASE: ${{ secrets.STAGING_SECRET_KEY_BASE }}
41+
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
42+
AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AWS_ACCESS_KEY_ID }}
43+
AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AWS_SECRET_ACCESS_KEY }}
44+
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_NAME }}
45+
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_KEY }}
46+
SCOUT_KEY: ${{ secrets.STAGING_SCOUT_KEY }}
47+
SCOUT_LOGS_INGEST_KEY: ${{ secrets.STAGING_SCOUT_LOGS_INGEST_KEY }}
48+
run: |
49+
bin/kamal deploy -d staging

.ruby-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
ruby-3.4.8
1+
ruby-4.0.1

.tool-versions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
ruby 3.4.8
1+
ruby 4.0.1
22
nodejs 24.9.0

Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
# For a containerized dev environment, see Dev Containers: https://guides.rubyonrails.org/getting_started_with_devcontainer.html
99

1010
# Make sure RUBY_VERSION matches the Ruby version in .ruby-version
11-
ARG RUBY_VERSION=3.4.8
11+
ARG RUBY_VERSION=4.0.1
1212
FROM docker.io/library/ruby:$RUBY_VERSION-slim AS base
1313

1414
# Rails app lives here

Dockerfile.dev

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Use Ruby 3.x with Alpine as base image for smaller size
2-
FROM ruby:3.4.8-alpine
2+
FROM ruby:4.0.1-alpine
33

44
# Set environment variables for Rails
55
ENV RAILS_ENV=development \
@@ -23,7 +23,8 @@ RUN apk add --no-cache \
2323
ca-certificates \
2424
ttf-freefont \
2525
chromium \
26-
chromium-chromedriver
26+
chromium-chromedriver \
27+
libffi-dev
2728

2829
# Set Chrome environment variables
2930
ENV CHROME_BIN=/usr/bin/chromium-browser \

Gemfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
source "https://rubygems.org"
22

3-
ruby "3.4.8"
3+
ruby "4.0.1"
44

55
gem "active_storage_validations"
66
gem "acts-as-taggable-on", "~> 13.0"

Gemfile.lock

Lines changed: 26 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -119,9 +119,9 @@ GEM
119119
bcrypt_pbkdf (1.1.2)
120120
bigdecimal (4.0.1)
121121
bindex (0.8.1)
122-
bootsnap (1.20.1)
122+
bootsnap (1.22.0)
123123
msgpack (~> 1.2)
124-
brakeman (8.0.1)
124+
brakeman (8.0.2)
125125
racc
126126
builder (3.3.0)
127127
bullet (8.1.0)
@@ -176,8 +176,9 @@ GEM
176176
logger
177177
faraday-net_http (3.4.1)
178178
net-http (>= 0.5.0)
179-
faraday-retry (2.3.2)
179+
faraday-retry (2.4.0)
180180
faraday (~> 2.0)
181+
ffi (1.17.2)
181182
ffi (1.17.2-aarch64-linux-gnu)
182183
ffi (1.17.2-aarch64-linux-musl)
183184
ffi (1.17.2-arm-linux-gnu)
@@ -244,7 +245,7 @@ GEM
244245
actionview (>= 7.0.0)
245246
activesupport (>= 7.0.0)
246247
jmespath (1.6.2)
247-
json (2.18.0)
248+
json (2.18.1)
248249
jwt (2.10.2)
249250
base64
250251
kamal (2.10.1)
@@ -366,7 +367,7 @@ GEM
366367
bigdecimal (>= 3.0)
367368
pagy (9.4.0)
368369
parallel (1.27.0)
369-
parser (3.3.10.0)
370+
parser (3.3.10.1)
370371
ast (~> 2.4.1)
371372
racc
372373
pg (1.6.3)
@@ -473,20 +474,20 @@ GEM
473474
rspec-mocks (~> 3.13)
474475
rspec-support (~> 3.13)
475476
rspec-support (3.13.6)
476-
rubocop (1.81.6)
477+
rubocop (1.84.1)
477478
json (~> 2.3)
478479
language_server-protocol (~> 3.17.0.2)
479480
lint_roller (~> 1.1.0)
480481
parallel (~> 1.10)
481482
parser (>= 3.3.0.2)
482483
rainbow (>= 2.2.2, < 4.0)
483484
regexp_parser (>= 2.9.3, < 3.0)
484-
rubocop-ast (>= 1.47.1, < 2.0)
485+
rubocop-ast (>= 1.49.0, < 2.0)
485486
ruby-progressbar (~> 1.7)
486487
unicode-display_width (>= 2.4.0, < 4.0)
487-
rubocop-ast (1.47.1)
488+
rubocop-ast (1.49.0)
488489
parser (>= 3.3.7.2)
489-
prism (~> 1.4)
490+
prism (~> 1.7)
490491
rubocop-performance (1.26.1)
491492
lint_roller (~> 1.1)
492493
rubocop (>= 1.75.0, < 2.0)
@@ -556,22 +557,22 @@ GEM
556557
stimulus-rails (1.3.4)
557558
railties (>= 6.0.0)
558559
stringio (3.2.0)
559-
tailwindcss-rails (4.3.0)
560+
tailwindcss-rails (4.4.0)
560561
railties (>= 7.0.0)
561562
tailwindcss-ruby (~> 4.0)
562-
tailwindcss-ruby (4.1.11)
563-
tailwindcss-ruby (4.1.11-aarch64-linux-gnu)
564-
tailwindcss-ruby (4.1.11-aarch64-linux-musl)
565-
tailwindcss-ruby (4.1.11-arm64-darwin)
566-
tailwindcss-ruby (4.1.11-x86_64-darwin)
567-
tailwindcss-ruby (4.1.11-x86_64-linux-gnu)
568-
tailwindcss-ruby (4.1.11-x86_64-linux-musl)
563+
tailwindcss-ruby (4.1.18)
564+
tailwindcss-ruby (4.1.18-aarch64-linux-gnu)
565+
tailwindcss-ruby (4.1.18-aarch64-linux-musl)
566+
tailwindcss-ruby (4.1.18-arm64-darwin)
567+
tailwindcss-ruby (4.1.18-x86_64-darwin)
568+
tailwindcss-ruby (4.1.18-x86_64-linux-gnu)
569+
tailwindcss-ruby (4.1.18-x86_64-linux-musl)
569570
thor (1.5.0)
570-
thruster (0.1.17)
571-
thruster (0.1.17-aarch64-linux)
572-
thruster (0.1.17-arm64-darwin)
573-
thruster (0.1.17-x86_64-darwin)
574-
thruster (0.1.17-x86_64-linux)
571+
thruster (0.1.18)
572+
thruster (0.1.18-aarch64-linux)
573+
thruster (0.1.18-arm64-darwin)
574+
thruster (0.1.18-x86_64-darwin)
575+
thruster (0.1.18-x86_64-linux)
575576
timeout (0.6.0)
576577
tsort (0.2.0)
577578
turbo-rails (2.0.23)
@@ -581,7 +582,7 @@ GEM
581582
concurrent-ruby (~> 1.0)
582583
unicode-display_width (3.2.0)
583584
unicode-emoji (~> 4.1)
584-
unicode-emoji (4.1.0)
585+
unicode-emoji (4.2.0)
585586
uniform_notifier (1.18.0)
586587
uri (1.1.1)
587588
useragent (0.16.11)
@@ -606,6 +607,7 @@ PLATFORMS
606607
arm-linux-gnu
607608
arm-linux-musl
608609
arm64-darwin-24
610+
arm64-darwin-25
609611
x86_64-darwin-23
610612
x86_64-darwin-24
611613
x86_64-linux
@@ -666,7 +668,7 @@ DEPENDENCIES
666668
web-console
667669

668670
RUBY VERSION
669-
ruby 3.4.8p72
671+
ruby 4.0.1
670672

671673
BUNDLED WITH
672674
4.0.3

app/assets/stylesheets/application.css

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,12 @@
1010
*
1111
* Note: Tailwind CSS is loaded separately via stylesheet_link_tag in the layout.
1212
*/
13+
* {
14+
box-sizing: border-box;
15+
}
16+
17+
body {
18+
margin: 0;
19+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
20+
background-color: #f9fafb;
21+
}

app/assets/tailwind/application.css

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
@import "tailwindcss";
2+
@import "./components/sidebar.css";
23

34
/* Tom Select Tailwind Styles */
45

@@ -280,15 +281,11 @@ nav.pagy a.gap {
280281

281282
/* Layout Utilities */
282283
.page-container {
283-
min-height: 100vh;
284-
padding: 2rem 0;
284+
@apply min-h-screen py-1;
285285
}
286286

287287
.content-wrapper {
288-
max-width: 1200px;
289-
margin: 0 auto;
290-
padding: 0 1rem;
291-
overflow-x: hidden;
288+
@apply max-w-7xl mx-auto overflow-x-hidden p-4 min-h-screen;
292289
}
293290

294291
.section-spacing {
@@ -517,3 +514,7 @@ nav.pagy a.current {
517514
.table-container table td.actions-col {
518515
white-space: nowrap;
519516
}
517+
518+
.help-text {
519+
@apply mt-2 text-xs text-gray-500 m-0;
520+
}

0 commit comments

Comments
 (0)