-
Notifications
You must be signed in to change notification settings - Fork 4
35 lines (32 loc) · 1.25 KB
/
test_deployment.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
name: Test CD
on:
pull_request:
types: [opened, labeled, unlabeled, synchronize]
workflow_dispatch:
jobs:
run_pull:
name: run pull
runs-on: ubuntu-latest
env:
# Setting an environment variable with the value of a configuration variable
LABEL: ${{
contains(github.event.pull_request.labels.*.name, 'deploy_5173') && 'deploy_5173' ||
(contains(github.event.pull_request.labels.*.name, 'deploy_5174') && 'deploy_5174' || 'none')
}}
steps:
- name: exit
if: ${{ env.LABEL == 'none' }}
run: |
exit 1
- name: install ssh keys
# check this thread to understand why its needed:
# https://stackoverflow.com/a/70447517
run: |
echo env.tag_name
install -m 600 -D /dev/null ~/.ssh/id_rsa
echo "${{ secrets.LXGR_DEPLOY_PRIV }}" > ~/.ssh/id_rsa
ssh-keyscan -H ${{ secrets.LXGR_HOST }} > ~/.ssh/known_hosts
- name: connect and pull
run: ssh ${{ secrets.LXGR_USER }}@${{ secrets.LXGR_HOST }} "cd ~/$LABEL && git checkout . && git fetch && git checkout ${{ github.event.pull_request.head.ref }} && git pull && npm i && npm run build && chgrp -R www-data ~/$LABEL && exit"
- name: cleanup
run: rm -rf ~/.ssh