Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 30 additions & 30 deletions .github/workflows/deploy-production.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,38 +6,38 @@ on:
jobs:
deploy-production:
runs-on: ubuntu-latest

steps:
- name: Checkout code
uses: actions/checkout@v6
- name: Checkout code
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4.8'
bundler-cache: true
- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "4.0.1"
bundler-cache: true

- name: Install Kamal
run: gem install kamal
- name: Install Kamal
run: gem install kamal

- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.PRODUCTION_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_production.pem
chmod 600 ~/.ssh/skillrx_web_production.pem
- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.PRODUCTION_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_production.pem
chmod 600 ~/.ssh/skillrx_web_production.pem

- name: Deploy to production with Kamal
env:
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
SECRET_KEY_BASE: ${{ secrets.PRODUCTION_SECRET_KEY_BASE }}
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.PRODUCTION_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.PRODUCTION_AWS_SECRET_ACCESS_KEY }}
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_NAME }}
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_KEY }}
SCOUT_KEY: ${{ secrets.PRODUCTION_SCOUT_KEY }}
SCOUT_LOGS_INGEST_KEY: ${{ secrets.PRODUCTION_SCOUT_LOGS_INGEST_KEY }}
run: |
bin/kamal deploy -d production --skip-push
- name: Deploy to production with Kamal
env:
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DATABASE_URL: ${{ secrets.PRODUCTION_DATABASE_URL }}
SECRET_KEY_BASE: ${{ secrets.PRODUCTION_SECRET_KEY_BASE }}
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.PRODUCTION_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.PRODUCTION_AWS_SECRET_ACCESS_KEY }}
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_NAME }}
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.PRODUCTION_AZURE_STORAGE_ACCOUNT_KEY }}
SCOUT_KEY: ${{ secrets.PRODUCTION_SCOUT_KEY }}
SCOUT_LOGS_INGEST_KEY: ${{ secrets.PRODUCTION_SCOUT_LOGS_INGEST_KEY }}
run: |
bin/kamal deploy -d production --skip-push
70 changes: 35 additions & 35 deletions .github/workflows/deploy-staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ name: Deploy to Staging

on:
push:
branches: [ main ]
branches: [main]
workflow_dispatch:

jobs:
Expand All @@ -12,38 +12,38 @@ jobs:
concurrency:
group: deploy-staging
cancel-in-progress: false

steps:
- name: Checkout code
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: '3.4.8'
bundler-cache: true

- name: Install Kamal
run: gem install kamal

- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.STAGING_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_staging.pem
chmod 600 ~/.ssh/skillrx_web_staging.pem

- name: Deploy to staging with Kamal
env:
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
SECRET_KEY_BASE: ${{ secrets.STAGING_SECRET_KEY_BASE }}
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AWS_SECRET_ACCESS_KEY }}
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_NAME }}
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_KEY }}
SCOUT_KEY: ${{ secrets.STAGING_SCOUT_KEY }}
SCOUT_LOGS_INGEST_KEY: ${{ secrets.STAGING_SCOUT_LOGS_INGEST_KEY }}
run: |
bin/kamal deploy -d staging
- name: Checkout code
uses: actions/checkout@v6

- name: Set up Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: "4.0.1"
bundler-cache: true

- name: Install Kamal
run: gem install kamal

- name: Set up SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.STAGING_SSH_PRIVATE_KEY }}" > ~/.ssh/skillrx_web_staging.pem
chmod 600 ~/.ssh/skillrx_web_staging.pem

- name: Deploy to staging with Kamal
env:
KAMAL_REGISTRY_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }}
KAMAL_REGISTRY_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }}
DATABASE_URL: ${{ secrets.STAGING_DATABASE_URL }}
SECRET_KEY_BASE: ${{ secrets.STAGING_SECRET_KEY_BASE }}
RAILS_MASTER_KEY: ${{ secrets.RAILS_MASTER_KEY }}
AWS_ACCESS_KEY_ID: ${{ secrets.STAGING_AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.STAGING_AWS_SECRET_ACCESS_KEY }}
AZURE_STORAGE_ACCOUNT_NAME: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_NAME }}
AZURE_STORAGE_ACCOUNT_KEY: ${{ secrets.STAGING_AZURE_STORAGE_ACCOUNT_KEY }}
SCOUT_KEY: ${{ secrets.STAGING_SCOUT_KEY }}
SCOUT_LOGS_INGEST_KEY: ${{ secrets.STAGING_SCOUT_LOGS_INGEST_KEY }}
run: |
bin/kamal deploy -d staging
2 changes: 1 addition & 1 deletion .ruby-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ruby-3.4.8
ruby-4.0.1
2 changes: 1 addition & 1 deletion .tool-versions
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
ruby 3.4.8
ruby 4.0.1
nodejs 24.9.0
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
# For a containerized dev environment, see Dev Containers: https://guides.rubyonrails.org/getting_started_with_devcontainer.html

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

# Rails app lives here
Expand Down
6 changes: 3 additions & 3 deletions Dockerfile.dev
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Use Ruby 3.x with Alpine as base image for smaller size
FROM ruby:3.4.8-alpine
FROM ruby:4.0.1-alpine

# Set environment variables for Rails
ENV RAILS_ENV=development \
Expand Down Expand Up @@ -43,7 +43,7 @@ VOLUME /app
EXPOSE 3000

# Configure entrypoint to run Rails
ENTRYPOINT ["./bin/docker-entrypoint.dev"]
# ENTRYPOINT ["./bin/docker-entrypoint.dev"]

# Start Rails server by default
CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
# CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"]
5 changes: 3 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source "https://rubygems.org"

ruby "3.4.8"
ruby "4.0.1"

gem "active_storage_validations"
gem "acts-as-taggable-on", "~> 13.0"
Expand All @@ -22,6 +22,7 @@ gem "propshaft"
gem "puma", ">= 5.0"
gem "rack-attack"
gem "rails", "~> 8.1.2"
# gem "rb-inotify", "0.9.10"
gem "reactionview", "~> 0.2.0"
gem "requestjs-rails"
gem "scout_apm"
Expand Down Expand Up @@ -50,7 +51,7 @@ end
group :development do
gem "annotaterb"
gem "bullet"
gem "hotwire-spark"
# gem "hotwire-spark"
gem "letter_opener"

gem "rack-mini-profiler"
Expand Down
Loading