2020-11-29 18:58:44 +03:00
name : Tests
2020-03-26 09:45:54 +03:00
on :
push :
pull_request :
2020-12-01 13:13:17 +03:00
schedule :
- cron : '0 5 * * *'
2020-03-26 09:45:54 +03:00
jobs :
test :
2020-11-29 18:58:44 +03:00
name : ${{ matrix.redmine }} ${{ matrix.db }} ruby-${{ matrix.ruby }}
2020-03-26 09:45:54 +03:00
runs-on : ubuntu-latest
strategy :
matrix :
2020-11-29 18:58:44 +03:00
ruby : [ '2.6' , '2.4' ]
redmine : [ '4.1-stable' , 'master' ]
db : [ 'postgres' , 'mysql' ]
fail-fast : false
services :
postgres :
image : postgres:13
env :
POSTGRES_USER : postgres
POSTGRES_PASSWORD : postgres
ports :
- 5432 : 5432
options : >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
mysql :
image : mysql:5.7
env :
MYSQL_USER : root
MYSQL_PASSWORD : ''
MYSQL_ALLOW_EMPTY_PASSWORD : yes
ports :
- 3306 : 3306
options : >-
--health-cmd="mysqladmin ping"
--health-interval=10s
--health-timeout=5s
--health-retries=3
2020-03-26 09:45:54 +03:00
steps :
2020-11-29 18:58:44 +03:00
- name : Verify MySQL connection from host
run : |
mysql --host 127.0.0.1 --port 3306 -uroot -e "SHOW DATABASES"
if : matrix.db == 'mysql'
- name : Checkout Redmine
uses : actions/checkout@v2
with :
repository : redmine/redmine
ref : ${{ matrix.redmine }}
path : redmine
- name : Checkout additionals
uses : actions/checkout@v2
with :
repository : AlphaNodes/additionals
path : redmine/plugins/additionals
- name : Update package archives
run : sudo apt-get update --yes --quiet
- name : Install package dependencies
run : >
sudo apt-get install --yes --quiet
build-essential
cmake
libicu-dev
libpq-dev
libmysqlclient-dev
- name : Setup Ruby
uses : actions/setup-ruby@v1
with :
ruby-version : ${{ matrix.ruby }}
- name : Setup Cache
uses : actions/cache@v1
2020-03-26 09:45:54 +03:00
with :
2020-11-29 18:58:44 +03:00
path : vendor
key : v1-ruby-${{ matrix.ruby }}-redmine-${{ matrix.redmine }}
- name : Setup Bundler
run : |
gem install bundler -v '~> 1.0'
bundle config path "$(pwd)/vendor/bundle"
- name : Prepare Redmine source
working-directory : redmine
run : |
sed -i '/rubocop/d' Gemfile
rm -f .rubocop*
cp plugins/additionals/test/support/database-${{ matrix.db }}.yml config/database.yml
cp plugins/additionals/test/support/configuration.yml config/configuration.yml
- name : Install Ruby dependencies
working-directory : redmine
run : |
bundle install --jobs=4 --retry=3 --without development
- name : Run Redmine rake tasks
env :
RAILS_ENV : test
working-directory : redmine
run : |
bundle exec rake generate_secret_token
bundle exec rake db:create db:migrate redmine:plugins:migrate
bundle exec rake db:test:prepare
- name : Run tests
env :
RAILS_ENV : test
REDMINE_VERSION : ${{ matrix.redmine }}
working-directory : redmine
run : bundle exec rake redmine:plugins:test NAME=additionals RUBYOPT="-W0"
- name : Run uninstall test
env :
RAILS_ENV : test
REDMINE_VERSION : ${{ matrix.redmine }}
working-directory : redmine
run : bundle exec rake redmine:plugins:migrate NAME=additionals VERSION=0
2021-01-18 12:16:26 +03:00
- name : Run build gem file
working-directory : redmine/plugins/additionals
run : gem build additionals.gemspec