Skip to content

Commit 54d49b7

Browse files
committed
Update workflows
1 parent 3a5f1b3 commit 54d49b7

File tree

3 files changed

+104
-60
lines changed

3 files changed

+104
-60
lines changed

.dockerignore

-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
.git
22
.github
33
.gitignore
4-
.travis.yml
54
docker-compose.yml
65
LICENSE.md
76
README.md

.github/workflows/main.yml

+104-2
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,27 @@ on:
1414
types: [start-main-workflow]
1515

1616
jobs:
17+
shellcheck:
18+
runs-on: ubuntu-latest
19+
if: github.repository_owner == 'hwdsl2' && github.event_name == 'push'
20+
steps:
21+
- uses: actions/checkout@v2
22+
with:
23+
persist-credentials: false
24+
- name: Check
25+
if: success()
26+
run: |
27+
export DEBIAN_FRONTEND=noninteractive
28+
sudo apt-get -yq update
29+
sudo apt-get -yq install shellcheck
30+
31+
export SHELLCHECK_OPTS="-e SC1090,SC1091,SC1117"
32+
cd "$GITHUB_WORKSPACE"
33+
pwd
34+
ls -l | grep 'vpn\.env\.example'
35+
shellcheck --version
36+
shellcheck *.sh
37+
1738
check_update:
1839
runs-on: ubuntu-latest
1940
if: github.repository_owner == 'hwdsl2'
@@ -69,10 +90,91 @@ jobs:
6990
echo ::set-output name=should_update::true
7091
fi
7192
72-
buildx:
93+
vpn_test:
7394
needs: check_update
7495
if: needs.check_update.outputs.should_update == 'true'
7596
runs-on: ubuntu-latest
97+
strategy:
98+
matrix:
99+
test_id: [no-env, with-env]
100+
fail-fast: false
101+
env:
102+
TEST_ID: ${{ matrix.test_id }}
103+
EVENT_NAME: ${{ github.event_name }}
104+
steps:
105+
- uses: actions/checkout@v2
106+
with:
107+
persist-credentials: false
108+
- name: Test
109+
if: success()
110+
run: |
111+
[ ! -x /usr/bin/docker ] && exit 1
112+
113+
cd "$GITHUB_WORKSPACE"
114+
pwd
115+
ls -l | grep 'vpn\.env\.example'
116+
117+
docker build -t vpn-test .
118+
if [ "$TEST_ID" = "with-env" ]; then
119+
docker run \
120+
--name "$TEST_ID" \
121+
--env-file ./vpn.env.example \
122+
--restart=always \
123+
-p 500:500/udp \
124+
-p 4500:4500/udp \
125+
-d --privileged \
126+
vpn-test
127+
elif [ "$TEST_ID" = "no-env" ]; then
128+
docker run \
129+
--name "$TEST_ID" \
130+
--restart=always \
131+
-p 500:500/udp \
132+
-p 4500:4500/udp \
133+
-d --privileged \
134+
vpn-test
135+
fi
136+
sleep 15
137+
docker ps | grep "$TEST_ID"
138+
docker logs "$TEST_ID"
139+
docker exec "$TEST_ID" netstat -anpu | grep pluto
140+
docker exec "$TEST_ID" netstat -anpu | grep xl2tpd
141+
docker exec "$TEST_ID" iptables -nL
142+
docker exec "$TEST_ID" iptables -nL | grep -q '192\.168\.42\.0/24'
143+
docker exec "$TEST_ID" iptables -nL -t nat
144+
docker exec "$TEST_ID" iptables -nL -t nat | grep -q '192\.168\.43\.0/24'
145+
if [ "$TEST_ID" = "with-env" ]; then
146+
source ./vpn.env.example
147+
docker exec "$TEST_ID" grep "$VPN_IPSEC_PSK" /etc/ipsec.secrets
148+
docker exec "$TEST_ID" grep "$VPN_USER" /etc/ppp/chap-secrets
149+
docker exec "$TEST_ID" grep "$VPN_PASSWORD" /etc/ppp/chap-secrets
150+
docker exec "$TEST_ID" grep "$VPN_USER" /etc/ipsec.d/passwd
151+
fi
152+
docker restart "$TEST_ID"
153+
sleep 15
154+
docker ps | grep "$TEST_ID"
155+
docker logs "$TEST_ID"
156+
docker exec "$TEST_ID" netstat -anpu | grep pluto
157+
docker exec "$TEST_ID" netstat -anpu | grep xl2tpd
158+
docker exec "$TEST_ID" iptables -nL
159+
docker exec "$TEST_ID" iptables -nL | grep -q '192\.168\.42\.0/24'
160+
docker exec "$TEST_ID" iptables -nL -t nat
161+
docker exec "$TEST_ID" iptables -nL -t nat | grep -q '192\.168\.43\.0/24'
162+
if [ "$TEST_ID" = "with-env" ]; then
163+
docker exec "$TEST_ID" grep "$VPN_IPSEC_PSK" /etc/ipsec.secrets
164+
docker exec "$TEST_ID" grep "$VPN_USER" /etc/ppp/chap-secrets
165+
docker exec "$TEST_ID" grep "$VPN_PASSWORD" /etc/ppp/chap-secrets
166+
docker exec "$TEST_ID" grep "$VPN_USER" /etc/ipsec.d/passwd
167+
fi
168+
- name: Clear
169+
if: always()
170+
run: |
171+
docker rm -f "$TEST_ID" || true
172+
docker rmi vpn-test || true
173+
174+
buildx:
175+
needs: [check_update, vpn_test]
176+
if: needs.check_update.outputs.should_update == 'true'
177+
runs-on: ubuntu-latest
76178
steps:
77179
- uses: actions/checkout@v2
78180
with:
@@ -92,7 +194,7 @@ jobs:
92194
BUILDX_URL="https://github.com/docker/buildx/releases/download/${BUILDX_VER}/buildx-${BUILDX_VER}.linux-amd64"
93195
94196
mkdir -p "${DOCKER_DIR}"
95-
wget -t 3 -T 30 -nv -O "${DOCKER_DIR}/docker-buildx" "${BUILDX_URL}" || exit 1
197+
wget -t 3 -T 30 -nv -O "${DOCKER_DIR}/docker-buildx" "${BUILDX_URL}"
96198
chmod a+x "${DOCKER_DIR}/docker-buildx"
97199
98200
docker info

.travis.yml

-57
This file was deleted.

0 commit comments

Comments
 (0)