diff options
Diffstat (limited to '.github/workflows')
-rw-r--r-- | .github/workflows/coverage.yml | 62 | ||||
-rw-r--r-- | .github/workflows/cypress.yml | 46 | ||||
-rw-r--r-- | .github/workflows/default.yml | 49 |
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 |