diff options
author | Jesse Vincent <jesse@keyboard.io> | 2022-08-03 22:17:27 +0300 |
---|---|---|
committer | Jim Brandt <jbrandt@bestpractical.com> | 2022-08-05 22:09:47 +0300 |
commit | b1ff93f685d698f69fbd21c36d70c39a4975e02f (patch) | |
tree | 2ee2eaea5c962f6035c781324ef53e149816ebdc | |
parent | 8f5e491596b9027fddbbe1ad31f7c2901d9ec59c (diff) |
Switch the github test harness to using RT's built in parallel testing make target.
This make the github workflows a little less complicated and turns on
some prove options that help make the test suites finish a bit faster.
* Cache the .prove state file so that "make test-parallel" will run the
slowest test suites first, which generally results in faster test
suite runs
* Switch to a parallelism of 5, which currently benchmarks a hair faster
than a parallelism of 6 for me on GitHub's current runners
-rw-r--r-- | .github/workflows/github-action.yml | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/.github/workflows/github-action.yml b/.github/workflows/github-action.yml index e2f624c0a6..24677373b0 100644 --- a/.github/workflows/github-action.yml +++ b/.github/workflows/github-action.yml @@ -15,6 +15,12 @@ jobs: echo "RT_GA_START_TIME=$(date +%s)" >> $GITHUB_ENV - name: Check out RT uses: actions/checkout@v2 + - name: Cache .prove state + id: cache-prove-state + uses: actions/cache@v3 + with: + path: .prove + key: ${{ runner.os }}-sqlite - name: Build RT shell: bash run: | @@ -23,7 +29,7 @@ jobs: docker exec rt bash -c "cd /rt && ./configure.ac --with-db-type=SQLite --with-my-user-group --enable-layout=inplace --enable-developer --enable-externalauth --enable-gpg --enable-smime && mkdir -p /rt/var && make testdeps" - name: Run RT tests shell: bash - run: docker exec rt bash -c "cd /rt && prove -rlj6 t/*" + run: docker exec rt bash -c "cd /rt && RT_TEST_PARALLEL_NUM=5 make test-parallel" - name: Get run time if: always() shell: bash @@ -60,6 +66,12 @@ jobs: echo "RT_GA_START_TIME=$(date +%s)" >> $GITHUB_ENV - name: Checkout RT uses: actions/checkout@v2 + - name: Cache .prove state + id: cache-prove-state + uses: actions/cache@v3 + with: + path: .prove + key: ${{ runner.os }}-mariadb - name: Build RT shell: bash run: | @@ -70,7 +82,7 @@ jobs: docker exec rt bash -c "cd /rt && ./configure.ac --with-db-type=mysql --with-my-user-group --enable-layout=inplace --enable-developer --enable-externalauth --enable-gpg --enable-smime && mkdir -p /rt/var && make testdeps" - name: Run RT tests shell: bash - run: docker exec rt bash -c "cd /rt && prove -rlj6 t/*" + run: docker exec rt bash -c "cd /rt && RT_TEST_PARALLEL_NUM=5 make test-parallel" - name: Get run time if: always() shell: bash @@ -107,6 +119,12 @@ jobs: echo "RT_GA_START_TIME=$(date +%s)" >> $GITHUB_ENV - name: Checkout RT uses: actions/checkout@v2 + - name: Cache .prove state + id: cache-prove-state + uses: actions/cache@v3 + with: + path: .prove + key: ${{ runner.os }}-pg-fcgid - name: Build RT shell: bash run: | @@ -118,7 +136,7 @@ jobs: docker exec -e USER=rt-user -u rt-user rt bash -c "cd /rt && ./configure.ac --with-db-type=Pg --with-my-user-group --enable-layout=inplace --with-web-handler=fcgid --enable-developer --enable-externalauth --enable-gpg --enable-smime && mkdir -p /rt/var && make testdeps && chmod a+rX /rt/sbin/*" - name: Run RT tests shell: bash - run: docker exec -e RT_DBA_USER=postgres -e RT_TEST_WEB_HANDLER=apache+fcgid -e HTTPD_ROOT=/etc/apache2 -e RT_TEST_APACHE=/usr/sbin/apache2 -e RT_TEST_APACHE_MODULES=/usr/lib/apache2/modules -u rt-user rt bash -c "cd /rt && prove -rlj6 t/*" + run: docker exec -e RT_DBA_USER=postgres -e RT_TEST_WEB_HANDLER=apache+fcgid -e HTTPD_ROOT=/etc/apache2 -e RT_TEST_APACHE=/usr/sbin/apache2 -e RT_TEST_APACHE_MODULES=/usr/lib/apache2/modules -u rt-user rt bash -c "cd /rt && RT_TEST_PARALLEL_NUM=5 make test-parallel" - name: Get run time if: always() shell: bash |