Skip to content

Commit

Permalink
feat(actions): switch to upstream CI templates
Browse files Browse the repository at this point in the history
  • Loading branch information
laugmanuel committed Feb 15, 2024
1 parent e8273a6 commit 9fd2bf4
Show file tree
Hide file tree
Showing 7 changed files with 46 additions and 86 deletions.
116 changes: 34 additions & 82 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -1,87 +1,39 @@
name: CI
on: [push, pull_request]
env:
RAILS_ENV: test
DATABASE_URL: postgresql://postgres:@localhost/test
DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true
name: Ruby test

on:
pull_request:
push:
branches:
- master

concurrency:
group: ${{ github.ref_name }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
rubocop:
uses: theforeman/actions/.github/workflows/rubocop.yml@v0
with:
command: bundle exec rubocop --parallel --format github

test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:12.1
ports: ["5432:5432"]
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
name: Ruby
needs: rubocop
strategy:
fail-fast: false
matrix:
foreman-core-branch:
- 3.1-stable
- 3.2-stable
- 3.3-stable
- 3.4-stable
- 3.5-stable
- 3.6-stable
- 3.7-stable
- 3.8-stable
- 3.9-stable
- develop
ruby-version: [2.7]
node-version: [14]
steps:
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install build-essential libcurl4-openssl-dev libvirt-dev ruby-libvirt zlib1g-dev libpq-dev
- uses: actions/checkout@v3
with:
repository: theforeman/foreman
ref: ${{ matrix.foreman-core-branch }}
fetch-depth: 0
- name: Apply patches for Foreman >= 3.2 and <= 3.7
if: ${{ contains(fromJson('["3.2-stable", "3.3-stable", "3.4-stable", "3.5-stable", "3.6-stable", "3.7-stable"]'), matrix.foreman-core-branch) }}
run: |
git cherry-pick -n 1c3a4155f286352e0abbf0d0b298e47e81c2d6c5 # Pin minitest < 5.19 to resolve test failures (see https://github.com/theforeman/foreman/pull/9781)
- uses: actions/checkout@v3
with:
path: foreman_git_templates
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Setup Bundler
run: |
gem install bundler -v 2.4.22
bundle config path vendor/bundle
bundle config set without journald development console mysql2 sqlite
echo "gem 'foreman_git_templates', path: './foreman_git_templates'" > bundler.d/foreman_git_templates.local.rb
bundle lock --update
- name: Cache gems
uses: actions/cache@v3
with:
path: vendor/bundle
key: ${{ runner.os }}-gems-${{ hashFiles('**/Gemfile.lock') }}
restore-keys: |
${{ runner.os }}-gems-
- name: Setup Plugin
run: |
bundle install --jobs=3 --retry=3
bundle exec rake db:create
bundle exec rake db:migrate
npm install
bundle exec rake webpack:compile
- name: Run rubocop
run: bundle exec rake foreman_git_templates:rubocop
if: ${{ matrix.foreman-core-branch == 'develop' }}
- name: Run plugin tests
run: |
bundle exec rake test:foreman_git_templates
bundle exec rake test TEST="test/unit/foreman/access_permissions_test.rb"
- name: Precompile plugin assets
run: bundle exec rake 'plugin:assets:precompile[foreman_git_templates]'
env:
RAILS_ENV: production
foreman:
- "develop"
- "3.9-stable"
- "3.8-stable"
- "3.7-stable"
- "3.6-stable"
- "3.5-stable"
- "3.4-stable"
- "3.3-stable"
- "3.2-stable"
- "3.1-stable"
uses: theforeman/actions/.github/workflows/foreman_plugin.yml@v0
with:
plugin: foreman_git_templates
foreman_version: ${{ matrix.foreman }}
6 changes: 5 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,8 @@ Metrics/BlockLength:

Metrics/ClassLength:
Exclude:
- 'test/**/*'
- 'test/**/*'

Rails/ApplicationRecord:
Exclude:
- db/**/*
1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
ruby 2.7.8
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ module Renderer
module Source
class Repository < Foreman::Renderer::Source::Base
def initialize(template, repository_path)
super(template)
@template = template
@repository_path = repository_path
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,15 +16,13 @@ def provisioning_template(opts = {})
def available_template_kinds(provisioning = nil)
return super unless repository_path

# rubocop:disable Layout/RescueEnsureAlignment
@available_template_kinds ||= template_kinds(provisioning).map do |kind|
repository_klass.new(name: kind.name).tap do |t|
t.template = RepositoryReader.call(repository_path, t.path)
end
rescue RepositoryReader::FileUnreadableError # file is missing or empty
next
end.compact
# rubocop:enable Layout/RescueEnsureAlignment
end
end

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ class MigrationSettings < ActiveRecord::Base
end

def up
MigrationSettings.where(category: 'Setting::GitTemplates').update_all(category: 'Setting') if column_exists?(:settings, :category)
return unless column_exists?(:settings, :category)

MigrationSettings.where(category: 'Setting::GitTemplates').update_all(category: 'Setting')
end
end
2 changes: 2 additions & 0 deletions foreman_git_templates.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ Gem::Specification.new do |s|
s.files = Dir['{app,config,db,lib}/**/*'] + ['LICENSE', 'Rakefile', 'README.md']
s.test_files = Dir['test/**/*']

s.required_ruby_version = '>= 2.5', '< 4'

s.add_dependency 'down', '~> 4.5'
s.add_dependency 'rest-client', '~> 2'

Expand Down

0 comments on commit 9fd2bf4

Please sign in to comment.