Skip to content

Commit a8adf1f

Browse files
committed
add workflow
1 parent d2c6370 commit a8adf1f

1 file changed

Lines changed: 79 additions & 0 deletions

File tree

.github/workflows/deploy.yml

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
name: Deploy RAID Website
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: read
10+
11+
jobs:
12+
deploy:
13+
runs-on: ubuntu-latest
14+
15+
steps:
16+
- name: Checkout repository
17+
uses: actions/checkout@v3
18+
19+
- name: Install OpenConnect
20+
run: |
21+
sudo apt-get update -qq
22+
sudo apt-get install -y openconnect
23+
24+
- name: Connect to VPN
25+
run: |
26+
sudo openconnect \
27+
-q \
28+
-u ${{ secrets.VPN_USER }} \
29+
--passwd-on-stdin <<< "${{ secrets.VPN_PASSWORD }}" \
30+
--protocol=fortinet \
31+
--servercert ${{ secrets.VPN_SERVERCERT }} \
32+
gateway.iitj.ac.in:443 \
33+
--background
34+
echo "VPN connection initiated..."
35+
36+
- name: Setup SSH Agent
37+
uses: webfactory/ssh-agent@v0.9.0
38+
with:
39+
ssh-private-key: ${{ secrets.DEPLOY_KEY }}
40+
log-public-key: false
41+
42+
- name: Verify Jump Host Connectivity
43+
run: |
44+
if ping -c 2 -W 3 ${{ secrets.JUMP_HOST_IP }} > /dev/null 2>&1; then
45+
echo "Jump host is reachable"
46+
else
47+
echo "Jump host is not reachable"
48+
exit 1
49+
fi
50+
51+
- name: Deploy via Jump Host
52+
run: |
53+
mkdir -p ~/.ssh
54+
chmod 700 ~/.ssh
55+
56+
echo "${{ secrets.JUMP_HOST_KEY }}" >> ~/.ssh/known_hosts
57+
echo "${{ secrets.RAID_HOST_KEY }}" >> ~/.ssh/known_hosts
58+
chmod 600 ~/.ssh/known_hosts
59+
60+
cat << EOF > ~/.ssh/config
61+
Host jump-server
62+
HostName ${{ secrets.JUMP_HOST_IP }}
63+
User jumpuser
64+
65+
Host raid-website
66+
HostName ${{ secrets.RAID_WEBSITE_HOST }}
67+
User raid
68+
ProxyJump jump-server
69+
EOF
70+
71+
echo "🚀 Deploying to raid-website..."
72+
ssh raid-website 'bash ~/deploy.sh'
73+
74+
- name: Cleanup
75+
if: always()
76+
run: |
77+
sudo killall openconnect 2>/dev/null || true
78+
rm -rf ~/.ssh
79+
echo "Cleanup complete.."

0 commit comments

Comments
 (0)