_index: Update docs frontpage with kci-dev #455
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 | |
permissions: | |
issues: write | |
pull-requests: write | |
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: Update submodule kci-dev | |
run: cd kernelci.org/external/kci-dev;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: Leave comment in issue about staging URL | |
if: github.event.inputs.environment == 'staging' || github.event_name == 'issue_comment' | |
run: | | |
gh issue comment "$NUMBER" --body "$BODY" | |
env: | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_REPO: ${{ github.repository }} | |
NUMBER: ${{ github.event.issue.number }} | |
BODY: > | |
Your PR has been deployed to staging. | |
Staging URL: https://static.staging.kernelci.org/ | |
After testing, you can merge your PR. | |
Note: This is a temporary staging URL, if anyone else will test another PR, it will override contents. | |
- 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 }} |