on: push: branches: - main env: SERVER_URL: ${{ vars.SERVER_URL }} FTP_USER: ${{ vars.FTP_USER }} SITE_URL: ${{ vars.SITE_URL }} jobs: build-website: name: Build and deploy website runs-on: alpine defaults: run: shell: ash -eo pipefail {0} steps: - name: Install dependencies run: apk add --no-cache curl nodejs git zola openssh minify lftp - name: Checkout repository uses: actions/checkout@v4 - name: Build web run: zola build --base-url ${{ env.SITE_URL }} - name: Minify files run: minify --all -r -o . public - name: Transfer built files run: lftp -e 'mirror --delete --no-perms httpdocs/docs ./public/docs; mirror --reverse --delete --no-perms --overwrite ./public httpdocs; exit' ftp://${{ env.FTP_USER }}:${{ secrets.FTP_PASSWORD }}@${{ env.SERVER_URL }}/