Skip to content

Build and test website (and deploy if needed) #1717

Build and test website (and deploy if needed)

Build and test website (and deploy if needed) #1717

name: build_test_deploy
run-name: Build and test website (and deploy if needed)
on:
push:
branches:
- main
- staging
pull_request:
branches:
- main
- staging
jobs:
build_and_test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
cache: "npm"
- name: Setup Hugo
uses: peaceiris/actions-hugo@v2
with:
hugo-version: "latest"
extended: true
- name: Install npm dependencies
run: npm install
- name: Fetch People Data
env:
GOOGLE_SERVICE_ACCOUNT: ${{ secrets.GOOGLE_SERVICE_ACCOUNT }}
GOOGLE_SHEET_ID: ${{ secrets.GOOGLE_SHEET_ID }}
GOOGLE_DRIVE_FOLDER_ID: ${{ secrets.GOOGLE_DRIVE_FOLDER_ID }}
run: npm run gen-people
- name: Build
run: |
npm run update-stats
npm run cms-build
hugo --minify
# - name: Test HTML code
# uses: Cyb3r-Jak3/html5validator-action@v7.2.0
# with:
# root: public
# - name: Upload HTML test report
# uses: actions/upload-artifact@v3
# if: success() || failure() # Run even if we had an error
# with:
# name: html5validator_log
# path: log.log
- name: Modify .htacess for staging
if: ${{ github.ref == 'refs/heads/staging' }}
run: |
sed -i 's#www\.divd#staging.divd#' public/.htaccess
sed -i 's#\-2024#-staging#g' public/.htaccess
- name: rsync deploy staging
uses: burnett01/rsync-deployments@5.2.1
if: ${{ github.ref == 'refs/heads/staging' }} # && ( success() || failure() ) # Remove the && clause when a HTML check is flawless
with:
switches: -avzr --delete
path: public/
remote_path: htdocs/divd-nl-staging
remote_host: ${{ secrets.DEPLOY_HOST }}
remote_user: ${{ secrets.DEPLOY_USER }}
remote_key: ${{ secrets.DEPLOY_KEY }}
- name: rsync deploy production
uses: burnett01/rsync-deployments@5.2.1
if: ${{ github.ref == 'refs/heads/main' }} # && ( success() || failure() ) # Remove the && clause when a HTML check is flawless
with:
switches: -avzr --delete
path: public/
remote_path: htdocs/divd-nl-2024
remote_host: ${{ secrets.DEPLOY_HOST }}
remote_user: ${{ secrets.DEPLOY_USER }}
remote_key: ${{ secrets.DEPLOY_KEY }}
- name: Deploy GitHub pages
uses: JamesIves/github-pages-deploy-action@v4
if: ${{ github.ref == 'refs/heads/main' || github.ref == 'refs/heads/staging' }}
with:
folder: admin