Test #898
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 | |
on: | |
push: | |
pull_request: | |
schedule: | |
- cron: | | |
0 0 * * * | |
jobs: | |
test: | |
name: Redmine ${{ matrix.redmine-version }} & ${{ matrix.rdbms }} & Ruby ${{ matrix.ruby-version }}${{ matrix.with-wiki-extensions == 'yes' && ' & Wiki Extensions' || '' }} | |
runs-on: ubuntu-latest | |
timeout-minutes: 30 | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- redmine-version: "5.0" | |
ruby-version: "2.7" | |
rdbms: "MySQL" | |
- redmine-version: "5.0" | |
ruby-version: "2.7" | |
rdbms: "PostgreSQL" | |
- redmine-version: "5.0" | |
ruby-version: "3.0" | |
rdbms: "MySQL" | |
- redmine-version: "5.0" | |
ruby-version: "3.0" | |
rdbms: "PostgreSQL" | |
- redmine-version: "5.0" | |
ruby-version: "3.1" | |
rdbms: "MySQL" | |
- redmine-version: "5.0" | |
ruby-version: "3.1" | |
rdbms: "PostgreSQL" | |
- redmine-version: "5.1" | |
ruby-version: "2.7" | |
rdbms: "MySQL" | |
- redmine-version: "5.1" | |
ruby-version: "2.7" | |
rdbms: "PostgreSQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.0" | |
rdbms: "MySQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.0" | |
rdbms: "PostgreSQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.1" | |
rdbms: "MySQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.1" | |
rdbms: "PostgreSQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.2" | |
rdbms: "MySQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.2" | |
rdbms: "MySQL" | |
- redmine-version: "5.1" | |
ruby-version: "3.2" | |
rdbms: "PostgreSQL" | |
- redmine-version: "6.0" | |
ruby-version: "3.1" | |
rdbms: "MySQL" | |
- redmine-version: "6.0" | |
ruby-version: "3.1" | |
rdbms: "PostgreSQL" | |
- redmine-version: "6.0" | |
ruby-version: "3.2" | |
rdbms: "MySQL" | |
- redmine-version: "6.0" | |
ruby-version: "3.2" | |
rdbms: "PostgreSQL" | |
- redmine-version: "6.0" | |
ruby-version: "3.3" | |
rdbms: "MySQL" | |
- redmine-version: "6.0" | |
ruby-version: "3.3" | |
rdbms: "MySQL" | |
with-wiki-extensions: "yes" | |
- redmine-version: "6.0" | |
ruby-version: "3.3" | |
rdbms: "PostgreSQL" | |
- redmine-version: "master" | |
ruby-version: "3.3" | |
rdbms: "MySQL" | |
- redmine-version: "master" | |
ruby-version: "3.3" | |
rdbms: "PostgreSQL" | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: ${{ matrix.ruby-version }} | |
- name: Setup environment variables | |
run: | | |
case "${{ matrix.redmine-version }}" in | |
master) | |
echo "REDMINE_BRANCH=master" >> ${GITHUB_ENV} | |
;; | |
*) | |
echo "REDMINE_BRANCH=${{ matrix.redmine-version }}-stable" >> \ | |
${GITHUB_ENV} | |
;; | |
esac | |
case "${{ matrix.rdbms }}" in | |
MySQL) | |
echo "DOCKER_TAG=mysql-8.0-latest" >> ${GITHUB_ENV} | |
echo "GROONGA_ADAPTER=mroonga" >> ${GITHUB_ENV} | |
echo "RDBMS=mysql" >> ${GITHUB_ENV} | |
echo "RDBMS_PORT=3306" >> ${GITHUB_ENV} | |
;; | |
PostgreSQL) | |
echo "DOCKER_TAG=latest-debian-13" >> ${GITHUB_ENV} | |
echo "GROONGA_ADAPTER=pgroonga" >> ${GITHUB_ENV} | |
echo "RDBMS=postgresql" >> ${GITHUB_ENV} | |
echo "RDBMS_PORT=5432" >> ${GITHUB_ENV} | |
;; | |
esac | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y subversion | |
case ${RDBMS} in | |
postgresql) | |
sudo apt install -y postgresql-client | |
;; | |
esac | |
- name: Run RDBMS | |
run: | | |
mkdir -p mysql | |
docker run \ | |
--detach \ | |
-e MYSQL_ALLOW_EMPTY_PASSWORD=yes \ | |
-e POSTGRES_HOST_AUTH_METHOD=trust \ | |
-p ${RDBMS_PORT}:${RDBMS_PORT} \ | |
-v ${PWD}/mysql:/var/lib/mysql \ | |
groonga/${GROONGA_ADAPTER}:${DOCKER_TAG} | |
- name: Prepare Redmine | |
run: | | |
cd .. | |
git clone \ | |
--depth 1 \ | |
--branch ${REDMINE_BRANCH} \ | |
https://github.com/redmine/redmine.git | |
cd redmine | |
sed \ | |
-i'' \ | |
-e 's/using: :chrome,/using: :headless_chrome,/g' \ | |
test/application_system_test_case.rb | |
svnadmin create tmp/test/subversion_repository | |
zcat test/fixtures/repositories/subversion_repository.dump.gz | \ | |
svnadmin load tmp/test/subversion_repository | |
tar xf test/fixtures/repositories/git_repository.tar.gz -C tmp/test | |
cd plugins | |
ln -s ../../redmine_full_text_search ./full_text_search | |
cd ../ | |
cp plugins/full_text_search/config/database.yml.example.${{ matrix.redmine-version }}.${RDBMS} \ | |
config/database.yml | |
cp plugins/full_text_search/config/initializers/schema_format.rb \ | |
config/initializers/schema_format.rb | |
- name: Install Wiki Extensions | |
run: | | |
# This is for testing tag support for Wiki Extensions. | |
git clone \ | |
--depth 1 \ | |
https://github.com/haru/redmine_wiki_extensions.git \ | |
../redmine/plugins/redmine_wiki_extensions | |
cp ../redmine/plugins/redmine_wiki_extensions/{Gemfile_for_test,Gemfile} | |
if: matrix.with-wiki-extensions == 'yes' | |
- name: Install | |
run: | | |
cd ../redmine | |
bundle install | |
bin/rails db:create | |
bin/rails generate_secret_token | |
bin/rails db:migrate | |
bin/rails redmine:load_default_data REDMINE_LANG=en | |
bin/rails redmine:plugins:migrate | |
- name: Test | |
run: | | |
cd ../redmine | |
RAILS_ENV=test bin/rails redmine:plugins:test NAME=full_text_search | |
bin/rails redmine:plugins:migrate NAME=full_text_search VERSION=0 | |
bin/rails redmine:plugins:migrate NAME=full_text_search |