@@ -27,6 +27,24 @@ outputs:
27
27
runs :
28
28
using : composite
29
29
steps :
30
+ - id : parse
31
+ run : |
32
+ : parse toolchain version
33
+ if [[ $toolchain =~ ^[0-9]+' '(year|month|week|day)s?' 'ago$ ]]; then
34
+ if [[ ${{runner.os}} == macOS ]]; then
35
+ echo "::set-output name=toolchain::1.$((($(date -v-$(sed 's/\([0-9]*\) \(.\).*/\1\2/' <<< $toolchain) +%s)/60/60/24-16569)/7/6))"
36
+ else
37
+ echo "::set-output name=toolchain::1.$((($(date --date "$toolchain" +%s)/60/60/24-16569)/7/6))"
38
+ fi
39
+ elif [[ $toolchain =~ ^stable' 'minus' '[0-9]+' 'releases?$ ]]; then
40
+ echo "::set-output name=toolchain::1.$((($(date +%s)/60/60/24-16569)/7/6-${toolchain//[^0-9]/}))"
41
+ else
42
+ echo "::set-output name=toolchain::$toolchain"
43
+ fi
44
+ env :
45
+ toolchain : ${{inputs.toolchain}}
46
+ shell : bash
47
+
30
48
- id : flags
31
49
run : |
32
50
: construct rustup command line
@@ -47,18 +65,18 @@ runs:
47
65
if: runner.os != 'Windows'
48
66
shell: bash
49
67
50
- - name : rustup toolchain install ${{inputs .toolchain}}
51
- run : rustup toolchain install ${{inputs .toolchain}}${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update
68
+ - name : rustup toolchain install ${{steps.parse.outputs .toolchain}}
69
+ run : rustup toolchain install ${{steps.parse.outputs .toolchain}}${{steps.flags.outputs.targets}}${{steps.flags.outputs.components}} --profile minimal${{steps.flags.outputs.downgrade}} --no-self-update
52
70
shell : bash
53
71
54
- - run : rustup default ${{inputs .toolchain}}
72
+ - run : rustup default ${{steps.parse.outputs .toolchain}}
55
73
shell : bash
56
74
57
75
- id : rustc-version
58
76
run : |
59
77
: create cachekey
60
- DATE=$(rustc +${{inputs .toolchain}} --version --verbose | sed -ne 's/^commit-date: \(20[0-9][0-9]\)-\([01][0-9]\)-\([0-3][0-9]\)$/\1\2\3/p')
61
- HASH=$(rustc +${{inputs .toolchain}} --version --verbose | sed -ne 's/^commit-hash: //p')
78
+ DATE=$(rustc +${{steps.parse.outputs .toolchain}} --version --verbose | sed -ne 's/^commit-date: \(20[0-9][0-9]\)-\([01][0-9]\)-\([0-3][0-9]\)$/\1\2\3/p')
79
+ HASH=$(rustc +${{steps.parse.outputs .toolchain}} --version --verbose | sed -ne 's/^commit-hash: //p')
62
80
echo "::set-output name=cachekey::$(echo $DATE$HASH | head -c12)"
63
81
shell : bash
64
82
67
85
echo CARGO_INCREMENTAL=0 >> $GITHUB_ENV
68
86
shell: bash
69
87
70
- - run : rustc +${{inputs .toolchain}} --version --verbose
88
+ - run : rustc +${{steps.parse.outputs .toolchain}} --version --verbose
71
89
shell : bash
0 commit comments