-
Notifications
You must be signed in to change notification settings - Fork 1
131 lines (114 loc) · 4.33 KB
/
Copy pathtest_install_script.yml
File metadata and controls
131 lines (114 loc) · 4.33 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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
name: Test Install Script
on:
pull_request:
paths:
- 'install.sh'
- '.github/workflows/test_install_script.yml'
release:
types: [released]
jobs:
test_install_script:
strategy:
matrix:
runner:
- ubuntu-24.04
- macos-14
version:
- '0.3.0'
- '0.4.0'
- '0.5.0'
- '0.6.0'
- ''
exclude:
- runner: macos-14
version: 0.3.0
runs-on: ${{ matrix.runner }}
steps:
- name: checkout
uses: actions/checkout@v7.0.1
- name: Setup JDK
uses: actions/setup-java@v5.7.0
with:
distribution: 'temurin'
java-version: 17
# HOME directory needs to be accessible by _www, so the java executable can be used
# not needed for linux, because JDK is not put in user directory
- name: Set launchd path
if: ${{ startsWith(matrix.runner, 'macos') }}
run: |
chmod o+rx "$HOME"
sudo launchctl setenv JAVA_HOME "$JAVA_HOME"
- name: install latest version
if: ${{ matrix.version == '' }}
run: sudo --preserve-env ./install.sh
env:
GH_TOKEN: ${{ github.token }}
- name: install specific version
if: ${{ matrix.version != '' }}
run: sudo --preserve-env ./install.sh --release-version ${{ matrix.version }}
env:
GH_TOKEN: ${{ github.token }}
- name: setup socket
run: |
sudo mkdir -p /var/run/kss/
sudo chmod a+w /var/run/kss/
- name: add timeout command to osx
if: ${{ startsWith(matrix.runner, 'macos') }}
run: |
brew install coreutils
sudo ln -s /usr/local/bin/gtimeout /usr/local/bin/timeout
- name: check install
# 124 is cancelled after timeout
run: |
timeout 5s kss || exit_code=$?
if [ "$exit_code" -ne 124 ]
then
echo "expected exit code 124 but was $exit_code"
exit "$exit_code"
fi
- name: setup runner config
id: runner_config
run: |
if [[ '${{ matrix.runner }}' == ubuntu* ]]
then
echo 'config_dir=/usr/share/kss/' >> $GITHUB_OUTPUT
echo 'start_cmd=systemctl start kss' >> $GITHUB_OUTPUT
echo 'user=www-data' >> $GITHUB_OUTPUT
else
echo 'config_dir=/Library/Application Support/kss/' >> $GITHUB_OUTPUT
echo 'start_cmd=launchctl load -w /Library/LaunchDaemons/kss.plist' >> $GITHUB_OUTPUT
echo 'user=_www' >> $GITHUB_OUTPUT
fi
- name: setup socket
run: |
sudo mkdir -p /var/run/kss/
sudo chown '${{ steps.runner_config.outputs.user }}' /var/run/kss/
- name: Start kss
run: |
sudo cp .github/config/logback.xml '${{ steps.runner_config.outputs.config_dir }}kss.logback.xml'
echo "logging.logback.configurationFile=${{ steps.runner_config.outputs.config_dir }}kss.logback.xml" >> kss.properties
echo "dependencies.maven.homeDirectory=${{ steps.runner_config.outputs.config_dir }}.m2" >> kss.properties
sudo chown '${{ steps.runner_config.outputs.user }}' '${{ steps.runner_config.outputs.config_dir }}'
sudo mkdir '${{ steps.runner_config.outputs.config_dir }}.m2'
sudo chown '${{ steps.runner_config.outputs.user }}' '${{ steps.runner_config.outputs.config_dir }}.m2'
sudo mv kss.properties '${{ steps.runner_config.outputs.config_dir }}'
sudo ${{ steps.runner_config.outputs.start_cmd }}
sleep 5
- name: test linux service exists
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
run: systemctl status kss.service
- name: test macos service exists
if: ${{ startsWith(matrix.runner, 'macos') }}
run: sudo launchctl list 'net.edwardday.kss'
- name: upgrade to latest version
run: |
sudo --preserve-env ./install.sh
sleep 5
env:
GH_TOKEN: ${{ github.token }}
- name: test linux service exists after upgrade
if: ${{ startsWith(matrix.runner, 'ubuntu') }}
run: systemctl status kss.service
- name: test macos service exists after upgrade
if: ${{ startsWith(matrix.runner, 'macos') }}
run: sudo launchctl list 'net.edwardday.kss'