From b0adeaf05c26d2e6797e786cc272f70cde7104b3 Mon Sep 17 00:00:00 2001 From: Ewoud Kohl van Wijngaarden Date: Mon, 14 Mar 2022 17:31:01 +0100 Subject: [PATCH] Use reusable GitHub Actions for testing This reduces the duplication between projects. For example, this ensures testing on Ruby 2.7 which previously didn't happen. Right now this is incomplete because it loses the caching step that happens on a push to master. --- .github/workflows/ruby_tests.yml | 80 ++++++-------------------------- 1 file changed, 14 insertions(+), 66 deletions(-) diff --git a/.github/workflows/ruby_tests.yml b/.github/workflows/ruby_tests.yml index 96ff908b0..a01c80402 100644 --- a/.github/workflows/ruby_tests.yml +++ b/.github/workflows/ruby_tests.yml @@ -1,71 +1,19 @@ name: Ruby Testing -on: - pull_request: - push: - branches: - - master -env: - BUNDLE_WITHOUT: journald:development:console:libvirt - RAILS_ENV: test - DATABASE_URL: postgresql://postgres:@localhost/test - DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true + +on: pull_request + +concurrency: + group: ${{ github.head_ref }} + 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.6 - bundler-cache: true - - name: Run rubocop - run: bundle exec rubocop + name: Rubocop + uses: ekohl/actions/.github/workflows/rubocop.yml@v0 + test_ruby: - runs-on: ubuntu-latest + name: Ruby 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 - strategy: - fail-fast: false - matrix: - foreman-core-branch: [develop] - ruby-version: [2.5, 2.6] - node-version: [12] - steps: - - name: Install build packages - run: | - sudo apt-get update - sudo apt-get install build-essential libcurl4-openssl-dev zlib1g-dev libpq-dev - - uses: actions/checkout@v2 - with: - repository: theforeman/foreman - ref: ${{ matrix.foreman-core-branch }} - - uses: actions/checkout@v2 - with: - path: foreman_ansible - - name: Setup Bundler - run: | - echo "gem 'foreman_ansible', path: './foreman_ansible'" > bundler.d/foreman_ansible.local.rb - - name: Setup Ruby - uses: ruby/setup-ruby@v1 - with: - ruby-version: ${{ matrix.ruby-version }} - bundler-cache: true - - name: Setup Node - if: github.event_name != 'push' - uses: actions/setup-node@v1 - with: - node-version: ${{ matrix.node-version }} - - name: Prepare test env - if: github.event_name != 'push' - run: | - bundle exec rake db:create - bundle exec rake db:migrate - - name: Run plugin tests - if: github.event_name != 'push' - run: | - bundle exec rake test:foreman_ansible + uses: ekohl/actions/.github/workflows/foreman_plugin.yml@v0 + with: + plugin: foreman_ansible