Skip to content

Commit 3bafb13

Browse files
authored
Fix GitHub Actions test (#26)
* Refactor GitHub Actions test code with separating DB type.
1 parent e355376 commit 3bafb13

File tree

5 files changed

+332
-34
lines changed

5 files changed

+332
-34
lines changed

.github/workflows/redmine.yml

Lines changed: 0 additions & 33 deletions
This file was deleted.

.github/workflows/test-mysql.yml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Test with MySQL
2+
3+
env:
4+
PLUGIN_NAME: ${{ github.event.repository.name }}
5+
6+
on:
7+
push:
8+
branches:
9+
- main
10+
- master
11+
pull_request:
12+
branches:
13+
- main
14+
- master
15+
16+
jobs:
17+
test:
18+
name: redmine:${{ matrix.redmine_version }} ruby:${{ matrix.ruby_version }} mysql:${{ matrix.db_version }}
19+
runs-on: ubuntu-22.04
20+
21+
container:
22+
image: ruby:${{ matrix.ruby_version }}-bullseye
23+
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
redmine_version: [4.2-stable, 5.0-stable, master]
28+
ruby_version: [2.7, 3.0, 3.1]
29+
db_version: [5.7, 8.0]
30+
exclude:
31+
- redmine_version: 4.2-stable
32+
ruby_version: 3.0
33+
- redmine_version: 4.2-stable
34+
ruby_version: 3.1
35+
36+
services:
37+
mysql:
38+
image: mysql:${{ matrix.db_version }}
39+
env:
40+
MYSQL_ROOT_PASSWORD: password
41+
ports:
42+
- 3306:3306
43+
options: --health-cmd "mysqladmin ping" --health-interval 10s --health-timeout 5s --health-retries 5
44+
45+
steps:
46+
- name: Checkout Redmine
47+
uses: actions/checkout@v2
48+
with:
49+
repository: redmine/redmine
50+
ref: ${{ matrix.redmine_version }}
51+
path: redmine
52+
53+
- name: Checkout Plugin
54+
uses: actions/checkout@v2
55+
with:
56+
path: redmine/plugins/${{ env.PLUGIN_NAME }}
57+
58+
- name: Update package archives
59+
run: apt-get update --yes --quiet
60+
61+
- name: Install package dependencies
62+
run: >
63+
apt-get install --yes --quiet
64+
default-mysql-client-core
65+
66+
- name: Verify MySQL connection from host
67+
run: |
68+
mysql --host mysql --port 3306 -uroot -ppassword -e "SHOW DATABASES"
69+
70+
- name: Prepare Redmine source
71+
working-directory: redmine
72+
run: |
73+
cat <<EOF > config/database.yml
74+
test:
75+
adapter: mysql2
76+
database: redmine
77+
host: mysql
78+
username: root
79+
password: password
80+
encoding: utf8mb4
81+
EOF
82+
83+
- name: Install Ruby dependencies
84+
working-directory: redmine
85+
run: |
86+
bundle config set --local without 'development'
87+
bundle install --jobs=4 --retry=3
88+
89+
- name: Run Redmine rake tasks
90+
env:
91+
RAILS_ENV: test
92+
working-directory: redmine
93+
run: |
94+
bundle exec rake generate_secret_token
95+
bundle exec rake db:create db:migrate redmine:plugins:migrate
96+
97+
- name: Zeitwerk check
98+
env:
99+
RAILS_ENV: test
100+
working-directory: redmine
101+
run: |
102+
if grep -q zeitwerk config/application.rb ; then
103+
bundle exec rake zeitwerk:check
104+
fi
105+
shell: bash
106+
107+
- name: Run tests
108+
env:
109+
RAILS_ENV: test
110+
working-directory: redmine
111+
run: bundle exec rake redmine:plugins:test NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0"
112+
113+
- name: Run uninstall test
114+
env:
115+
RAILS_ENV: test
116+
working-directory: redmine
117+
run: bundle exec rake redmine:plugins:migrate NAME=${{ env.PLUGIN_NAME }} VERSION=0
Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
name: Test with Postgres
2+
3+
env:
4+
PLUGIN_NAME: ${{ github.event.repository.name }}
5+
6+
on:
7+
push:
8+
branches:
9+
- main
10+
- master
11+
pull_request:
12+
branches:
13+
- main
14+
- master
15+
16+
jobs:
17+
test:
18+
name: redmine:${{ matrix.redmine_version }} ruby:${{ matrix.ruby_version }} postgres:${{ matrix.db_version }}
19+
runs-on: ubuntu-22.04
20+
21+
container:
22+
image: ruby:${{ matrix.ruby_version }}-bullseye
23+
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
redmine_version: [4.2-stable, 5.0-stable, master]
28+
ruby_version: [2.7, 3.0, 3.1]
29+
db_version: [10, 14]
30+
exclude:
31+
- redmine_version: 4.2-stable
32+
ruby_version: 3.0
33+
- redmine_version: 4.2-stable
34+
ruby_version: 3.1
35+
36+
services:
37+
postgres:
38+
image: postgres:${{ matrix.db_version }}
39+
env:
40+
POSTGRES_USER: postgres
41+
POSTGRES_PASSWORD: postgres
42+
ports:
43+
- 5432:5432
44+
options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5
45+
46+
steps:
47+
- name: Checkout Redmine
48+
uses: actions/checkout@v2
49+
with:
50+
repository: redmine/redmine
51+
ref: ${{ matrix.redmine_version }}
52+
path: redmine
53+
54+
- name: Checkout Plugin
55+
uses: actions/checkout@v2
56+
with:
57+
path: redmine/plugins/${{ env.PLUGIN_NAME }}
58+
59+
- name: Update package archives
60+
run: apt-get update --yes --quiet
61+
62+
- name: Install package dependencies
63+
run: >
64+
apt-get install --yes --quiet
65+
postgresql-client
66+
67+
- name: Prepare Redmine source
68+
working-directory: redmine
69+
run: |
70+
cat <<EOF > config/database.yml
71+
test:
72+
adapter: postgresql
73+
database: redmine
74+
host: postgres
75+
username: postgres
76+
password: postgres
77+
encoding: utf8
78+
EOF
79+
80+
- name: Install Ruby dependencies
81+
working-directory: redmine
82+
run: |
83+
bundle config set --local without 'development'
84+
bundle install --jobs=4 --retry=3
85+
86+
- name: Run Redmine rake tasks
87+
env:
88+
RAILS_ENV: test
89+
working-directory: redmine
90+
run: |
91+
bundle exec rake generate_secret_token
92+
bundle exec rake db:create db:migrate redmine:plugins:migrate
93+
94+
- name: Zeitwerk check
95+
env:
96+
RAILS_ENV: test
97+
working-directory: redmine
98+
run: |
99+
if grep -q zeitwerk config/application.rb ; then
100+
bundle exec rake zeitwerk:check
101+
fi
102+
shell: bash
103+
104+
- name: Run tests
105+
env:
106+
RAILS_ENV: test
107+
working-directory: redmine
108+
run: bundle exec rake redmine:plugins:test NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0"
109+
110+
- name: Run uninstall test
111+
env:
112+
RAILS_ENV: test
113+
working-directory: redmine
114+
run: bundle exec rake redmine:plugins:migrate NAME=${{ env.PLUGIN_NAME }} VERSION=0

.github/workflows/test-sqlite.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
name: Test with SQLite
2+
3+
env:
4+
PLUGIN_NAME: ${{ github.event.repository.name }}
5+
6+
on:
7+
push:
8+
branches:
9+
- main
10+
- master
11+
pull_request:
12+
branches:
13+
- main
14+
- master
15+
16+
jobs:
17+
test:
18+
name: redmine:${{ matrix.redmine_version }} ruby:${{ matrix.ruby_version }} sqlite
19+
runs-on: ubuntu-22.04
20+
21+
container:
22+
image: ruby:${{ matrix.ruby_version }}-bullseye
23+
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
redmine_version: [4.2-stable, 5.0-stable, master]
28+
ruby_version: [2.7, 3.0, 3.1]
29+
exclude:
30+
- redmine_version: 4.2-stable
31+
ruby_version: 3.0
32+
- redmine_version: 4.2-stable
33+
ruby_version: 3.1
34+
35+
steps:
36+
- name: Checkout Redmine
37+
uses: actions/checkout@v2
38+
with:
39+
repository: redmine/redmine
40+
ref: ${{ matrix.redmine_version }}
41+
path: redmine
42+
43+
- name: Checkout Plugin
44+
uses: actions/checkout@v2
45+
with:
46+
path: redmine/plugins/${{ env.PLUGIN_NAME }}
47+
48+
- name: Update package archives
49+
run: apt-get update --yes --quiet
50+
51+
- name: Install package dependencies
52+
run: >
53+
apt-get install --yes --quiet
54+
55+
- name: Prepare Redmine source
56+
working-directory: redmine
57+
run: |
58+
cat <<EOF > config/database.yml
59+
test:
60+
adapter: sqlite3
61+
database: db/redmine.sqlite3
62+
EOF
63+
64+
- name: Install Ruby dependencies
65+
working-directory: redmine
66+
run: |
67+
bundle config set --local without 'development'
68+
bundle install --jobs=4 --retry=3
69+
70+
- name: Run Redmine rake tasks
71+
env:
72+
RAILS_ENV: test
73+
working-directory: redmine
74+
run: |
75+
bundle exec rake generate_secret_token
76+
bundle exec rake db:create db:migrate redmine:plugins:migrate
77+
78+
- name: Zeitwerk check
79+
env:
80+
RAILS_ENV: test
81+
working-directory: redmine
82+
run: |
83+
if grep -q zeitwerk config/application.rb ; then
84+
bundle exec rake zeitwerk:check
85+
fi
86+
shell: bash
87+
88+
- name: Run tests
89+
env:
90+
RAILS_ENV: test
91+
working-directory: redmine
92+
run: bundle exec rake redmine:plugins:test NAME=${{ env.PLUGIN_NAME }} RUBYOPT="-W0"
93+
94+
- name: Run uninstall test
95+
env:
96+
RAILS_ENV: test
97+
working-directory: redmine
98+
run: bundle exec rake redmine:plugins:migrate NAME=${{ env.PLUGIN_NAME }} VERSION=0

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# Redmine Text Blocks Plugin
22

3-
![CI #develop](https://github.com/gtt-project/redmine_text_blocks/workflows/Test%20with%20Redmine/badge.svg)
3+
[![CI](https://github.com/gtt-project/redmine_text_blocks/workflows/Test%20with%20Postgres/badge.svg)](https://github.com/gtt-project/redmine_text_blocks/actions?query=workflow%3A%22Test%20with%20Postgres%22+branch%3Amain)
4+
[![CI](https://github.com/gtt-project/redmine_text_blocks/workflows/Test%20with%20MySQL/badge.svg)](https://github.com/gtt-project/redmine_text_blocks/actions?query=workflow%3A%22Test%20with%20MySQL%22+branch%3Amain)
5+
[![CI](https://github.com/gtt-project/redmine_text_blocks/workflows/Test%20with%20SQLite/badge.svg)](https://github.com/gtt-project/redmine_text_blocks/actions?query=workflow%3A%22Test%20with%20SQLite%22+branch%3Amain)
46

57
This plugin adds configurable text blocks for replying to issues.
68

0 commit comments

Comments
 (0)