feat(ci): set up preview and prod deployments
This commit is contained in:
committed by
Tobias Fried
parent
b99c50d61f
commit
625dc776d5
49
.github/workflows/dreamhost-preview-static.yaml
vendored
Normal file
49
.github/workflows/dreamhost-preview-static.yaml
vendored
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
name: Build and deploy to preview
|
||||||
|
|
||||||
|
on:
|
||||||
|
push
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
run_install: false
|
||||||
|
|
||||||
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Install sshpass
|
||||||
|
run: sudo apt-get install -y sshpass
|
||||||
|
|
||||||
|
- name: Add SSH Key to known_hosts
|
||||||
|
env:
|
||||||
|
KNOWN_HOSTS_ENTRY: ${{ secrets.DREAMHOST_KNOWN_HOSTS_ENTRY }}
|
||||||
|
HOST: ${{ secrets.HOST }}
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
echo "$KNOWN_HOSTS_ENTRY" >> ~/.ssh/known_hosts
|
||||||
|
chmod 644 ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
- name: Build static site
|
||||||
|
run: pnpm build
|
||||||
|
|
||||||
|
- name: Deploy via rsync and sshpass
|
||||||
|
env:
|
||||||
|
USERNAME: ${{ secrets.DREAMHOST_FTP_USERNAME }}
|
||||||
|
PASSWORD: ${{ secrets.DREAMHOST_FTP_PASSWORD }}
|
||||||
|
HOST: ${{ secrets.DREAMHOST_FTP_HOST }}
|
||||||
|
DEPLOY_PATH: preview.phosphoricons.com
|
||||||
|
run: |
|
||||||
|
sshpass -p "$PASSWORD" rsync -avz --delete ./dist/* $USERNAME@$HOST:$DEPLOY_PATH
|
||||||
51
.github/workflows/dreamhost-static.yaml
vendored
Normal file
51
.github/workflows/dreamhost-static.yaml
vendored
Normal file
@@ -0,0 +1,51 @@
|
|||||||
|
name: Build and deploy to production
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Install pnpm
|
||||||
|
uses: pnpm/action-setup@v4
|
||||||
|
with:
|
||||||
|
run_install: false
|
||||||
|
|
||||||
|
- name: Install Node.js
|
||||||
|
uses: actions/setup-node@v4
|
||||||
|
with:
|
||||||
|
node-version: 20
|
||||||
|
cache: 'pnpm'
|
||||||
|
|
||||||
|
- name: Install dependencies
|
||||||
|
run: pnpm install
|
||||||
|
|
||||||
|
- name: Install sshpass
|
||||||
|
run: sudo apt-get install -y sshpass
|
||||||
|
|
||||||
|
- name: Add SSH Key to known_hosts
|
||||||
|
env:
|
||||||
|
KNOWN_HOSTS_ENTRY: ${{ secrets.DREAMHOST_KNOWN_HOSTS_ENTRY }}
|
||||||
|
HOST: ${{ secrets.HOST }}
|
||||||
|
run: |
|
||||||
|
mkdir -p ~/.ssh
|
||||||
|
echo "$KNOWN_HOSTS_ENTRY" >> ~/.ssh/known_hosts
|
||||||
|
chmod 644 ~/.ssh/known_hosts
|
||||||
|
|
||||||
|
- name: Build static site
|
||||||
|
run: pnpm build
|
||||||
|
|
||||||
|
- name: Deploy via rsync and sshpass
|
||||||
|
env:
|
||||||
|
USERNAME: ${{ secrets.DREAMHOST_FTP_USERNAME }}
|
||||||
|
PASSWORD: ${{ secrets.DREAMHOST_FTP_PASSWORD }}
|
||||||
|
HOST: ${{ secrets.DREAMHOST_FTP_HOST }}
|
||||||
|
DEPLOY_PATH: phosphoricons.com
|
||||||
|
run: |
|
||||||
|
sshpass -p "$PASSWORD" rsync -avz --delete ./dist/* $USERNAME@$HOST:$DEPLOY_PATH
|
||||||
@@ -20,6 +20,7 @@
|
|||||||
],
|
],
|
||||||
"repository": "github:phosphor-icons/homepage",
|
"repository": "github:phosphor-icons/homepage",
|
||||||
"private": true,
|
"private": true,
|
||||||
|
"packageManager": "pnpm@9",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "tsc && vite build",
|
"build": "tsc && vite build",
|
||||||
|
|||||||
1965
pnpm-lock.yaml
generated
1965
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user