74 lines
3.0 KiB
YAML
74 lines
3.0 KiB
YAML
name: Build and Deploy Sexy.Art via SSH
|
|
|
|
on:
|
|
workflow_dispatch: # Allows workflow to be run manually
|
|
push:
|
|
branches:
|
|
- main # Or your default branch
|
|
paths:
|
|
- 'Projects/sexy.pivoine.art/**'
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
defaults:
|
|
run:
|
|
working-directory: ./Projects/sexy.pivoine.art
|
|
environment: ionos
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- name: Install rust
|
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
|
- name: Install wasm-build
|
|
run: cargo install wasm-bindgen-cli
|
|
- uses: actions/setup-node@v5
|
|
with:
|
|
node-version: '22'
|
|
- name: Install pnpm
|
|
uses: pnpm/action-setup@v4
|
|
- name: Install dependencies
|
|
run: pnpm install
|
|
- name: Build JavaScript
|
|
run: |
|
|
RUSTFLAGS='--cfg getrandom_backend="wasm_js" --cfg=web_sys_unstable_apis' pnpm --filter @sexy.pivoine.art/buttplug build:wasm
|
|
pnpm --filter @sexy.pivoine.art/buttplug build
|
|
pnpm --filter @sexy.pivoine.art/frontend build
|
|
pnpm --filter @sexy.pivoine.art/bundle build
|
|
- name: 🏗️ Prepare Svelte site
|
|
run: |
|
|
mkdir -p ${{ github.workspace }}/_site/packages/frontend
|
|
mkdir -p ${{ github.workspace }}/_site/packages/bundle
|
|
mv packages/frontend/build ${{ github.workspace }}/_site/packages/frontend/
|
|
mv packages/frontend/node_modules ${{ github.workspace }}/_site/packages/frontend/
|
|
mv packages/frontend/package.json ${{ github.workspace }}/_site/packages/frontend/
|
|
mv packages/bundle/dist ${{ github.workspace }}/_site/packages/bundle/
|
|
mv packages/bundle/node_modules ${{ github.workspace }}/_site/packages/bundle/
|
|
mv packages/bundle/package.json ${{ github.workspace }}/_site/packages/bundle/
|
|
mv packages/buttplug/dist ${{ github.workspace }}/_site/packages/buttplug/
|
|
mv packages/buttplug/node_modules ${{ github.workspace }}/_site/packages/buttplug/
|
|
mv packages/buttplug/package.json ${{ github.workspace }}/_site/packages/buttplug/
|
|
mv node_modules ${{ github.workspace }}/_site/
|
|
mv package.json ${{ github.workspace }}/_site/
|
|
- name: 🚀 Deploy via SSH
|
|
uses: appleboy/scp-action@master
|
|
with:
|
|
host: ${{ secrets.HOST }}
|
|
username: ${{ secrets.USERNAME }}
|
|
password: ${{ secrets.PASSWORD }}
|
|
port: ${{ secrets.PORT }}
|
|
source: _site/* # Adjust if required
|
|
target: /var/www/sexy.pivoine.art # Set to your deployment directory (for example /public_html)
|
|
strip_components: 1 # This ensures that a subdirectory is not created
|
|
rm: 1
|
|
- name: Docker compose restart
|
|
uses: appleboy/ssh-action@v1
|
|
with:
|
|
host: ${{ secrets.HOST }}
|
|
username: ${{ secrets.USERNAME }}
|
|
password: ${{ secrets.PASSWORD }}
|
|
port: ${{ secrets.PORT }}
|
|
script: |
|
|
cd Projects/kompose/sexy
|
|
docker compose restart
|