Record 2024-11-12 TSC votes #398
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: Hugo Website Deploy | |
on: | |
issue_comment: | |
types: [created, edited] | |
workflow_dispatch: | |
inputs: | |
environment: | |
description: 'Environment to deploy to' | |
type: choice | |
required: true | |
default: 'staging' | |
options: | |
- staging | |
- production | |
push: | |
branches: | |
- main | |
jobs: | |
deploy_staging: | |
if: | | |
(github.event.issue.pull_request && contains('["nuclearcat","JenySadadia","a-wai","broonie","padovan", "patersonc"]', github.actor) && contains(github.event.comment.body, '/staging')) || | |
(github.event_name == 'workflow_dispatch' && contains('["nuclearcat","JenySadadia","a-wai","broonie","padovan", "patersonc"]', github.actor)) || | |
(github.event_name == 'push' && github.ref == 'refs/heads/main') | |
runs-on: ubuntu-22.04 | |
environment: stagingdeploy | |
steps: | |
- name: Checkout PR branch | |
uses: actions/checkout@v4 | |
if: github.event_name == 'issue_comment' | |
with: | |
submodules: recursive # Fetch Hugo themes (true OR recursive) | |
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod | |
lfs: true # Fetch Git LFS files | |
ref: refs/pull/${{ github.event.issue.number }}/head | |
- name: Checkout main branch | |
uses: actions/checkout@v4 | |
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' | |
with: | |
submodules: recursive # Fetch Hugo themes (true OR recursive) | |
fetch-depth: 0 # Fetch all history for .GitInfo and .Lastmod | |
lfs: true # Fetch Git LFS files | |
ref: main | |
# TODO: Fix this more elegantly | |
- name: Submodules init | |
run: git submodule update --init --recursive | |
- name: Update submodule kernelci-pipeline | |
run: cd kernelci.org/external/kernelci-pipeline;git pull origin main | |
- name: Update submodule kernelci-api | |
run: cd kernelci.org/external/kernelci-api;git pull origin main | |
- name: Update submodule kernelci-core | |
run: cd kernelci.org/external/kernelci-core;git pull origin main | |
- name: Update submodule kcidb | |
run: cd kernelci.org/external/kcidb;git pull origin main | |
- name: Setup Hugo | |
uses: peaceiris/actions-hugo@v3 | |
with: | |
hugo-version: '0.97.3' | |
extended: true | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
- name: Install dependencies (postcss), bootstrap-sass | |
run: npm install --save-dev autoprefixer && npm install postcss-cli && npm install -D postcss && npm install -D postcss-preset-env && npm install -D bootstrap-sass | |
- name: Build staging | |
if: github.event.inputs.environment == 'staging' || github.event_name == 'issue_comment' | |
run: cd kernelci.org;hugo --minify -D -F -b https://static.staging.kernelci.org/ | |
- name: Build production | |
if: github.event_name == 'push' || github.event.inputs.environment == 'production' | |
run: cd kernelci.org;hugo --minify -D -F -b https://kernelci.org/ | |
- name: rsync staging deployment | |
if: github.event.inputs.environment == 'staging' || github.event_name == 'issue_comment' | |
uses: burnett01/[email protected] | |
with: | |
switches: -avzr --delete | |
path: kernelci.org/public/ | |
remote_path: ${{ secrets.WEB_STAGING_DIR }} | |
remote_host: ${{ secrets.WEB_STAGING_HOST }} | |
remote_port: ${{ secrets.WEB_STAGING_PORT }} | |
remote_user: ${{ secrets.WEB_STAGING_USERNAME }} | |
remote_key: ${{ secrets.WEB_STAGING_KEY }} | |
- name: rsync production deployment | |
if: github.event_name == 'push' || github.event.inputs.environment == 'production' | |
uses: burnett01/[email protected] | |
with: | |
switches: -avzr --delete | |
path: kernelci.org/public/ | |
remote_path: ${{ secrets.WEB_PRODUCTION_DIR }} | |
remote_host: ${{ secrets.WEB_PRODUCTION_HOST }} | |
remote_port: ${{ secrets.WEB_PRODUCTION_PORT }} | |
remote_user: ${{ secrets.WEB_PRODUCTION_USERNAME }} | |
remote_key: ${{ secrets.WEB_PRODUCTION_KEY }} |