Patch #42688 » Extract-system-tests-to-a-separate-job-run-only-on-SQLite3-and-latest-stable-Ruby.patch
.github/actions/setup-redmine/action.yml | ||
---|---|---|
1 |
name: Setup Redmine Test Environment |
|
2 |
description: Composite action for setting up Redmine test environment |
|
3 | ||
4 |
inputs: |
|
5 |
db-type: |
|
6 |
description: 'Database type: postgresql, mysql2, or sqlite3. Note: postgresql and mysql2 require service containers to be defined in the workflow.' |
|
7 |
required: true |
|
8 |
ruby-version: |
|
9 |
description: 'Ruby version to use' |
|
10 |
required: true |
|
11 | ||
12 |
runs: |
|
13 |
using: composite |
|
14 |
steps: |
|
15 |
- name: Install dependencies and configure environment |
|
16 |
shell: bash |
|
17 |
run: | |
|
18 |
sudo apt-get update |
|
19 |
sudo apt-get install --yes --quiet ghostscript gsfonts locales bzr cvs |
|
20 |
sudo locale-gen en_US # for bazaar non ascii test |
|
21 | ||
22 |
- name: Allow imagemagick to read PDF files |
|
23 |
shell: bash |
|
24 |
run: | |
|
25 |
echo '<policymap>' > policy.xml |
|
26 |
echo '<policy domain="coder" rights="read | write" pattern="PDF" />' >> policy.xml |
|
27 |
echo '</policymap>' >> policy.xml |
|
28 |
sudo rm /etc/ImageMagick-6/policy.xml |
|
29 |
sudo mv policy.xml /etc/ImageMagick-6/policy.xml |
|
30 | ||
31 |
- if: ${{ inputs.db-type == 'sqlite3' }} |
|
32 |
name: Prepare test database for sqlite3 |
|
33 |
shell: bash |
|
34 |
run: | |
|
35 |
cat > config/database.yml <<EOF |
|
36 |
test: |
|
37 |
adapter: sqlite3 |
|
38 |
database: db/test.sqlite3 |
|
39 |
EOF |
|
40 | ||
41 |
- if: ${{ inputs.db-type == 'mysql2' || inputs.db-type == 'postgresql' }} |
|
42 |
name: Prepare test database for mysql2 and postgresql |
|
43 |
shell: bash |
|
44 |
run: | |
|
45 |
cat > config/database.yml <<EOF |
|
46 |
test: |
|
47 |
adapter: ${{ inputs.db-type }} |
|
48 |
database: redmine_test |
|
49 |
username: root |
|
50 |
password: root |
|
51 |
host: 127.0.0.1 |
|
52 |
EOF |
|
53 | ||
54 |
- name: Install Ruby and gems |
|
55 |
uses: ruby/setup-ruby@v1 |
|
56 |
with: |
|
57 |
ruby-version: ${{ inputs.ruby-version }} |
|
58 |
bundler-cache: true |
|
59 | ||
60 |
- name: Run prepare test environment |
|
61 |
shell: bash |
|
62 |
env: |
|
63 |
RAILS_ENV: test |
|
64 |
SCMS: subversion,git,git_utf8,filesystem,bazaar,cvs |
|
65 |
run: | |
|
66 |
bundle exec rake ci:about |
|
67 |
bundle exec rake ci:setup |
|
68 |
bundle exec rake db:environment:set |
.github/workflows/tests.yml | ||
---|---|---|
46 | 46 |
- name: Checkout code |
47 | 47 |
uses: actions/checkout@v4 |
48 | 48 | |
49 |
- name: Install dependencies and configure environment |
|
50 |
run: | |
|
51 |
sudo apt-get update |
|
52 |
sudo apt-get install --yes --quiet ghostscript gsfonts locales bzr cvs |
|
53 |
sudo locale-gen en_US # for bazaar non ascii test |
|
54 | ||
55 |
- name: Allow imagemagick to read PDF files |
|
56 |
run: | |
|
57 |
echo '<policymap>' > policy.xml |
|
58 |
echo '<policy domain="coder" rights="read | write" pattern="PDF" />' >> policy.xml |
|
59 |
echo '</policymap>' >> policy.xml |
|
60 |
sudo rm /etc/ImageMagick-6/policy.xml |
|
61 |
sudo mv policy.xml /etc/ImageMagick-6/policy.xml |
|
62 | ||
63 |
- if: ${{ matrix.db == 'sqlite3' }} |
|
64 |
name: Prepare test database for sqlite3 |
|
65 |
run: | |
|
66 |
cat > config/database.yml <<EOF |
|
67 |
test: |
|
68 |
adapter: sqlite3 |
|
69 |
database: db/test.sqlite3 |
|
70 |
EOF |
|
71 | ||
72 |
- if: ${{ matrix.db == 'mysql2' || matrix.db == 'postgresql' }} |
|
73 |
name: Prepare test database for mysql2 and postgresql |
|
74 |
run: | |
|
75 |
cat > config/database.yml <<EOF |
|
76 |
test: |
|
77 |
adapter: ${{ matrix.db }} |
|
78 |
database: redmine_test |
|
79 |
username: root |
|
80 |
password: root |
|
81 |
host: 127.0.0.1 |
|
82 |
EOF |
|
83 | ||
84 |
- name: Install Ruby and gems |
|
85 |
uses: ruby/setup-ruby@v1 |
|
49 |
- name: Setup Redmine test environment |
|
50 |
uses: ./.github/actions/setup-redmine |
|
86 | 51 |
with: |
52 |
db-type: ${{ matrix.db }} |
|
87 | 53 |
ruby-version: ${{ matrix.ruby }} |
88 |
bundler-cache: true |
|
89 | ||
90 |
- name: Run prepare test environment |
|
91 |
env: |
|
92 |
RAILS_ENV: test |
|
93 |
SCMS: subversion,git,git_utf8,filesystem,bazaar,cvs |
|
94 |
run: | |
|
95 |
bundle exec rake ci:about |
|
96 |
bundle exec rake ci:setup |
|
97 |
bundle exec rake db:environment:set |
|
98 | 54 | |
99 | 55 |
- name: Run tests |
100 | 56 |
run: | |
... | ... | |
111 | 67 |
run: | |
112 | 68 |
bin/rails test:autoload |
113 | 69 | |
70 |
system-tests: |
|
71 |
name: system test |
|
72 |
runs-on: ubuntu-latest |
|
73 | ||
74 |
steps: |
|
75 |
- name: Checkout code |
|
76 |
uses: actions/checkout@v4 |
|
77 | ||
78 |
- name: Setup Redmine test environment |
|
79 |
uses: ./.github/actions/setup-redmine |
|
80 |
with: |
|
81 |
db-type: sqlite3 |
|
82 |
ruby-version: '3.4' |
|
83 | ||
114 | 84 |
# System tests use Chrome and ChromeDriver installed on the GitHub Actions Ubuntu image. |
115 | 85 |
# They are generally updated to the latest stable versions. |
86 |
- name: Display Chrome version |
|
87 |
run: google-chrome --version |
|
88 | ||
116 | 89 |
- name: Run system tests |
117 |
run: | |
|
118 |
google-chrome --version |
|
119 |
bin/rails test:system |
|
90 |
run: bin/rails test:system |
|
120 | 91 |
env: |
121 | 92 |
GOOGLE_CHROME_OPTS_ARGS: headless,disable-gpu,no-sandbox,disable-dev-shm-usage |
122 | 93 |
# System tests might still be a bit unstable, so for now, even if a system test fails, |
... | ... | |
127 | 98 |
if: always() |
128 | 99 |
uses: actions/upload-artifact@v4 |
129 | 100 |
with: |
130 |
name: system-test-screenshots-ruby${{ matrix.ruby }}-${{ matrix.db }}
|
|
101 |
name: system-test-screenshots-ruby3.4-sqlite3
|
|
131 | 102 |
path: tmp/screenshots |
132 | 103 |
if-no-files-found: ignore |