diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..2764445 --- /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 + + - name: Install Dependencies + run: rake build_dependencies:install + + # 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 }} + + Package: + runs-on: ubuntu-latest + container: registry.opensuse.org/yast/head/containers/yast-ruby:latest + + steps: + + - name: Git Checkout + uses: actions/checkout@v2 + + - name: Install Dependencies + run: rake build_dependencies:install + + - 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 + + # needed for perl checks as we need all perl modules + - name: Install Dependencies + run: rake build_dependencies:install + + - name: Perl Syntax + run: yast-ci-ruby -o perl_syntax + + - name: POT Check + run: rake check:pot diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 44a3d78..0000000 --- a/.travis.yml +++ /dev/null @@ -1,11 +0,0 @@ -sudo: required -language: bash -services: - - docker - -before_install: - - docker build -t yast-samba-server-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 --privileged -e TRAVIS=1 -e TRAVIS_JOB_ID="$TRAVIS_JOB_ID" yast-samba-server-image yast-travis-ruby diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index fc06670..0000000 --- a/Dockerfile +++ /dev/null @@ -1,6 +0,0 @@ -FROM registry.opensuse.org/yast/head/containers/yast-ruby:latest -RUN zypper --non-interactive in --no-recommends \ - perl-Crypt-SmbHash \ - yast2-samba-client -COPY . /usr/src/app - diff --git a/README.md b/README.md index bb8e081..6db9a11 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,6 @@ # YaST - The Samba Server Module # -[![Travis Build](https://travis-ci.org/yast/yast-samba-server.svg?branch=master)](https://travis-ci.org/yast/yast-samba-server) -[![Jenkins Build](http://img.shields.io/jenkins/s/https/ci.opensuse.org/yast-samba-server-master.svg)](https://ci.opensuse.org/view/Yast/job/yast-samba-server-master/) - +[![Workflow Status](https://github.com/yast/yast-samba-server/workflows/CI/badge.svg?branch=master)]( +https://github.com/yast/yast-samba-server/actions?query=branch%3Amaster) +[![Jenkins Status](https://ci.opensuse.org/buildStatus/icon?job=yast-yast-samba-server-master)]( +https://ci.opensuse.org/view/Yast/job/yast-yast-samba-server-master/) diff --git a/test/test_helper.rb b/test/test_helper.rb index 984f40a..884f025 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -24,21 +24,41 @@ require "yast" +RSpec.configure do |config| + config.mock_with :rspec do |mocks| + # If you misremember a method name both in code and in tests, + # will save you. + # https://relishapp.com/rspec/rspec-mocks/v/3-0/docs/verifying-doubles/partial-doubles + # + # With graceful degradation for RSpec 2 + mocks.verify_partial_doubles = true if mocks.respond_to?(:verify_partial_doubles=) + end +end + if ENV["COVERAGE"] require "simplecov" SimpleCov.start do - # Don't measure coverage of the tests themselves. add_filter "/test/" end + + src_location = File.expand_path("../src", __dir__) # track all ruby files under src - src_location = File.expand_path("../../src", __FILE__) SimpleCov.track_files("#{src_location}/**/*.rb") - # use coveralls for on-line code coverage reporting at Travis CI - if ENV["TRAVIS"] - require "coveralls" + + # 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, - Coveralls::SimpleCov::Formatter + SimpleCov::Formatter::LcovFormatter ] end end