Merge branch 'release-0.1.4' into develop #4
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
# 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 |