Files
home/.github/workflows/sexy.pivoine.art.yaml
2025-10-08 10:35:48 +02:00

70 lines
2.9 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
- 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