Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use theforeman github actions for ruby testing #98

Merged
merged 1 commit into from
Mar 7, 2024
Merged
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
97 changes: 20 additions & 77 deletions .github/workflows/ruby.yml
Original file line number Diff line number Diff line change
@@ -1,89 +1,32 @@
---
name: Ruby Testing

# Controls when the action will run.
name: Ruby Tests
on:
pull_request:
push:
branches:
- master

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
- main
pull_request:

env:
BUNDLE_WITHOUT: journald:development:console:libvirt
RAILS_ENV: test
DATABASE_URL: postgresql://postgres:@localhost/test
DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true
concurrency:
group: ${{ github.ref_name }}-${{ github.workflow }}
cancel-in-progress: true

jobs:
rubocop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: 2.7
bundler-cache: true
- name: Run rubocop
run: bundle exec rubocop

ruby-test:
# The type of runner that the job will run on
runs-on: ubuntu-latest
needs: rubocop
services:
postgres:
image: postgres:12.1
ports: ['5432:5432']
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
uses: theforeman/actions/.github/workflows/rubocop.yml@v0

test:
name: Ruby
strategy:
fail-fast: false
matrix:
ruby-version: ['2.7']
foreman-core-branch: ['develop', '3.9-stable', '3.8-stable']
proxmox: ['~>0.13.3']

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- name: Install build packages
run: |
sudo apt-get update
sudo apt-get install build-essential libcurl4-openssl-dev zlib1g-dev libpq-dev

# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
with:
repository: theforeman/foreman
ref: ${{ matrix.foreman-core-branch }}

- uses: actions/checkout@v2
with:
path: foreman_snapshot_management

- name: Setup Bundler
run: |
echo "gem 'foreman_fog_proxmox', '${{ matrix.proxmox }}'" > bundler.d/proxmox.rb
echo "gem 'foreman_snapshot_management', path: './foreman_snapshot_management'" > bundler.d/foreman_snapshot_mgmt.local.rb

- name: Setup Ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true

- name: Prepare test env
if: github.event_name != 'push'
run: |
bundle exec rake db:create
bundle exec rake db:migrate
bundle exec rake db:test:prepare

- name: Run plugin tests
if: github.event_name != 'push'
run: |
bundle exec rake test:foreman_snapshot_management
...
foreman:
- develop
- 3.10-stable
- 3.9-stable
- 3.8-stable
needs: rubocop
uses: theforeman/actions/.github/workflows/foreman_plugin.yml@v0
with:
plugin: foreman_snapshot_management
matrix_exclude: '[{"ruby": "3.0", "node": "14"}]'
foreman_version: ${{ matrix.foreman }}
1 change: 1 addition & 0 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ source 'https://rubygems.org'

gemspec

gem "rake", "~> 13.1.0"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd pin it to a .y version to allow updates to 13.2 for example.

Suggested change
gem "rake", "~> 13.1.0"
gem "rake", "~> 13.1"

gem "rdoc", "~> 6.3.1"
gem "theforeman-rubocop", "~> 0.1.0"