From be6464ff83fd19ea54b54c8327a40dc08aa4ae1f Mon Sep 17 00:00:00 2001 From: Henne Vogelsang Date: Fri, 5 Mar 2021 17:20:31 +0100 Subject: [PATCH] Switch to github actions :wave: travis, it was nice while it lasted! :heart: --- .github/workflows/linters.yml | 21 ++++++++++++++++ .github/workflows/spec.yml | 34 ++++++++++++++++++++++++++ .travis.yml | 45 ----------------------------------- Gemfile | 4 ++-- README.md | 1 + lib/tasks/spec.rake | 26 ++++++++++++++++++++ travis_script.sh | 34 -------------------------- 7 files changed, 84 insertions(+), 81 deletions(-) create mode 100644 .github/workflows/linters.yml create mode 100644 .github/workflows/spec.yml delete mode 100644 .travis.yml create mode 100644 lib/tasks/spec.rake delete mode 100755 travis_script.sh diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml new file mode 100644 index 00000000..72ee65a3 --- /dev/null +++ b/.github/workflows/linters.yml @@ -0,0 +1,21 @@ +name: Linters + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + +jobs: + rubocop: + runs-on: ubuntu-latest + env: + OSEM_RUBY_VERSION: 2.5.8 + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.5 + bundler-cache: true + - run: bundle exec rubocop + - run: bundle exec haml-lint app/views diff --git a/.github/workflows/spec.yml b/.github/workflows/spec.yml new file mode 100644 index 00000000..b4b4aab3 --- /dev/null +++ b/.github/workflows/spec.yml @@ -0,0 +1,34 @@ +name: Specs + +on: + push: + branches: [ master ] + pull_request: + branches: [ master ] + workflow_dispatch: + +jobs: + spec: + runs-on: ubuntu-latest + name: spec + env: + OSEM_DB_ADAPTER: sqlite3 + OSEM_RUBY_VERSION: 2.5.8 + RAILS_ENV: test + strategy: + matrix: + suite: [models, features, controllers, ability, leftovers] + steps: + - uses: actions/checkout@v2 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: 2.5 + bundler-cache: true + - name: Prepare spec + run: | + rm -f osem_test osem_development + bundle exec rake db:setup --trace + bundle exec bin/rails webdrivers:chromedriver:update + - name: spec/${{ matrix.suite }} + run: bundle exec rake spec:${{ matrix.suite }} + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 4c73dd49..00000000 --- a/.travis.yml +++ /dev/null @@ -1,45 +0,0 @@ -sudo: required -dist: xenial -addons: - apt: - packages: - - chromium-browser -language: ruby -cache: bundler -rvm: -branches: - except: - - /^depfu/.*$/ -before_install: - - "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc" - - gem uninstall -v '>= 2' -i $(rvm gemdir)@global -ax bundler || true - - gem install bundler -v $(tail -n 1 Gemfile.lock) -notifications: - email: - on_success: change - on_failure: change - irc: - channels: - - "chat.freenode.net#osem" - on_success: change - on_failure: change -before_script: - - RAILS_ENV=test bundle exec rake db:bootstrap --trace - - RAILS_ENV=test bundle exec bin/rails webdrivers:chromedriver:update -script: - - "./travis_script.sh $TEST_SUITE" -env: - global: - - OSEM_DB_ADAPTER=sqlite3 - - OSEM_DB_HOST='' - - OSEM_DB_PORT='' - - OSEM_DB_NAME='osem_test' - matrix: - - TEST_SUITE=ability - - TEST_SUITE=features - - TEST_SUITE=linters - - TEST_SUITE=models - - TEST_SUITE=controllers - - TEST_SUITE=rest -matrix: - fast_finish: true diff --git a/Gemfile b/Gemfile index 0e16b95b..d19bed4b 100644 --- a/Gemfile +++ b/Gemfile @@ -234,8 +234,6 @@ group :development do gem 'mina' # as debugger on error pages gem 'web-console' - # as development database - gem 'sqlite3' end group :test do @@ -271,4 +269,6 @@ end group :development, :test do # as debugger gem 'byebug' + # as development/test database + gem 'sqlite3' end diff --git a/README.md b/README.md index 2fe87dcf..d866fb8d 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ [![Build Status](https://travis-ci.org/openSUSE/osem.svg?branch=master)](https://travis-ci.org/openSUSE/osem) +[![Build Status](https://github.com/openSUSE/osem/actions/workflows/spec.yml/badge.svg?branch=master)](https://github.com/openSUSE/osem/actions) [![Code Climate](https://codeclimate.com/github/openSUSE/osem.png)](https://codeclimate.com/github/openSUSE/osem) [![codecov](https://codecov.io/gh/opensuse/osem/branch/master/graph/badge.svg)](https://codecov.io/gh/opensuse/osem) [![Security Status](https://hakiri.io/github/openSUSE/osem/master.svg)](https://hakiri.io/github/openSUSE/osem/master) diff --git a/lib/tasks/spec.rake b/lib/tasks/spec.rake new file mode 100644 index 00000000..fddcec62 --- /dev/null +++ b/lib/tasks/spec.rake @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +unless Rails.env.production? + namespace :spec do + desc 'rspec ability' + task :ability do + sh 'bundle exec rspec --format documentation spec/ability' + end + desc 'rspec models' + task :models do + sh 'bundle exec rspec --format documentation spec/models' + end + desc 'rspec controllers' + task :controllers do + sh 'bundle exec rspec --format documentation spec/controllers' + end + desc 'rspec features' + task :features do + sh 'bundle exec rspec --format documentation spec/features' + end + desc 'rspec the leftovers' + task :leftovers do + sh 'bundle exec rspec --format documentation --exclude-pattern "spec/{models,features,controllers,ability}/**/*_spec.rb"' + end + end +end diff --git a/travis_script.sh b/travis_script.sh deleted file mode 100755 index 3f4f52cf..00000000 --- a/travis_script.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/bin/bash -# This script runs the test suites for the CI build - -# Be verbose and fail script on the first error -set -xe - -# By default: all test runs -if [ -z $1 ]; then - TEST_SUITE="all" -else - TEST_SUITE="$1" -fi - -case $TEST_SUITE in - linters) - bundle exec rubocop -Dc .rubocop.yml - bundle exec haml-lint app/views - ;; - models) - bundle exec rspec --format documentation spec/models - ;; - features) - bundle exec rspec --format documentation spec/features - ;; - controllers) - bundle exec rspec --format documentation spec/controllers - ;; - ability) - bundle exec rspec --format documentation spec/ability - ;; - rest) - bundle exec rspec --format documentation --exclude-pattern "spec/{models,features,controllers,ability}/**/*_spec.rb" - ;; -esac