forked from DGNum/dgnum.eu
67 lines
2.1 KiB
YAML
67 lines
2.1 KiB
YAML
|
name: Publish website to Codeberg Pages
|
||
|
run-name: publish-dgnum.eu
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- master
|
||
|
|
||
|
jobs:
|
||
|
publish:
|
||
|
runs-on: native
|
||
|
steps:
|
||
|
- uses: actions/checkout@v3
|
||
|
with:
|
||
|
path: dgnum.eu
|
||
|
|
||
|
- name: Build website
|
||
|
run: |
|
||
|
# Hack to set the cache in the working directory
|
||
|
HOME="$GITHUB_WORKSPACE" nix-build dgnum.eu
|
||
|
|
||
|
- name: Push new website
|
||
|
run: |
|
||
|
export HOME="$GITHUB_WORKSPACE"
|
||
|
|
||
|
echo "[+] Using SSH_DEPLOY_KEY"
|
||
|
|
||
|
# Setup deploy key
|
||
|
DEPLOY_KEY_FILE="$HOME/.ssh/deploy_key"
|
||
|
mkdir .ssh
|
||
|
echo "${SSH_DEPLOY_KEY}" > "$DEPLOY_KEY_FILE"
|
||
|
chmod 600 "$DEPLOY_KEY_FILE"
|
||
|
|
||
|
# Setup known hosts
|
||
|
KNOWN_HOSTS_FILE="$HOME/.ssh/known_hosts"
|
||
|
ssh-keyscan -H codeberg.org > "$KNOWN_HOSTS_FILE"
|
||
|
|
||
|
export GIT_SSH_COMMAND="ssh -i $DEPLOY_KEY_FILE -o UserKnownHostsFile=$KNOWN_HOSTS_FILE"
|
||
|
GIT_CMD_REPOSITORY="git@codeberg.org:DGNum/$GIT_REPOSITORY.git"
|
||
|
|
||
|
echo "[+] Cloning remote repository"
|
||
|
git clone --single-branch --depth 1 --branch main "$GIT_CMD_REPOSITORY" "$GIT_REPOSITORY"
|
||
|
|
||
|
git config --global user.email "$GIT_USER_EMAIL"
|
||
|
git config --global user.name "$GIT_USER_NAME"
|
||
|
|
||
|
echo "[+] Updating assets"
|
||
|
rm -r "$GIT_REPOSITORY"/*
|
||
|
|
||
|
# Update assets
|
||
|
cp -R --no-preserve=mode,ownership,timestamps result/* "$GIT_REPOSITORY/"
|
||
|
cd "$GIT_REPOSITORY"
|
||
|
|
||
|
echo "[+] Creating commit"
|
||
|
ORIGIN_COMMIT="https://$GIT_ORIGIN_SERVER/$GITHUB_REPOSITORY/commit/$GITHUB_SHA"
|
||
|
git add .
|
||
|
git diff-index --quiet HEAD || git commit --message "Automatic pages update from $ORIGIN_COMMIT"
|
||
|
|
||
|
echo "[+] Pushing update"
|
||
|
git push "$GIT_CMD_REPOSITORY" --set-upstream main
|
||
|
env:
|
||
|
SSH_DEPLOY_KEY: ${{ secrets.SSH_DEPLOY_KEY }}
|
||
|
GIT_REPOSITORY: pages
|
||
|
GIT_USER_EMAIL: automated-update@dgnum.eu
|
||
|
GIT_USER_NAME: Forgejo Action
|
||
|
GIT_ORIGIN_SERVER: git.hubrecht.ovh
|