Use GitHub Actions Marketplace "Setup Redmine" for CI #16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test | |
env: | |
PLUGIN_NAME: ${{ github.event.repository.name }} | |
on: | |
push: | |
branches: | |
- main | |
- next | |
pull_request: | |
branches: | |
- main | |
- next | |
workflow_dispatch: | |
jobs: | |
test: | |
name: redmine:${{ matrix.redmine_version }} ruby:${{ matrix.ruby_version }} db:${{ matrix.db }} | |
runs-on: ubuntu-22.04 | |
container: | |
image: ruby:${{ matrix.ruby_version }}-bullseye | |
strategy: | |
fail-fast: false | |
matrix: | |
redmine_version: [4.2-stable, 5.0-stable, 5.1-stable, master] | |
ruby_version: ['2.7', '3.0', '3.1', '3.2'] | |
db: ['mysql:5.7', 'postgres:10', 'sqlite3'] | |
# System test takes 2~3 times longer, so limit to specific matrix combinations | |
# See: https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs#expanding-or-adding-matrix-configurations | |
include: | |
- system_test: true | |
redmine_version: 5.1-stable | |
ruby_version: '3.2' | |
db: mysql | |
exclude: | |
- redmine_version: 4.2-stable | |
ruby_version: '3.0' | |
- redmine_version: 4.2-stable | |
ruby_version: '3.1' | |
- redmine_version: 4.2-stable | |
ruby_version: '3.2' | |
- redmine_version: 5.0-stable | |
ruby_version: '3.2' | |
- redmine_version: master | |
ruby_version: '2.7' | |
steps: | |
- name: Setup Redmine | |
uses: hidakatsuya/action-setup-redmine@v1 | |
with: | |
repository: redmine/redmine | |
version: ${{ matrix.redmine_version }} | |
ruby-version: ${{ matrix.ruby_version }} | |
database: ${{ matrix.db }} | |
path: redmine | |
- name: Checkout Plugin | |
uses: actions/checkout@v4 | |
with: | |
path: redmine/plugins/${{ env.PLUGIN_NAME }} | |
- name: Zeitwerk check | |
working-directory: redmine | |
run: | | |
if grep -q zeitwerk config/application.rb ; then | |
bundle exec rake zeitwerk:check | |
fi | |
shell: bash | |
- name: Run plugin tests | |
working-directory: redmine | |
run: | | |
bundle exec rake redmine:plugins:test:units NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0" | |
bundle exec rake redmine:plugins:test:functionals NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0" | |
bundle exec rake redmine:plugins:test:integration NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0" | |
if [ ${{ matrix.system_test }} = "true" ]; then | |
bundle exec rake redmine:plugins:test:system NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0" | |
fi | |
# - name: Run core tests | |
# env: | |
# RAILS_ENV: test | |
# PARALLEL_WORKERS: 1 | |
# working-directory: redmine | |
# run: bundle exec rake test | |
# - name: Run core system tests | |
# if: matrix.system_test == true | |
# env: | |
# RAILS_ENV: test | |
# GOOGLE_CHROME_OPTS_ARGS: "headless,disable-gpu,no-sandbox,disable-dev-shm-usage" | |
# working-directory: redmine | |
# run: bundle exec rake test:system | |
- name: Run uninstall test | |
working-directory: redmine | |
run: bundle exec rake redmine:plugins:migrate NAME=${{ env.PLUGIN_NAME }} VERSION=0 |