update deployment pipeline
This commit is contained in:
@ -6,10 +6,25 @@ on:
|
|||||||
jobs:
|
jobs:
|
||||||
build-and-deploy:
|
build-and-deploy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
include:
|
||||||
|
- dir: /opt/website
|
||||||
|
service: website
|
||||||
|
- dir: /opt/website-test
|
||||||
|
service: website-test
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Cache
|
||||||
|
uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: |
|
||||||
|
dist/
|
||||||
|
node_modules/
|
||||||
|
key: ${{ runner.os }}-${{ hashFiles('package-lock.json') }}
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: npm i
|
run: npm i
|
||||||
|
|
||||||
@ -21,6 +36,8 @@ jobs:
|
|||||||
HOST: ${{ secrets.SSH_HOST}}
|
HOST: ${{ secrets.SSH_HOST}}
|
||||||
USER: ${{ secrets.SSH_USER }}
|
USER: ${{ secrets.SSH_USER }}
|
||||||
SSH_KEY: ${{ secrets.SSH_KEY }}
|
SSH_KEY: ${{ secrets.SSH_KEY }}
|
||||||
|
DIRECTORY: ${{ matrix.dir }}
|
||||||
|
SERVICE: ${{ matrix.service }}
|
||||||
run: |
|
run: |
|
||||||
mkdir -p "$HOME/.ssh" && touch "$HOME/.ssh/known_hosts"
|
mkdir -p "$HOME/.ssh" && touch "$HOME/.ssh/known_hosts"
|
||||||
echo "$SSH_KEY" > "$HOME/.ssh/deploy_key"
|
echo "$SSH_KEY" > "$HOME/.ssh/deploy_key"
|
||||||
@ -29,6 +46,6 @@ jobs:
|
|||||||
ssh-add "$HOME/.ssh/deploy_key"
|
ssh-add "$HOME/.ssh/deploy_key"
|
||||||
ssh-keyscan -t rsa "$HOST" >> "$HOME/.ssh/known_hosts"
|
ssh-keyscan -t rsa "$HOST" >> "$HOME/.ssh/known_hosts"
|
||||||
|
|
||||||
ssh -o StrictHostKeyChecking=no $USER@$HOST "rm -r /opt/website; mkdir -p /opt/website"
|
ssh -o StrictHostKeyChecking=no $USER@$HOST "rm -r $DIRECTORY; mkdir -p $DIRECTORY"
|
||||||
scp -r -o StrictHostKeyChecking=no $(ls -d -1 dist/*) $(ls package*) $USER@$HOST:/opt/website
|
scp -r -o StrictHostKeyChecking=no $(ls -d -1 dist/*) $(ls package*) $USER@$HOST:$DIRECTORY
|
||||||
ssh -o StrictHostKeyChecking=no $USER@$HOST "cd /opt/website; npm i --omit=dev; systemctl restart website"
|
ssh -o StrictHostKeyChecking=no $USER@$HOST "cd $DIRECTORY; npm i --omit=dev; systemctl restart $SERVICE"
|
||||||
|
Reference in New Issue
Block a user