Files
karlderheinz.tv/.github/workflows/build.yml
T
2026-08-22 02:52:26 +02:00

54 lines
1.6 KiB
YAML

name: Build & Deploy
on:
pull_request:
branches: [main]
types: [opened, synchronize, reopened]
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
# - name: Verify build (locally)
# run: |
# npm ci --no-audit --no-fund
# npm run build
- name: Stage source for upload
run: |
mkdir .deploy-stage
tar --exclude=.git --exclude=node_modules --exclude=.next \
--exclude=.deploy-stage -cf - . | (cd .deploy-stage && tar xf -)
- name: Probe FTP server
run: |
echo "--- full listing ---"
curl -s --user "${{ secrets.FTP_USER }}:${{ secrets.FTP_PASS }}" \
"ftp://82.165.141.176/dev.karlderheinz.tv/"
echo "--- write test ---"
echo "probe $(date -u)" > /tmp/probe.txt && \
curl -s --user "${{ secrets.FTP_USER }}:${{ secrets.FTP_PASS }}" \
-T /tmp/probe.txt \
"ftp://82.165.141.176/dev.karlderheinz.tv/deploy-probe-$(date +%s).txt" && echo PUT-OK || echo PUT-FAILED
- name: Upload source to server (FTP)
uses: SamKirkland/FTP-Deploy-Action@4.2.0
with:
server: 82.165.141.176
username: ${{ secrets.FTP_USER }}
password: ${{ secrets.FTP_PASS }}
local-dir: .deploy-stage/
remote-dir: /dev/karlderheinz.tv/
transfer-method: "passive"
# TODO: trigger the server-side build + restart (next conversation)