@@ -4,7 +4,36 @@ description: Installs the Swift specified by a .swift-version file
4
4
runs :
5
5
using : " composite"
6
6
steps :
7
+ # - name: "Cache: Swift"
8
+ # id: cache-swift
9
+ # uses: actions/cache@v4
10
+ # with:
11
+ # path: "$HOME/.local/share/swiftly"
12
+ # key: swift-${{ hashFiles('.swift-version') }}
13
+
14
+ - name : Setup Environment
15
+ shell : bash
16
+ run : |
17
+ export SWIFTLY_HOME_DIR="$HOME/.local/share/swiftly"
18
+ echo "SWIFTLY_HOME_DIR=$SWIFTLY_HOME_DIR" >> $GITHUB_ENV
19
+ echo "SWIFTLY_HOME_DIR=$SWIFTLY_HOME_DIR" >> $HOME/.bashrc
20
+
21
+ export SWIFTLY_BIN_DIR="$HOME/.local/share/swiftly/bin"
22
+ echo "SWIFTLY_BIN_DIR=$SWIFTLY_BIN_DIR" >> $GITHUB_ENV
23
+ echo "SWIFTLY_BIN_DIR=$SWIFTLY_BIN_DIR" >> $HOME/.bashrc
24
+
25
+ echo "PATH=$SWIFTLY_BIN_DIR:$PATH" >> $GITHUB_ENV
26
+ echo "PATH=\$SWIFTLY_BIN_DIR:\$PATH" >> $HOME/.bashrc
27
+
28
+ - name : " Restore: Swift"
29
+ uses : actions/cache/restore@v4
30
+ id : cache-swift
31
+ with :
32
+ path : " ~/.local/share/swiftly"
33
+ key : swift-${{ hashFiles('**/.swift-version') }}
34
+
7
35
- name : Install `apt` Dependencies
36
+ if : steps.cache-swift.outputs.cache-hit != 'true'
8
37
shell : bash
9
38
run : |
10
39
SUDO=$(if [[ $EUID -ne 0 ]]; then echo sudo; fi)
14
43
DEBIAN_FRONTEND : noninteractive
15
44
16
45
- name : Install Swiftly
46
+ if : steps.cache-swift.outputs.cache-hit != 'true'
17
47
shell : bash
18
48
run : |
19
- export SWIFTLY_HOME_DIR="$HOME/.local/share/swiftly"
20
- echo "SWIFTLY_HOME_DIR=$SWIFTLY_HOME_DIR" >> $GITHUB_ENV
21
- echo "SWIFTLY_HOME_DIR=$SWIFTLY_HOME_DIR" >> $HOME/.bashrc
22
-
23
- export SWIFTLY_BIN_DIR="$HOME/.local/share/swiftly/bin"
24
- echo "SWIFTLY_BIN_DIR=$SWIFTLY_BIN_DIR" >> $GITHUB_ENV
25
- echo "SWIFTLY_BIN_DIR=$SWIFTLY_BIN_DIR" >> $HOME/.bashrc
26
-
27
49
UNAME=$(uname -m)
28
50
curl -O "https://download.swift.org/swiftly/linux/swiftly-$UNAME.tar.gz"
29
51
tar zxf "swiftly-$UNAME.tar.gz"
@@ -33,11 +55,18 @@ runs:
33
55
--quiet-shell-followup \
34
56
--no-modify-profile
35
57
36
- echo "PATH=$SWIFTLY_BIN_DIR:$PATH" >> $GITHUB_ENV
37
- echo "PATH=\$SWIFTLY_BIN_DIR:\$PATH" >> $HOME/.bashrc
38
-
39
58
- name : Install Swift
59
+ if : steps.cache-swift.outputs.cache-hit != 'true'
40
60
shell : bash
41
- run : |
42
- swiftly install --post-install-file ./out.sh
43
- swift --version
61
+ run : swiftly install --post-install-file ./out.sh
62
+
63
+ - name : " Save: Swift"
64
+ if : steps.cache-swift.outputs.cache-hit != 'true'
65
+ uses : actions/cache/save@v4
66
+ with :
67
+ path : " ~/.local/share/swiftly"
68
+ key : swift-${{ hashFiles('**/.swift-version') }}
69
+
70
+ - name : Print Swift Version
71
+ shell : bash
72
+ run : swift --version
0 commit comments