From f70cdd17d6d5f4d53b07d737582b71f7f8c477ba Mon Sep 17 00:00:00 2001 From: Matt Webb Date: Thu, 9 Jul 2026 14:00:51 -0700 Subject: [PATCH] Enable GitHub Actions CI Drop the Codecov and RubyGems.org publish steps since this fork won't configure those secrets, and remove the Pages-only docs workflow since GitHub Pages isn't being enabled either. Also pin rdoc below 8, since rdoc 8.0 pulls in rbs (a transitive dep of irb, via railties) whose native extension doesn't build on JRuby, breaking bundle install on that leg of the test matrix. This was already latent since Actions had never actually run before now. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/_test-matrix.yml | 12 --- .github/workflows/docs.yml | 124 ----------------------------- .github/workflows/release.yml | 20 ----- Gemfile | 2 + gemfiles/rails_7.1.gemfile | 1 + gemfiles/rails_7.2.gemfile | 1 + gemfiles/rails_8.0.gemfile | 1 + gemfiles/rails_8.1.gemfile | 1 + 8 files changed, 6 insertions(+), 156 deletions(-) delete mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/_test-matrix.yml b/.github/workflows/_test-matrix.yml index cf1c59cfe..4c7f941d5 100644 --- a/.github/workflows/_test-matrix.yml +++ b/.github/workflows/_test-matrix.yml @@ -8,9 +8,6 @@ on: required: false type: boolean default: false - secrets: - CODECOV_TOKEN: - required: false permissions: contents: read @@ -66,15 +63,6 @@ jobs: if: matrix.ruby-version == '4.0' && matrix.rails-version == 'rails-8.1' run: bundle exec appraisal ${{ matrix.rails-version }} bin/rspec-queue - - name: Upload coverage to Codecov - if: matrix.ruby-version == '4.0' && matrix.rails-version == 'rails-8.1' - uses: codecov/codecov-action@v5 - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - files: ./coverage/coverage.xml - fail_ci_if_error: false - - name: Run the test suite with Faraday v1 if: matrix.ruby-version != '4.0' run: | diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml deleted file mode 100644 index 4d16c724f..000000000 --- a/.github/workflows/docs.yml +++ /dev/null @@ -1,124 +0,0 @@ -name: Deploy docs - -on: - push: - branches: [main] - paths: - - 'docs/**' - - 'lib/tasks/models.rake' - - '.github/workflows/docs.yml' - workflow_dispatch: - -permissions: - contents: read - pages: write - id-token: write - -concurrency: - group: "pages" - cancel-in-progress: false - -jobs: - build: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v6 - with: - fetch-depth: 0 # build-versions.sh needs full history to reach the frozen 1.x docs commit - - - name: Setup Ruby for models guide generation (root Gemfile) - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.3' - bundler-cache: true - - - name: Run models:docs rake task - run: bundle exec rake models:docs - - - name: Install OG image system dependencies (only if missing) - run: | - packages=() - - if command -v vips >/dev/null 2>&1; then - echo "libvips already available: $(vips --version)" - else - packages+=(libvips) - fi - - if fc-list | grep -qi inter; then - echo "Inter fonts already available" - else - packages+=(fonts-inter fonts-inter-variable) - fi - - if [ ${#packages[@]} -gt 0 ]; then - echo "Installing apt packages: ${packages[*]}" - sudo apt-get update -qq - sudo apt-get install -y --no-install-recommends "${packages[@]}" - else - echo "No apt packages needed" - fi - - - name: Cache fonts - uses: actions/cache@v5 - id: cache-fonts - with: - path: | - /usr/share/fonts/truetype/plus-jakarta-sans - ~/.cache/fontconfig - key: ${{ runner.os }}-fonts-v2 - restore-keys: | - ${{ runner.os }}-fonts- - - - name: Install Plus Jakarta Sans for OG image generation - run: | - if [ "${{ steps.cache-fonts.outputs.cache-hit }}" != "true" ]; then - echo "Installing Plus Jakarta Sans..." - wget -q https://github.com/tokotype/PlusJakartaSans/archive/refs/heads/master.zip -O PlusJakartaSans.zip - unzip -q PlusJakartaSans.zip - sudo mkdir -p /usr/share/fonts/truetype/plus-jakarta-sans - sudo cp PlusJakartaSans-master/fonts/ttf/*.ttf /usr/share/fonts/truetype/plus-jakarta-sans/ - rm -rf PlusJakartaSans.zip PlusJakartaSans-master - else - echo "Plus Jakarta Sans cached" - fi - # Always update font cache - sudo fc-cache -fv - # Verify fonts are installed - echo "Verifying fonts:" - fc-list | grep -i inter || echo "Inter font not found" - fc-list | grep -i jakarta || echo "Plus Jakarta Sans not found" - - - name: Setup Ruby for Jekyll build (docs Gemfile) - uses: ruby/setup-ruby@v1 - with: - ruby-version: '3.3' - bundler-cache: true - working-directory: docs - cache-version: 3 - - name: Setup Pages - id: pages - uses: actions/configure-pages@v5 - - - name: Build versioned docs (1.x at /, 2.0 dev at /next/) - run: docs/bin/build-versions.sh - env: - JEKYLL_ENV: production - BASE: ${{ steps.pages.outputs.base_path }} - - - name: Upload artifact - uses: actions/upload-pages-artifact@v4 - with: - path: docs/_site - - deploy: - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} - runs-on: ubuntu-latest - needs: build - steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v4 diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index de0ea96cf..d73a13ab1 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -88,23 +88,3 @@ jobs: env: GEM_HOST_API_KEY: "Bearer ${{ secrets.GITHUB_TOKEN }}" OWNER: ${{ github.repository_owner }} - - - name: Publish to RubyGems - if: steps.check_version.outputs.version_changed == 'true' - run: | - mkdir -p $HOME/.gem - touch $HOME/.gem/credentials - chmod 0600 $HOME/.gem/credentials - printf -- "---\n:rubygems_api_key: ${GEM_HOST_API_KEY}\n" > $HOME/.gem/credentials - gem build *.gemspec - output=$(gem push *.gem 2>&1) || { - echo "$output" - if echo "$output" | grep -q "Repushing of gem versions is not allowed"; then - echo "Version already exists, skipping" - exit 0 - else - exit 1 - fi - } - env: - GEM_HOST_API_KEY: "${{ secrets.RUBYGEMS_AUTH_TOKEN }}" diff --git a/Gemfile b/Gemfile index 89356336e..12562db25 100644 --- a/Gemfile +++ b/Gemfile @@ -21,6 +21,8 @@ group :development do # rubocop:disable Metrics/BlockLength gem 'pry', '>= 0.14' gem 'rails' gem 'rake', '>= 13.0' + # rdoc >= 8 depends on rbs, whose native extension doesn't build on JRuby + gem 'rdoc', '< 8' gem 'reline' gem 'rspec', '~> 3.12' gem 'rubocop', '>= 1.0' diff --git a/gemfiles/rails_7.1.gemfile b/gemfiles/rails_7.1.gemfile index 9f306e288..a2ca98c04 100644 --- a/gemfiles/rails_7.1.gemfile +++ b/gemfiles/rails_7.1.gemfile @@ -19,6 +19,7 @@ group :development do gem "pry", ">= 0.14" gem "rails", "~> 7.1.0" gem "rake", ">= 13.0" + gem "rdoc", "< 8" gem "reline" gem "rspec", "~> 3.12" gem "rubocop", ">= 1.0" diff --git a/gemfiles/rails_7.2.gemfile b/gemfiles/rails_7.2.gemfile index 8556ef881..417f4e106 100644 --- a/gemfiles/rails_7.2.gemfile +++ b/gemfiles/rails_7.2.gemfile @@ -19,6 +19,7 @@ group :development do gem "pry", ">= 0.14" gem "rails", "~> 7.2.0" gem "rake", ">= 13.0" + gem "rdoc", "< 8" gem "reline" gem "rspec", "~> 3.12" gem "rubocop", ">= 1.0" diff --git a/gemfiles/rails_8.0.gemfile b/gemfiles/rails_8.0.gemfile index bca7946d6..a65a19eae 100644 --- a/gemfiles/rails_8.0.gemfile +++ b/gemfiles/rails_8.0.gemfile @@ -19,6 +19,7 @@ group :development do gem "pry", ">= 0.14" gem "rails", "~> 8.0.0" gem "rake", ">= 13.0" + gem "rdoc", "< 8" gem "reline" gem "rspec", "~> 3.12" gem "rubocop", ">= 1.0" diff --git a/gemfiles/rails_8.1.gemfile b/gemfiles/rails_8.1.gemfile index 49874b827..dfc68ea8a 100644 --- a/gemfiles/rails_8.1.gemfile +++ b/gemfiles/rails_8.1.gemfile @@ -19,6 +19,7 @@ group :development do gem "pry", ">= 0.14" gem "rails", "~> 8.1.0" gem "rake", ">= 13.0" + gem "rdoc", "< 8" gem "reline" gem "rspec", "~> 3.12" gem "rubocop", ">= 1.0"