Added gh actions
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
name: Download artifact
|
||||
description: Wrapper around GitHub's official action, with additional extraction before download
|
||||
|
||||
# https://github.com/actions/download-artifact/blob/main/action.yml
|
||||
inputs:
|
||||
name:
|
||||
description: Artifact name
|
||||
required: true
|
||||
path:
|
||||
description: Destination path
|
||||
required: false
|
||||
default: .
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Download artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: ${{ inputs.name }}
|
||||
path: ${{ inputs.path }}
|
||||
|
||||
- name: Extract artifacts
|
||||
run: tar -xvf ${{ inputs.name }}.tar
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.path }}
|
||||
|
||||
- name: Remove archive
|
||||
run: rm -f ${{ inputs.name }}.tar
|
||||
shell: bash
|
||||
working-directory: ${{ inputs.path }}
|
||||
@@ -0,0 +1,46 @@
|
||||
name: Upload artifact
|
||||
description: Wrapper around GitHub's official action, with additional archiving before upload
|
||||
|
||||
# https://github.com/actions/upload-artifact/blob/main/action.yml
|
||||
inputs:
|
||||
name:
|
||||
description: Artifact name
|
||||
required: true
|
||||
path:
|
||||
description: One or more files, directories or wildcard pattern that describes what to upload
|
||||
required: true
|
||||
if-no-files-found:
|
||||
description: >
|
||||
The desired behavior if no files are found using the provided path.
|
||||
Available Options:
|
||||
warn: Output a warning but do not fail the action
|
||||
error: Fail the action with an error message
|
||||
ignore: Do not output any warnings or errors, the action does not fail
|
||||
required: false
|
||||
default: warn
|
||||
retention-days:
|
||||
description: >
|
||||
Duration after which artifact will expire in days. 0 means using default retention.
|
||||
Minimum 1 day.
|
||||
Maximum 90 days unless changed from the repository settings page.
|
||||
required: false
|
||||
default: '0'
|
||||
|
||||
runs:
|
||||
using: composite
|
||||
steps:
|
||||
- name: Archive artifacts
|
||||
run: tar -hcvf ${{ inputs.name }}.tar $(echo "${{ inputs.path }}" | tr '\n' ' ')
|
||||
shell: bash
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
if-no-files-found: ${{ inputs.if-no-files-found }}
|
||||
name: ${{ inputs.name }}
|
||||
path: ${{ inputs.name }}.tar
|
||||
retention-days: ${{ inputs.retention-days }}
|
||||
|
||||
- name: Remove archive
|
||||
run: rm -f ${{ inputs.name }}.tar
|
||||
shell: bash
|
||||
@@ -0,0 +1,72 @@
|
||||
name: Deploy
|
||||
|
||||
on:
|
||||
# Triggers the workflow on push or pull request events but only for the main branch
|
||||
push:
|
||||
branches: [main, release**]
|
||||
pull_request:
|
||||
branches: [main, release**]
|
||||
# Don't run on draft PR's, see: https://github.com/orgs/community/discussions/25722#discussioncomment-3248917
|
||||
types: [opened, synchronize, reopened, ready_for_review]
|
||||
# Allows us to run the workflow manually from the Actions tab
|
||||
workflow_dispatch:
|
||||
|
||||
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
|
||||
permissions:
|
||||
contents: read
|
||||
pages: write
|
||||
id-token: write
|
||||
|
||||
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
|
||||
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
|
||||
concurrency:
|
||||
group: "pages"
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
generate-doc-options:
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: recursive
|
||||
|
||||
- name: Install Nix
|
||||
uses: DeterminateSystems/nix-installer-action@main
|
||||
|
||||
- run: nix build .#docs
|
||||
|
||||
- run: nix run .#hugo
|
||||
|
||||
- name: Store hugo
|
||||
uses: ./.github/actions/upload-artifact
|
||||
with:
|
||||
name: hugo
|
||||
path: ./hugo/public
|
||||
|
||||
deploy-docs:
|
||||
needs: generate-doc-options
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
runs-on: ubuntu-22.04
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Get nix build output
|
||||
uses: ./.github/actions/download-artifact
|
||||
with:
|
||||
name: hugo
|
||||
|
||||
- name: Setup Pages
|
||||
uses: actions/configure-pages@v3
|
||||
|
||||
- name: Upload GH pages artifact
|
||||
uses: actions/upload-pages-artifact@v1
|
||||
with:
|
||||
path: './hugo/public'
|
||||
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v2
|
||||
Reference in New Issue
Block a user