+58
.forgejo/workflows/deploy.yaml
+58
.forgejo/workflows/deploy.yaml
···
1
+
name: Deploy
2
+
3
+
on:
4
+
push:
5
+
branches:
6
+
- main
7
+
- astra/ci
8
+
9
+
jobs:
10
+
deploy:
11
+
name: Deploy
12
+
runs-on: ubuntu-latest
13
+
14
+
steps:
15
+
- name: Checkout repo
16
+
uses: actions/checkout@v4
17
+
18
+
- name: Setup Node.js
19
+
uses: actions/setup-node@v3
20
+
with:
21
+
node-version: '20'
22
+
23
+
- name: Setup Deno
24
+
uses: https://github.com/denoland/setup-deno@v2
25
+
26
+
- name: Install dependencies
27
+
run: deno install
28
+
29
+
- name: Build project
30
+
run: deno task build
31
+
32
+
- name: Setup SSH
33
+
run: |
34
+
mkdir -p ~/.ssh
35
+
echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
36
+
chmod 600 ~/.ssh/id_ed25519
37
+
cat > ~/.ssh/config << EOF
38
+
Host deploy
39
+
HostName ${{ vars.SERVER_HOST }}
40
+
User ${{ vars.SERVER_USER }}
41
+
IdentityFile ~/.ssh/id_ed25519
42
+
StrictHostKeyChecking accept-new
43
+
BatchMode yes
44
+
PasswordAuthentication no
45
+
PubkeyAuthentication yes
46
+
EOF
47
+
chmod 600 ~/.ssh/config
48
+
ssh-keyscan -H ${{ vars.SERVER_HOST }} >> ~/.ssh/known_hosts
49
+
echo "Deploying to ${{ vars.SERVER_HOST }} as ${{ vars.SERVER_USER }} to /var/www/pds/${{ github.ref_name }}"
50
+
51
+
- name: Debug SSH Connection
52
+
run: ssh -v deploy echo "SSH Connection Successful"
53
+
54
+
- name: Create folder if not exists
55
+
run: ssh deploy "mkdir -p /var/www/pds/${{ github.ref_name }}"
56
+
57
+
- name: Deploy via SCP
58
+
run: scp -r ./dist/* deploy:/var/www/pds/${{ github.ref_name }}