diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..a39a501 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,82 @@ + +# 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 }} + + 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 9e44e3e..0000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -sudo: required -language: bash -services: - - docker - -before_install: - - docker build -t yast-ftp-server-image . - # list the installed packages (just for easier debugging) - - docker run --rm -it yast-ftp-server-image rpm -qa | sort - -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-ftp-server-image yast-travis-ruby diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 7b8f4b6..0000000 --- a/Dockerfile +++ /dev/null @@ -1,2 +0,0 @@ -FROM registry.opensuse.org/yast/head/containers/yast-ruby:latest -COPY . /usr/src/app diff --git a/src/include/ftp-server/write_load.rb b/src/include/ftp-server/write_load.rb index e3c8ade..e4d8f29 100644 --- a/src/include/ftp-server/write_load.rb +++ b/src/include/ftp-server/write_load.rb @@ -50,9 +50,7 @@ def WriteStartViaSocket(start) # Convert between the UI (yast), and system (vsftpd, pure_ftpd) settings. # # The system settings are multiplexed by - # {FtpServerClass#vsftpd_edit vsftpd_edit}: - # {FtpServerClass#VS_SETTINGS VS_SETTINGS} (for vsftpd_edit == true) or - # {FtpServerClass#PURE_SETTINGS PURE_SETTINGS} (for vsftpd_edit == false). + # {Yast::FtpServerClass#VS_SETTINGS VS_SETTINGS} # # @param [String] key # in the {FtpServerClass#EDIT_SETTINGS EDIT_SETTINGS} vocabulary diff --git a/test/modules/ftpserver_test.rb b/test/modules/ftpserver_test.rb index 9cf9eed..3c2550f 100644 --- a/test/modules/ftpserver_test.rb +++ b/test/modules/ftpserver_test.rb @@ -100,6 +100,8 @@ def mock_config(config_path, map) allow(ftp_server).to receive(:PollAbort).and_return(false) allow(ftp_server).to receive(:WriteSettings).and_return(true) allow(ftp_server).to receive(:write_daemon) + allow(Yast::Service).to receive(:active?).with("vsftpd").and_return(false) + allow(Yast::Service).to receive(:restart).with("vsftpd") ftp_server.main end diff --git a/test/spec_helper.rb b/test/spec_helper.rb index 6803485..18bb62c 100644 --- a/test/spec_helper.rb +++ b/test/spec_helper.rb @@ -34,6 +34,14 @@ def stub_module(name) stub_module("Users") +RSpec.configure do |config| + config.mock_with :rspec do |c| + # make sure we mock only the existing methods + # https://relishapp.com/rspec/rspec-mocks/v/3-0/docs/verifying-doubles/partial-doubles + c.verify_partial_doubles = true + end +end + if ENV["COVERAGE"] require "simplecov" SimpleCov.start do @@ -44,12 +52,20 @@ def stub_module(name) # track all ruby files under src SimpleCov.track_files("#{SRC_PATH}/**/*.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