用 GitHub Action 進行 CPAN 模組測試

作者:   發佈於:   #perl #cpan #ci #github

這幾年來一直使用 Travis CI 提供的免費服務來執行自己的 CPAN 模組測試。設定方式很簡單而且執行容易,十分感謝 Travis CI, GmbH 提供這項免費服務出來。接下來他們要逐漸轉向收費模式,依照價格表看來,基本費用是每個月 69 美金。以其執行速度來說對於小企業來說算是很划算的價碼,在此祝他們生意興隆。

這幾年有不少 CI 服務新出,各自有對開源專案提供免費額度。如果使用 GitHub 存放源碼,現在也能直接使用 GitHub Action,實在是很容易。

最近加了一些 GitHub Action 到 perlbrew 源碼中。利用了 Setup Perl environment,能在 ubuntu, macos, windows 上進行測試。

Workflow 設定檔內容與範例相去不遠,列出如下:

name: CI

on: pull_request

jobs:
  yath:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: ['ubuntu-18.04', 'ubuntu-16.04']
        perl: [ '5.32', '5.30' ]
    name: Perl ${{ matrix.perl }} on ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
      - name: Set up perl
        uses: shogo82148/actions-setup-perl@v1
        with:
          perl-version: ${{ matrix.perl }}
      - run: perl -V
      - run: cpanm --quite --notest --installdeps .
      - run: cpanm --quite --notest App::Yath
      - run: yath test --qvf t/

不過,如果不需要在多個作業系統上測試,也可利用 docker hub 上的 perl container image

name: CI

on: pull_request

jobs:
  yath:
    container:
      image: perl:5.32
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: perl -V
      - run: cpanm --quite --notest --installdeps .
      - run: cpanm --quite --notest App::Yath
      - run: yath test --qvf t/

docker hub 上的 perl container image 的更新還算迅速而且頻繁,而且幾乎所有 perl 版本都有提供。拿來跑測試十分適合。