Skip to content

Commit 0f64090

Browse files
committed
Initial version of perl-versions
1 parent 3243ace commit 0f64090

File tree

4 files changed

+111
-0
lines changed

4 files changed

+111
-0
lines changed

.editorconfig

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
root = true
2+
3+
[*]
4+
end_of_line = lf
5+
insert_final_newline = true
6+
7+
# be tolerant to others, configure your editor's tab-width with
8+
# your preferred value (mine is 4)
9+
[*.js]
10+
charset = utf-8
11+
indent_style = tab
12+
13+
[*.yml]
14+
indent_style = space
15+
indent_size = 2

README.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
2+
# perl-versions
3+
4+
Github action for your matrix to generate list of perls since given.
5+
6+
## Parameters
7+
8+
### since-perl
9+
10+
Required parameter.
11+
12+
For list of available perl versions check
13+
[docker-perl-tester](https://github.com/Perl/docker-perl-tester#using-docker-images-for-your-projects)
14+
15+
Returns perl versions since this (including).
16+
17+
When unknown version is provided, returns empty list.
18+
19+
### with-devel
20+
21+
Default: `false`
22+
23+
When set to `true`, returned list will also include current `devel` version of Perl,
24+
if available.
25+
26+
## Usage
27+
28+
```
29+
jobs:
30+
perl-versions:
31+
runs-on: ubuntu-latest
32+
name: List perl versions
33+
outputs:
34+
perl-versions: ${{ steps.action.outputs.perl-versions }}
35+
steps:
36+
- name: Perl versions action step
37+
id: action
38+
uses: happy-barney/github-workflows/perl-versions@main
39+
with:
40+
since-perl: "v5.20"
41+
42+
test:
43+
needs:
44+
- perl-versions
45+
strategy:
46+
matrix:
47+
perl-versions: ${{ fromJson (needs.perl-versions.outputs.perl-versions }}
48+
49+
```

action.yml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: 'Perl versions'
2+
description: 'Generate Perl versions list for your matrix'
3+
inputs:
4+
since-perl:
5+
description: "List all Perl versions since this (including this). Example: 5.10"
6+
type: string
7+
required: true
8+
with-devel:
9+
description: "Whether to include also 'devel' Perl"
10+
type: boolean
11+
default: false
12+
outputs:
13+
perl-versions:
14+
description: "JSON containing list of perl versions"
15+
runs:
16+
using: node16
17+
main: perl-versions.js

perl-versions.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
2+
const core = require('@actions/core');
3+
const github = require('@actions/github');
4+
5+
try {
6+
const since_perl = core.getInput('since-perl');
7+
const with_devel = core.getInput('with-devel') == "true";
8+
9+
let found = false;
10+
let available = [
11+
"5.8",
12+
"5.10", "5.12", "5.14", "5.16", "5.18",
13+
"5.20", "5.22", "5.24", "5.26", "5.28",
14+
"5.30", "5.32", "5.34", "5.36", "5.38",
15+
"devel",
16+
];
17+
18+
let filtered = available.filter (
19+
(item) => {
20+
if (item == "devel") { return with_devel; }
21+
if (! found) { found = (item == since_perl); }
22+
return found;
23+
}
24+
);
25+
26+
console.log('perl-versions', JSON.stringify(filtered));
27+
core.setOutput('perl-versions', JSON.stringify(filtered));
28+
} catch (error) {
29+
core.setFailed(error.message);
30+
}

0 commit comments

Comments
 (0)