-
Notifications
You must be signed in to change notification settings - Fork 35
54 lines (48 loc) · 2.29 KB
/
Copy pathcompute.yml
File metadata and controls
54 lines (48 loc) · 2.29 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
name: ✏️ matrix
on:
workflow_call:
outputs:
os:
value: ${{ jobs.compute.outputs.os }}
coverage:
value: ${{ jobs.compute.outputs.coverage }}
major:
value: ${{ jobs.compute.outputs.major }}
php:
value: ${{ jobs.compute.outputs.php }}
exclude:
value: ${{ jobs.compute.outputs.exclude }}
env:
OS: '[ "ubuntu-latest" ]'
COVERAGE: '[ "~9.0.0", "~9.1.0", "~9.2.0", "~10.0.0", "~10.1.0" ]'
PHP: '[ "8.0", "8.1", "8.2", "8.3" ]'
EXCLUDE: '[ { "coverage": "10", "php": "8.0" }, { "coverage": "~10.0.0", "php": "8.0" }, { "coverage": "~10.1.0", "php": "8.0" } ]'
jobs:
compute:
name: Compute outputs
runs-on: ubuntu-latest
outputs:
os: ${{ env.OS }}
coverage: ${{ env.COVERAGE }}
major: ${{ steps.major-version.outputs.major }}
php: ${{ env.PHP }}
exclude: ${{ env.EXCLUDE }}
steps:
- name: Compute major versions
id: major-version
run: |
echo -e "COVERAGE\n"
echo $COVERAGE
echo -e "\n\nSplit by comma\n"
echo $COVERAGE | tr "," "\n"
echo -e "\n\nParse numbers\n"
echo $COVERAGE | tr "," "\n" | tr -cd "\n0-9"
echo -e "\n\nCut last 2 characters\n"
echo $COVERAGE | tr "," "\n" | tr -cd "\n0-9" | sed "s/.\{2\}$//"
echo -e "\n\nSort by version\n"
echo $COVERAGE | tr "," "\n" | tr -cd "\n0-9" | sed "s/.\{2\}$//" | sort -V
echo -e "\n\nUnique values only\n"
echo $COVERAGE | tr "," "\n" | tr -cd "\n0-9" | sed "s/.\{2\}$//" | sort -V | uniq
echo -e "\n\nCovert to JSON\n"
echo $COVERAGE | tr "," "\n" | tr -cd "\n0-9" | sed "s/.\{2\}$//" | sort -V | uniq | jq --compact-output --raw-input --slurp 'split("\n") | map(select(. != ""))'
echo "major=$(echo $COVERAGE | tr "," "\n" | tr -cd "\n0-9" | sed "s/.\{2\}$//" | sort -V | uniq | jq --compact-output --raw-input --slurp 'split("\n") | map(select(. != ""))')" >> $GITHUB_OUTPUT