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