diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml new file mode 100644 index 00000000..0754dad7 --- /dev/null +++ b/.github/workflows/build-and-test.yml @@ -0,0 +1,123 @@ +--- +name: dzil build and test + +on: + push: + branches: + - "*" + pull_request: + branches: + - "*" + schedule: + - cron: "15 4 * * 0" # Every Sunday morning + +jobs: + build-job: + name: Build distribution + runs-on: ubuntu-latest + container: + image: perldocker/perl-tester:5.32 + steps: + - uses: actions/checkout@v2 + - name: Run Tests + env: + AUTHOR_TESTING: 1 + AUTOMATED_TESTING: 1 + EXTENDED_TESTING: 1 + RELEASE_TESTING: 1 + run: upgrade-perl-helpers && auto-build-and-test-dist + - uses: actions/upload-artifact@master + with: + name: build_dir + path: build_dir + coverage-job: + needs: build-job + runs-on: ubuntu-latest + container: + image: perldocker/perl-tester:5.32 + steps: + - uses: actions/checkout@v2 # codecov wants to be inside a Git repository + - uses: actions/download-artifact@master + with: + name: build_dir + path: . + - name: Install deps and test + run: cpan-install-dist-deps --with-develop && test-dist + env: + CODECOV_TOKEN: ${{secrets.CODECOV_TOKEN}} + test-linux: + needs: build-job + runs-on: ubuntu-latest + container: + image: "perldocker/perl-tester:${{ matrix.perl-version }}" + name: "${{ matrix.perl-version }} on Linux" + strategy: + matrix: + perl-version: + - "5.8" + - "5.10" + - "5.12" + - "5.14" + - "5.16" + - "5.18" + - "5.20" + - "5.22" + - "5.24" + - "5.26" + - "5.28" + - "5.30" + - "5.32" + steps: + - uses: actions/checkout@v2 + - uses: actions/download-artifact@master + with: + name: build_dir + path: . + - name: Install deps and test + run: cpan-install-dist-deps && test-dist + test-macos-and-windows: + needs: test-linux + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest] + perl-version: + - "5.8" + - "5.10" + - "5.12" + - "5.14" + - "5.16" + - "5.18" + - "5.20" + - "5.22" + - "5.24" + - "5.26" + - "5.28" + - "5.30" + - "5.32" + exclude: + - os: windows-latest + perl-version: "5.8" + - os: windows-latest + perl-version: "5.10" + - os: windows-latest + perl-version: "5.12" + - os: windows-latest + perl-version: "5.32" + name: ${{ matrix.perl-version }} on ${{ matrix.os }} + steps: + - name: Set Up Perl + uses: shogo82148/actions-setup-perl@v1 + with: + perl-version: ${{ matrix.perl-version }} + distribution: strawberry # this option only used on Windows + - uses: actions/download-artifact@master + with: + name: build_dir + path: . + - name: install deps using cpm + uses: perl-actions/install-with-cpm@v1.3 + with: + cpanfile: "cpanfile" + args: "--with-suggests --with-test --with-develop" + - run: prove -lr t