46 lines
1.3 KiB
YAML
46 lines
1.3 KiB
YAML
name: Deploy static site to pages
|
|
|
|
on:
|
|
push:
|
|
branches: ["main"]
|
|
|
|
jobs:
|
|
deploy:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Deploy to shared pages volume (tar stream, no bind mounts)
|
|
shell: bash
|
|
run: |
|
|
set -euo pipefail
|
|
|
|
OWNER="$(echo "${GITHUB_REPOSITORY}" | cut -d/ -f1)"
|
|
REPO="$(echo "${GITHUB_REPOSITORY}" | cut -d/ -f2)"
|
|
TARGET="/target/${OWNER}/${REPO}"
|
|
|
|
echo "Deploying ${GITHUB_REPOSITORY} -> ${TARGET}"
|
|
echo "Files in repo root:"
|
|
ls -la
|
|
|
|
# Create a tar stream of the repo content (excluding VCS + workflow folder)
|
|
# and extract it directly into the docker volume via stdin.
|
|
tar -czf - \
|
|
--exclude=".git" \
|
|
--exclude=".gitea" \
|
|
. \
|
|
| docker run --rm -i \
|
|
-v gitea_pages_root:/target \
|
|
alpine:3.20 sh -lc '
|
|
set -e
|
|
mkdir -p "'"$TARGET"'"
|
|
rm -rf "'"$TARGET"'/"* "'"$TARGET"'/"..* 2>/dev/null || true
|
|
tar -xzf - -C "'"$TARGET"'"
|
|
'
|
|
|
|
echo "Deployed. Listing target:"
|
|
docker run --rm \
|
|
-v gitea_pages_root:/target \
|
|
alpine:3.20 sh -lc 'ls -la "'"$TARGET"'" | sed -n "1,50p"'
|