alice-sites-pull-action/action.yml

74 lines
2.2 KiB
YAML

name: "Alice Sites pull"
description: "Pulls and builds jekyll sites"
author: "Carneiro"
inputs:
src_dir:
description: "Source directory"
default: "/var/www/src/alice_sites"
dirname:
description: "Site directory (inside src_dir) name"
default: ${{ github.event.repository.name }}
output_dirname:
description: "Site destination directory name"
default: ${{ github.event.repository.name }}
dest_dir:
description: "Destination directory"
default: "/var/www/html/alice_sites"
jekyll_args:
description: "Args to pass to jekyll build"
default: "--trace --incremental"
skip_build:
description: "Wheather or not the sites skips building"
default: "false"
host:
description: "SSH host address."
default: "${{ secrets.SSH_HOST }}"
port:
description: "SSH port number."
default: ${{ secrets.SSH_PORT }}
username:
description: "SSH username."
default: "${{ secrets.SSH_USERNAME }}"
key:
description: "SSH private key"
default: ${{ secrets.SSH_PRIV_KEY }}
runs:
using: 'composite'
steps:
- uses: appleboy/ssh-action@v1.2.0
env:
ORIG_DIRNAME: ${{ github.event.repository.name }}
SITE_DIRNAME: ${{ inputs.dirname }}
OUTPUT_DIRNAME: ${{ inputs.output_dirname }}
REPO_NAME: ${{ gitea.repository }}
SKIP_BUILD: ${{ inputs.skip_build }}
SOURCE_DIR: ${{ inputs.src_dir }}
DEST_DIR: ${{ inputs.dest_dir }}
JEKYLL_ARGS: ${{ inputs.jekyll_args }}
with:
host: ${{ inputs.host }}
username: ${{ inputs.username }}
key: ${{ inputs.key }}
port: ${{ inputs.port }}
envs: SITE_DIRNAME, REPO_NAME, SKIP_BUILD, SOURCE_DIR, DEST_DIR, JEKYLL_ARGS
script: |
[ "$OUTPUT_DIRNAME" = "$ORIG_DIRNAME" ] && OUTPUT_DIRNAME=$SITE_DIRNAME
cd $SOURCE_DIR
# If site is not there yet, clone it
[ -d "${SOURCE_DIR}/${SITE_DIRNAME}" ] ||
git clone https://git.alice.ufsj.edu.br/$REPO_NAME
# Update
cd "${SOURCE_DIR}/${SITE_DIRNAME}"
git pull
# Build
[ $SKIP_BUILD != false ] && exit 0
bundle install
bundle exec jekyll build $JEKYLL_ARGS --destination=$DEST_DIR/$OUTPUT_DIRNAME