-
Notifications
You must be signed in to change notification settings - Fork 30
Rewrite GHA workflow using reusable actions #381
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,97 +1,30 @@ | ||
| name: Ruby Testing | ||
|
|
||
| on: | ||
| pull_request: | ||
| push: | ||
| branches: | ||
| - master | ||
| env: | ||
| RAILS_ENV: test | ||
| DATABASE_URL: postgresql://postgres:@localhost/test | ||
| DATABASE_CLEANER_ALLOW_REMOTE_DATABASE_URL: true | ||
| - 'master' | ||
|
|
||
| concurrency: | ||
| group: ${{ github.ref_name }}-${{ github.workflow }} | ||
| cancel-in-progress: true | ||
|
|
||
| jobs: | ||
| rubocop: | ||
| uses: theforeman/actions/.github/workflows/rubocop.yml@v0 | ||
| with: | ||
| command: bundle exec rubocop -P --format github | ||
|
|
||
| test: | ||
| name: Ruby | ||
| needs: rubocop | ||
| runs-on: ubuntu-latest | ||
|
|
||
| env: | ||
| BUNDLE_FOREMAN: '0' | ||
archanaserver marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| BUNDLE_WITHOUT: development:test | ||
| steps: | ||
| - uses: actions/checkout@v2 | ||
| - name: Setup Ruby | ||
| uses: ruby/setup-ruby@v1 | ||
| with: | ||
| ruby-version: 2.7 | ||
| bundler-cache: true | ||
| - name: Run rubocop | ||
| run: bundle exec rubocop -P --format github | ||
| test_ruby: | ||
| runs-on: ubuntu-latest | ||
| needs: rubocop | ||
| env: | ||
| BUNDLE_WITHOUT: journald:development:console:libvirt | ||
| 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: true | ||
| matrix: | ||
| foreman-repo: [theforeman/foreman] | ||
| foreman-core-branch: [develop] | ||
| ruby-version: [2.7] | ||
| node-version: [12] | ||
|
|
||
| steps: | ||
| - run: | | ||
| sudo apt-get update | ||
| sudo apt-get install build-essential libcurl4-openssl-dev zlib1g-dev libpq-dev | ||
| - name: Install chromedriver | ||
| uses: nanasess/setup-chromedriver@master | ||
|
Comment on lines
-47
to
-48
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @ekohl i can't see this step execution in the reusable action, do we want to execute this one? i'm not aware of this one.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We need a browser for the acceptance tests. I think a separate container that runs selenium together with theforeman/foreman#9952 could be an alternative. It would be best to track this by opening an issue on https://github.com/theforeman/actions or at least mention it in theforeman/actions#1
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. |
||
| - uses: actions/checkout@v2 | ||
| with: | ||
| repository: ${{ matrix.foreman-repo }} | ||
| ref: ${{ matrix.foreman-core-branch }} | ||
| - uses: actions/checkout@v2 | ||
| with: | ||
| path: foreman_puppet | ||
| - name: Setup Bundler | ||
| run: | | ||
| echo "gem 'foreman_puppet', path: './foreman_puppet'" > bundler.d/foreman_puppet.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 DB | ||
| if: github.event_name != 'push' | ||
| run: | | ||
| bundle exec rake db:create | ||
| bundle exec rake db:migrate | ||
| - name: Restore NPMs | ||
| uses: actions/cache@v2 | ||
| with: | ||
| path: node_modules | ||
| key: ${{ runner.os }}-modules-${{ matrix.node-version }}-${{ hashFiles('package.json') }} | ||
| - name: Prepare webpack | ||
| if: github.event_name != 'push' | ||
| run: | | ||
| npm install | ||
| bundle exec rake webpack:compile | ||
| - name: Run plugin tests | ||
| if: github.event_name != 'push' | ||
| run: | | ||
| bundle exec rake test:foreman_puppet | ||
| - name: Run access permission test | ||
| if: ${{ github.event_name != 'push' }} | ||
| run: | | ||
| bundle exec rake test TEST="test/unit/foreman/access_permissions_test.rb" | ||
|
Comment on lines
-84
to
-91
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This steps has not yet executed in the reusable action.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Related discussion: theforeman/actions#16 |
||
| - name: Upload test.log | ||
| uses: actions/upload-artifact@v2 | ||
| if: failure() && github.event_name != 'push' | ||
| with: | ||
| name: log | ||
| path: log/test.log | ||
| - uses: theforeman/actions/.github/workflows/foreman_plugin.yml@v0 | ||
| with: | ||
| plugin: foreman_puppet | ||
Uh oh!
There was an error while loading. Please reload this page.