diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..4696643 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,83 @@ + +# See https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions + +name: CI + +on: [push, pull_request] + +jobs: + Tests: + runs-on: ubuntu-latest + container: registry.opensuse.org/yast/head/containers/yast-ruby:latest + + steps: + + - name: Git Checkout + uses: actions/checkout@v2 + + # just for easier debugging... + - name: Inspect Installed Packages + run: rpm -qa | sort + + - name: Unit Tests + run: rake test:unit + # enable code coverage reporting + env: + COVERAGE: 1 + + # send the coverage report to coveralls.io + - name: Coveralls Report + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + + # FIXME: Rubocop is not used here + # Rubocop: + # runs-on: ubuntu-latest + # container: registry.opensuse.org/yast/head/containers/yast-ruby:latest + + # steps: + + # - name: Git Checkout + # uses: actions/checkout@v2 + + # - name: Rubocop + # run: rake check:rubocop + + Package: + runs-on: ubuntu-latest + container: registry.opensuse.org/yast/head/containers/yast-ruby:latest + + steps: + + - name: Git Checkout + uses: actions/checkout@v2 + + - name: Package Build + run: yast-ci-ruby -o package + + Yardoc: + runs-on: ubuntu-latest + container: registry.opensuse.org/yast/head/containers/yast-ruby:latest + + steps: + + - name: Git Checkout + uses: actions/checkout@v2 + + - name: Yardoc + run: rake check:doc + + # downloading the Docker image takes some time so bundling several fast + # checks into one job avoids that overhead + Checks: + runs-on: ubuntu-latest + container: registry.opensuse.org/yast/head/containers/yast-ruby:latest + + steps: + + - name: Git Checkout + uses: actions/checkout@v2 + + - name: POT Check + run: rake check:pot diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 0391327..0000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -sudo: required -language: bash -services: - - docker - -before_install: - - docker build -t yast-vpn-image . -script: - # the "yast-travis-ruby" script is included in the base yastdevel/ruby image - # see https://github.com/yast/docker-yast-ruby/blob/master/yast-travis-ruby - - docker run -it -e TRAVIS=1 -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" yast-vpn-image yast-travis-ruby diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 94abc86..0000000 --- a/Dockerfile +++ /dev/null @@ -1,3 +0,0 @@ -FROM registry.opensuse.org/yast/head/containers/yast-ruby:latest -COPY . /usr/src/app - diff --git a/README.md b/README.md index baabd2f..14499f3 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,10 @@ YaST VPN module ================= -[![Travis Build](https://travis-ci.org/yast/yast-vpn.svg?branch=master)](https://travis-ci.org/yast/yast-vpn) -[![Jenkins Build](http://img.shields.io/jenkins/s/https/ci.opensuse.org/yast-vpn-master.svg)](https://ci.opensuse.org/view/Yast/job/yast-vpn-master/) +[![Workflow Status](https://github.com/yast/yast-vpn/workflows/CI/badge.svg?branch=master)]( +https://github.com/yast/yast-vpn/actions?query=branch%3Amaster) +[![Jenkins Status](https://ci.opensuse.org/buildStatus/icon?job=yast-yast-vpn-master)]( +https://ci.opensuse.org/view/Yast/job/yast-yast-vpn-master/) The YaST module manages VPN gateway and client connections for securing site-to-site communication via IPSec VPN. diff --git a/test/test_helper.rb b/test/test_helper.rb index 10b710d..f6236c4 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -20,3 +20,38 @@ require "yast" require "yast/rspec" + +RSpec.configure do |config| + config.mock_with :rspec do |mocks| + # make sure we mock only the existing methods + mocks.verify_partial_doubles = true + end +end + +if ENV["COVERAGE"] + require "simplecov" + SimpleCov.start do + add_filter "/test/" + end + + src_location = File.expand_path("../src", __dir__) + # track all ruby files under src + SimpleCov.track_files("#{src_location}/**/*.rb") + + # additionally use the LCOV format for on-line code coverage reporting at CI + if ENV["CI"] || ENV["COVERAGE_LCOV"] + require "simplecov-lcov" + + SimpleCov::Formatter::LcovFormatter.config do |c| + c.report_with_single_file = true + # this is the default Coveralls GitHub Action location + # https://github.com/marketplace/actions/coveralls-github-action + c.single_report_path = "coverage/lcov.info" + end + + SimpleCov.formatter = SimpleCov::Formatter::MultiFormatter[ + SimpleCov::Formatter::HTMLFormatter, + SimpleCov::Formatter::LcovFormatter + ] + end +end