Skip to content

Merge branch 'release-0.1.4' into develop #4

Merge branch 'release-0.1.4' into develop

Merge branch 'release-0.1.4' into develop #4

Workflow file for this run

# This configuration is taken from Redmine DMSF and Redmine Base Deface plugin
# and adapted to the needs of this plugin.
#
# Copyright © 2023 Liane Hampe <[email protected]>
# Copyright © 2022-23 Karel Pičman <[email protected]>
# Copyright © 2022 Jean-Baptiste Barth <[email protected]>
name: "GitHub CI"
on:
push:
branches: ["develop"]
pull_request:
branches: ["develop"]
jobs:
plugin_tests:
strategy:
fail-fast: false
matrix:
engine: [mysql, postgresql, sqlite]
include:
- engine: mysql
# Database configuration for Redmine
database_configuration: >
test:
adapter: mysql2
database: test
username: redmine
password: redmine
encoding: utf8mb4
collation: utf8mb4_unicode_ci
# SQL commands to create a database for Redmine
sql1: CREATE DATABASE IF NOT EXISTS test CHARACTER SET utf8mb4;
sql2: CREATE USER 'redmine'@'localhost' IDENTIFIED BY 'redmine';
sql3: GRANT ALL PRIVILEGES ON test.* TO 'redmine'@'localhost';
# SQL client command
database_command: mysql -uroot -proot -e
# SQl service
database_service: mysql
- engine: postgresql
# Database configuration for Redmine
database_configuration: >
test:
adapter: postgresql
database: test
username: redmine
password: redmine
host: localhost
# SQL commands to create a database for Redmine
sql1: CREATE ROLE redmine LOGIN ENCRYPTED PASSWORD 'redmine' NOINHERIT VALID UNTIL 'infinity';
sql2: CREATE DATABASE test WITH ENCODING='UTF8' OWNER=redmine;
sql3: ALTER USER redmine CREATEDB;
# SQL client command
database_command: sudo -u postgres psql -c
# SQL service
database_service: postgresql
- engine: sqlite
# Database configuration for Redmine
database_configuration: >
test:
adapter: sqlite3
database: db/redmine.sqlite3
# No database needed here. It's just a file.
runs-on: ubuntu-latest
env:
RAILS_ENV: test
NAME: redmine_colored_enumeration
steps:
- name: Clone Redmine
# Get the latest stable Redmine
run: svn export http://svn.redmine.org/redmine/branches/5.0-stable/ redmine
- name: Checkout dependencies - Base Deface
uses: actions/checkout@v3
with:
repository: xmera-circle/redmine_base_deface
path: redmine/plugins/redmine_base_deface
- name: Checkout dependencies - Advanced Plugin Helper
uses: actions/checkout@v3
with:
repository: xmera-circle/advanced_plugin_helper
path: redmine/plugins/advanced_plugin_helper
- name: Checkout plugin
uses: actions/checkout@v3
with:
path: redmine/plugins/${{ env.NAME }}
- name: Install Ruby and gems
uses: ruby/setup-ruby@v1
with:
bundler-cache: true
ruby-version: '3.1'
- name: Setup database
# Create the database
run: |
echo "${{matrix.database_configuration}}" > redmine/config/database.yml
if [[ "${{matrix.database_service}}" ]]; then
sudo systemctl start ${{matrix.engine}}
fi
if [[ "${{matrix.database_command}}" ]]; then
${{matrix.database_command}} "${{matrix.sql1}}"
${{matrix.database_command}} "${{matrix.sql2}}"
${{matrix.database_command}} "${{matrix.sql3}}"
fi
- name: Install Redmine
# Install Redmine
run: |
echo "gem \"webrick\"" > Gemfile.local
bundle config set --local without 'rmagick development'
bundle install
bundle exec rake generate_secret_token
bundle exec rake db:migrate
bundle exec rake redmine:plugins:migrate
bundle exec rake redmine:load_default_data
env:
REDMINE_LANG: en
working-directory: redmine
- name: Standard plugin tests
# Run the tests
working-directory: redmine
run: |
bundle exec rake redmine:plugins:test:units
bundle exec rake redmine:plugins:test:functionals
bundle exec rake redmine:plugins:test:integration
- name: Cleanup
# Rollback plugin's changes to the database
# Stop the database engine
working-directory: redmine
run: |
bundle exec rake redmine:plugins:migrate VERSION=0
if [[ "${{matrix.database_service}}" ]]; then
sudo systemctl stop ${{matrix.engine}}
fi