Layout test #9
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: π Deploy to prod | |
# Will trigger the workflow on each push to the main branch | |
on: | |
push: | |
branches: | |
- main | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
jobs: | |
# The first job will build the hugo site and upload the artifact | |
build: | |
name: π§ Build Hugo site | |
runs-on: ubuntu-latest | |
env: | |
HUGO_VERSION: 0.134.2 | |
steps: | |
- name: Install Hugo CLI | |
run: | | |
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ | |
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb | |
- name: Install Dart Sass Embedded | |
run: sudo snap install dart-sass-embedded | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
fetch-depth: 0 | |
- name: Install Node.js dependencies | |
run: '[[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true' | |
- name: Build with Hugo | |
env: | |
# For maximum backward compatibility with Hugo modules | |
HUGO_ENVIRONMENT: production | |
HUGO_ENV: production | |
run: | | |
hugo \ | |
--gc \ | |
--minify | |
# We save the result as an artificat so we can use it in the next job | |
- name: Upload artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: release-artifact | |
path: './public' | |
# The second job will deploy the site to the FTP server using the artifact from the first job | |
deploy: | |
name: π Deploy | |
runs-on: ubuntu-latest | |
needs: build | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
# Download the artifact we just created | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: release-artifact | |
path: './public' # This is the path where the artifact will be downloaded to | |
- name: Deploy file | |
uses: wlixcc/[email protected] | |
with: | |
server: ${{ vars.ftp_server }} | |
username: ${{ vars.ftp_username }} | |
# ssh_private_key: ${{ secrets.ftp_password }} | |
# or if you only use a password | |
sftp_only: true | |
password: ${{ secrets.ftp_password }} | |
port: ${{ vars.ftp_port }} | |
remote_path: '/home/www/christian-weber.net/' # This will depend on your server | |
local_path: './public/*' # This is the path where the artifact is located |