-
Notifications
You must be signed in to change notification settings - Fork 0
140 lines (118 loc) · 3.47 KB
/
ci.yml
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
132
133
134
135
136
137
138
139
140
name: CI
on:
push:
paths-ignore:
- "dockerfiles/**"
- ".gitignore"
- "dev_tools.sh"
- "docker-compose.yml"
- "Makefile"
- "README.md"
- "test_all_in_ubuntu"
pull_request:
paths-ignore:
- "dockerfiles/**"
- ".gitignore"
- "dev_tools.sh"
- "docker-compose.yml"
- "Makefile"
- "README.md"
- "test_all_in_ubuntu"
permissions: read-all
defaults:
run:
shell: bash
working-directory: "./"
jobs:
shellcheck:
name: ShellCheck
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install the prerequisites
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends shellcheck
- name: Run ShellCheck
run: |
shellcheck --version
bin/shellcheck
test-macos:
name: Tests for MacOS
strategy:
matrix:
os: [macos-12, macos-13, macos-14, macos-15]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install prerequisites
run: brew install coreutils bash
- name: Run the tests
run: |
zsh --version
bash --version
script time make test
test-linux:
name: Tests for Linux
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install the prerequisites
run: |
sudo apt-get update -y
sudo apt-get install -y --no-install-recommends zsh
- name: Run the tests for Bash
run: |
bash --version
script -q -e -c 'make test_bash'
- name: Run the tests for Zsh
run: |
zsh --version
make test_zsh
test-minimum-supported-shell-versions:
name: Tests for the minimum supported Bash and Zsh versions
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v4
- name: Cache Bash and Zsh source
uses: actions/cache@v4
id: shell-cache
with:
path: |
bash-4.3
zsh-5.3.1
key: bash-4.3-and-zsh-5.3.1-source-${{ runner.os }}
- name: Install Bash 4.3
run: |
if [ ! -d "bash-4.3" ]; then
wget http://ftp.gnu.org/gnu/bash/bash-4.3.tar.gz
tar -xvzf bash-4.3.tar.gz
fi
cd bash-4.3
./configure
make
sudo make install
echo "============================================"
bash --version # Verify the installed Bash version
- name: Run the tests for Bash
run: script -q -e -c 'make test_bash'
- name: Install Zsh 5.3.1
run: |
if [ ! -d "zsh-5.3.1" ]; then
wget -O zsh-5.3.1.tar.gz https://sourceforge.net/projects/zsh/files/zsh/5.3.1/zsh-5.3.1.tar.gz/download
tar xf zsh-5.3.1.tar.gz
wget -O zsh-5.3.1/config.guess 'https://git.savannah.gnu.org/cgit/config.git/plain/config.guess'
wget -O zsh-5.3.1/config.sub 'https://git.savannah.gnu.org/cgit/config.git/plain/config.sub'
chmod +x zsh-5.3.1/config.guess zsh-5.3.1/config.sub
fi
cd zsh-5.3.1
./configure --without-tcsetpgrp
make
sudo make install
echo "============================================"
zsh --version # Verify the installed Zsh version
- name: Run the tests for Zsh
run: make test_zsh