mirror of
https://github.com/redmine/redmine.git
synced 2026-01-17 21:12:55 +01:00
git-svn-id: https://svn.redmine.org/redmine/trunk@23264 e93f8b46-1217-0410-a6f0-8f06a7374b81
108 lines
3.0 KiB
YAML
108 lines
3.0 KiB
YAML
name: Tests
|
|
|
|
on:
|
|
push:
|
|
|
|
jobs:
|
|
tests:
|
|
name: test ${{matrix.db}} ruby-${{ matrix.ruby }}
|
|
runs-on: ubuntu-latest
|
|
|
|
strategy:
|
|
matrix:
|
|
ruby: ['3.1', '3.2', '3.3']
|
|
db: ['postgresql', 'mysql']
|
|
fail-fast: false
|
|
|
|
services:
|
|
postgres:
|
|
image: postgres:13
|
|
env:
|
|
POSTGRES_DB: redmine_test
|
|
POSTGRES_USER: root
|
|
POSTGRES_PASSWORD: root
|
|
ports:
|
|
- 5432:5432
|
|
options: >-
|
|
--health-cmd pg_isready
|
|
--health-interval 10s
|
|
--health-timeout 5s
|
|
--health-retries 5
|
|
|
|
mysql:
|
|
image: mysql:8.0
|
|
env:
|
|
MYSQL_DATABASE: redmine_test
|
|
MYSQL_ROOT_PASSWORD: 'root'
|
|
ports:
|
|
- 3306:3306
|
|
options: >-
|
|
--health-cmd="mysqladmin ping"
|
|
--health-interval=10s
|
|
--health-timeout=5s
|
|
--health-retries=3
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Install package dependencies
|
|
run: >
|
|
sudo apt-get install --yes --quiet
|
|
ghostscript
|
|
gsfonts
|
|
|
|
- name: Allow imagemagick to read PDF files
|
|
run: |
|
|
echo '<policymap>' > policy.xml
|
|
echo '<policy domain="coder" rights="read | write" pattern="PDF" />' >> policy.xml
|
|
echo '</policymap>' >> policy.xml
|
|
sudo rm /etc/ImageMagick-6/policy.xml
|
|
sudo mv policy.xml /etc/ImageMagick-6/policy.xml
|
|
|
|
- name: Install Ruby and gems
|
|
uses: ruby/setup-ruby@v1.176.0
|
|
with:
|
|
ruby-version: ${{ matrix.ruby }}
|
|
bundler-cache: true
|
|
|
|
- name: Prepare Redmine configuration for PostgreSQL
|
|
run: |
|
|
cp config/database.yml.example config/database.yml
|
|
sed -i -e "s/mysql2$/postgresql/g" config/database.yml
|
|
sed -i -e "s/host:.*$/host: localhost/g" config/database.yml
|
|
sed -i -e "s/password:.*$/password: root/g" config/database.yml
|
|
sed -i -e "41,43d" config/database.yml
|
|
if: matrix.db == 'postgresql'
|
|
|
|
- name: Prepare Redmine configuration for MySQL
|
|
run: |
|
|
cp config/database.yml.example config/database.yml
|
|
sed -i -e "s/host:.*$/host: 127.0.0.1/g" config/database.yml
|
|
sed -i -e "s/password:.*$/password: root/g" config/database.yml
|
|
if: matrix.db == 'mysql'
|
|
|
|
- name: Install dependencies
|
|
env:
|
|
RAILS_ENV: test
|
|
run: bundle install --jobs=4 --retry=3
|
|
|
|
- name: Run DB migration
|
|
env:
|
|
RAILS_ENV: test
|
|
run: bundle exec rake db:migrate
|
|
|
|
- name: Run SCM setup for Git, Git UTF8, Subversion and Filesystem
|
|
env:
|
|
RAILS_ENV: test
|
|
run: |
|
|
bundle exec rake test:scm:setup:git
|
|
bundle exec rake test:scm:setup:git_utf8
|
|
bundle exec rake test:scm:setup:subversion
|
|
bundle exec rake test:scm:setup:filesystem
|
|
|
|
- name: Run tests
|
|
run: |
|
|
bin/rails test
|
|
bin/rails test:autoload
|