aboutsummaryrefslogtreecommitdiffstats
path: root/.github/workflows
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows')
-rw-r--r--.github/workflows/coverage.yml62
-rw-r--r--.github/workflows/cypress.yml46
-rw-r--r--.github/workflows/default.yml49
3 files changed, 157 insertions, 0 deletions
diff --git a/.github/workflows/coverage.yml b/.github/workflows/coverage.yml
new file mode 100644
index 000000000..163f777c4
--- /dev/null
+++ b/.github/workflows/coverage.yml
@@ -0,0 +1,62 @@
+name: Coverage
+
+on: [push, pull_request]
+
+jobs:
+ test:
+ name: Run coverage tests
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ part: [ 1, 2, 3 ]
+
+ env:
+ PERL5LIB: local-coverage/lib/perl5
+ HARNESS_PERL_SWITCHES: "-MDevel::Cover=+ignore,local/lib/perl5,commonlib,perllib/Catalyst/[^A],perllib/Email,Test.pm,^t"
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+
+ - uses: niden/actions-memcached@v7
+
+ - name: Setup cache (carton)
+ uses: actions/cache@v2
+ with:
+ path: local
+ key: ${{ runner.os }}-carton-${{ hashFiles('cpanfile.snapshot') }}
+
+ - name: Setup cache (coverage)
+ uses: actions/cache@v2
+ with:
+ path: local-coverage
+ key: ${{ runner.os }}-coverage
+
+ - name: Install packages
+ run: |
+ sudo apt install -y gettext language-pack-en language-pack-de language-pack-sv libimage-magick-perl
+ vendor/bin/carton install --deployment
+ commonlib/bin/gettext-makemo FixMyStreet
+ bin/cpanm --quiet --notest -l local-coverage Devel::Cover::Report::Codecov JSON::MaybeXS
+
+ - name: Run tests (with coverage, part 1)
+ if: matrix.part == 1
+ run: script/test --jobs 3 $(find t/app/controller -name "[a-q]*.t")
+
+ - name: Run tests (with coverage, part 2)
+ if: matrix.part == 2
+ run: script/test --jobs 3 $(find t/app/controller -name "[r-z]*.t")
+
+ - name: Run tests (with coverage, part 3)
+ if: matrix.part == 3
+ run: script/test --jobs 3 $(find t -name "*.t" ! -path "t/app/controller*")
+
+ - name: Generate coverage report
+ if: success()
+ run: local-coverage/bin/cover --report codecov
+ env:
+ PERL5LIB: 'local-coverage/lib/perl5:perllib'
+ CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
diff --git a/.github/workflows/cypress.yml b/.github/workflows/cypress.yml
new file mode 100644
index 000000000..557ebd529
--- /dev/null
+++ b/.github/workflows/cypress.yml
@@ -0,0 +1,46 @@
+name: Cypress
+
+on: [push, pull_request]
+
+jobs:
+ test:
+ name: Run Cypress tests
+ runs-on: ubuntu-latest
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+
+ - name: Setup node
+ uses: actions/setup-node@v1
+ with:
+ node-version: 8.x
+
+ - name: Setup cache (carton)
+ uses: actions/cache@v2
+ with:
+ path: local
+ key: ${{ runner.os }}-carton-${{ hashFiles('cpanfile.snapshot') }}
+
+ - name: Setup cache (cypress)
+ uses: actions/cache@v2
+ with:
+ path: |
+ ~/.npm
+ node_modules
+ key: ${{ runner.os }}-node-8-cypress-3.8.3
+
+ - name: Install packages
+ run: |
+ sudo apt install -y gettext
+ npm install cypress@3.8.3
+ vendor/bin/carton install --deployment
+ commonlib/bin/gettext-makemo FixMyStreet
+ echo "$(npm bin)" >> $GITHUB_PATH
+
+ - name: Run Cypress tests
+ run: |
+ bin/browser-tests run ${CYPRESS_RECORD_KEY:+--record}
+ env:
+ CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
diff --git a/.github/workflows/default.yml b/.github/workflows/default.yml
new file mode 100644
index 000000000..c3becce85
--- /dev/null
+++ b/.github/workflows/default.yml
@@ -0,0 +1,49 @@
+name: CI
+
+on: [push, pull_request]
+
+jobs:
+ test:
+ name: Test on perl ${{ matrix.perl_version }}
+ runs-on: ubuntu-latest
+
+ strategy:
+ fail-fast: false
+ matrix:
+ # stretch, buster, focal/bullseye, xenial, trusty
+ # bionic 5.26 is ubuntu-latest, in coverage run
+ perl_version: [ 5.24.4, 5.28.3, 5.30.3, 5.22.4, 5.18.4 ]
+
+ steps:
+ - uses: actions/checkout@v2
+ with:
+ submodules: true
+
+ - name: Setup cache (carton)
+ uses: actions/cache@v2
+ with:
+ path: local
+ key: ${{ runner.os }}-perl-${{ matrix.perl_version }}-carton-${{ hashFiles('cpanfile.snapshot') }}
+
+ - name: Setup cache (perl)
+ id: cache-perl
+ uses: actions/cache@v2
+ with:
+ path: ~/perl5
+ key: ${{ runner.os }}-perl-${{ matrix.perl_version }}
+
+ - name: Install correct perl
+ if: steps.cache-perl.outputs.cache-hit != 'true'
+ run: |
+ wget -qO - https://install.perlbrew.pl | bash
+ ~/perl5/perlbrew/bin/perlbrew install --notest ${{ matrix.perl_version }}
+ ~/perl5/perlbrew/bin/perlbrew clean
+
+ - name: Add packages
+ run: |
+ sudo apt install -y gettext language-pack-en language-pack-de language-pack-sv libimage-magick-perl
+ ~/perl5/perlbrew/bin/perlbrew exec vendor/bin/carton install --deployment
+ commonlib/bin/gettext-makemo FixMyStreet
+
+ - name: Run tests
+ run: ~/perl5/perlbrew/bin/perlbrew exec script/test --jobs 3 t