{"id":20707618,"url":"https://github.com/theory/winperl-travis","last_synced_at":"2026-04-22T19:35:48.430Z","repository":{"id":66729467,"uuid":"165291359","full_name":"theory/winperl-travis","owner":"theory","description":"Experimenting with testing a Perl project on a Travis CI Windows Host","archived":false,"fork":false,"pushed_at":"2019-01-15T23:39:51.000Z","size":81,"stargazers_count":2,"open_issues_count":1,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-11T05:27:23.743Z","etag":null,"topics":["chocolatey","perl","strawberry-perl","travis-ci","windows"],"latest_commit_sha":null,"homepage":null,"language":"Perl","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/theory.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-01-11T18:33:20.000Z","updated_at":"2020-05-10T11:27:34.000Z","dependencies_parsed_at":null,"dependency_job_id":"ecc859e4-bd0d-45b6-8d1a-cd7bec7b67d6","html_url":"https://github.com/theory/winperl-travis","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/theory/winperl-travis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fwinperl-travis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fwinperl-travis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fwinperl-travis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fwinperl-travis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/theory","download_url":"https://codeload.github.com/theory/winperl-travis/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/theory%2Fwinperl-travis/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32152605,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-22T17:06:48.269Z","status":"ssl_error","status_checked_at":"2026-04-22T17:06:19.037Z","response_time":58,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["chocolatey","perl","strawberry-perl","travis-ci","windows"],"created_at":"2024-11-17T01:27:01.940Z","updated_at":"2026-04-22T19:35:48.401Z","avatar_url":"https://github.com/theory.png","language":"Perl","funding_links":[],"categories":[],"sub_categories":[],"readme":"Travis CI Windows + Strawberry Perl\n===================================\n\n[![Build Status](https://api.travis-ci.com/theory/winperl-travis.svg)](https://travis-ci.com/theory/winperl-travis)\n\nA simple sample project for installing dependencies and running tests with\n[Strawberry Perl] on the [Travis CI Windows Build Environment]. See the\n[`.travis.yml`] file for the working code. The basic steps are:\n\n*   Install Strawberry Perl\n*   Add Strawberry Perl to the path\n*   Install dependencies with [cpanminus]\n*   Build and test your Perl project as usual\n\nStages\n------\n\nThere are three basic approaches to testing  Perl project on Travis\nWindows:\n\n1.  Windows-Only default \"Test\" stage with version matrix\n2.  Windows stage test with the latest version of Perl\n3.  Hack stage to test on multiple versions of Perl\n\n### Default Test Stage Matrix\n\nIf you only want to test on Windows with [Strawberry Perl], and don't care about\nany other OS, this is the way to go. First, set the OS, language, and matrix of\n[Strawberry Perl versions] via Environment variables :\n\n``` yaml\nos: windows\nlanguage: shell\nenv:\n  - PERL_VERSION: 5.28.1.1\n  - PERL_VERSION: 5.26.3.1\n```\n\nNext, use [Chocolatey] to install a specific version of [Strawberry Perl]\nand add it to the path:\n\n``` yaml\nbefore_install:\n  - cinst -y strawberryperl --version $PERL_VERSION\n  - export \"PATH=/c/Strawberry/perl/site/bin:/c/Strawberry/perl/bin:/c/Strawberry/c/bin:$PATH\"\n```\n\nAnd finally, install any dependencies and then build and test your project as\nusual:\n\n``` yaml\ninstall:\n  - cpanm --notest --installdeps .\nscript:\n  - perl Makefile.PL\n  - gmake\n  - gmake test\n  ```\n\n### Single Windows Stage\n\nIf you already use the standard Travis environment for a matrix of [Perl\nversions], and just want to test your project against a single version of Perl\non Windows, Add a custom stage, perhaps named \"Windows\", like so:\n\n``` yaml\njobs:\n  include:\n    - stage: Windows\n      os: windows\n      language: shell\n      before_install:\n        - cinst -y strawberryperl\n        - export \"PATH=/c/Strawberry/perl/site/bin:/c/Strawberry/perl/bin:/c/Strawberry/c/bin:$PATH\"\n      install:\n        - cpanm --notest --installdeps .\n      script:\n        - perl Makefile.PL\n        - gmake\n        - gmake test\n```\n\nNote that the `before_install` phase installs the latest version of [Strawberry\nPerl], without regard to any environment variables.  All the other phases are\nthe same as the default stage.\n\n### Windows Matrix Stage\n\nTo test on multiple versions of Perl on Windows but still keep the default\n\"Test\" stage on Linux, it's possible, although build stages do not ([yet]?)\nsupport matrix expansion. Instead, we have to rely on [a workaround] where\nmultiple stages with the same name are considered a matrix. To avoid a ton\nof redundancy, use [YAML anchors and aliases] in the [`.travis.yml`]:\n\n``` yaml\njobs:\n  include:\n\n    # First instance of \"stage: Strawberry\" creates alias and tests 5.28.1.1.\n    - \u0026strawberry\n      stage: Strawberry\n      os: windows\n      language: shell\n      env: PERL_VERSION=5.28.1.1\n      before_install:\n        - cinst -y strawberryperl --version $PERL_VERSION\n        - export \"PATH=/c/Strawberry/perl/site/bin:/c/Strawberry/perl/bin:/c/Strawberry/c/bin:$PATH\"\n      install:\n        - cpanm --notest --installdeps .\n      script:\n        - perl Makefile.PL\n        - gmake\n        - gmake test\n\n    # Subsequent instances use the alias to test different versions.\n    - \u003c\u003c: *strawberry\n      env: PERL_VERSION=5.26.3.1\n    - \u003c\u003c: *strawberry\n      env: PERL_VERSION=5.26.2.1\n```\n\nCaveats\n-------\n\n*   The [Travis CI Windows Build Environment] is in an early release and subject\n    to change. Be sure to consult the [known issues] when you run into problems.\n*   The shell environment on is [Git Bash], not `cmd.exe` or PowerShell (though\n    Travis is \"[looking into adding first class Powershell support very soon]\")\n*   The `prove` utility does not currently work, perhaps because `prove.bat` is\n    installed but [Git Bash] requires just `prove`? That's just a guess\n    ([bug report]).\n\n*   As of this writing, Strawberry Perl 5.24 doesn't work well with\n    `Makefile.PL` distributions, including dependencies. Theoretically, one can\n    use `dmake` instead of `gmake`, but even then, there seems to be some sort\n    of conflict with the system Perl. See [issue #1] for details.\n\n  [Strawberry Perl]: http://strawberryperl.com\n  [Travis CI Windows Build Environment]: https://docs.travis-ci.com/user/reference/windows/\n  [`.travis.yml`]: ./.travis.yml\n  [Strawberry Perl versions]: https://chocolatey.org/packages/StrawberryPerl#versionhistory\n  [cpanminus]: https://github.com/miyagawa/cpanminus\n  [Chocolatey]: https://chocolatey.org\n  [Perl versions]: https://docs.travis-ci.com/user/languages/perl/\n    \"Travis CI: Building a Perl Project\"\n  [yet]: https://github.com/travis-ci/travis-ci/issues/8295\n    \"Support Matrix expansion per-stage in Build Stages feature\"\n  [YAML anchors and aliases]: http://www.yaml.org/spec/1.2/spec.html#id2765878\n  [a workaround]: https://github.com/travis-ci/travis-ci/issues/8295#issuecomment-325044011\n  [known issues]: https://travis-ci.community/t/current-known-issues-please-read-this-before-posting-a-new-topic/264\n    \"Travis CI Community: “Current known \\[Windows\\] issues — Please read this before posting a new topic”\"\n  [Git Bash]: https://gitforwindows.org\n  [looking into adding first class Powershell support very soon]:\n    https://docs.travis-ci.com/user/reference/windows/#powershell\n  [bug report]: https://rt.cpan.org/Public/Bug/Display.html?id=128221\n    \"Bug #128221 for Perl-Dist-Strawberry: Prove Perl Script not Installed\"\n  [issue #1]: https://github.com/theory/winperl-travis/issues/1\n    \"Strawberry Perl 5.24 Makefile.PL Builds Fail\"\n\nAuthor\n------\n\n[David E. Wheeler](https://justatheory.com/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheory%2Fwinperl-travis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftheory%2Fwinperl-travis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftheory%2Fwinperl-travis/lists"}