Skip to content

Commit

Permalink
Prototype for deploying Haddock documentation to GitHub pages.\n\nAls…
Browse files Browse the repository at this point in the history
…o removed coverage and monthly continuous integration tests.
  • Loading branch information
chungyc committed Nov 25, 2024
1 parent 1df0714 commit 1e4a7b4
Show file tree
Hide file tree
Showing 3 changed files with 42 additions and 65 deletions.
81 changes: 42 additions & 39 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,67 +3,70 @@ concurrency: build

on:
push:

workflow_call:
inputs:
resolver:
required: false
type: string
coverage:
required: false
type: boolean

env:
extra_stack_args:
extra_key_part:

jobs:
test:
build:
name: Build
runs-on: ubuntu-latest

steps:
- name: Set environment
if: ${{ inputs.resolver != '' }}
run: |
echo "extra_stack_args=--resolver ${{ inputs.resolver }}" >> $GITHUB_ENV
echo "extra_key_part=-resolver-${{ inputs.resolver }}" >> $GITHUB_ENV
- name: Checkout
uses: actions/checkout@v4

- name: Setup
uses: haskell-actions/setup@v2
with:
enable-stack: true

- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.stack
key: stack${{ env.extra_key_part }}-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('package.yaml', 'stack.yaml') }}
key: stack-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('package.yaml', 'stack.yaml') }}

- name: Cache build artifacts
if: ${{ !inputs.coverage }}
uses: actions/cache@v4
with:
path: .stack-work
key: stack${{ env.extra_key_part}}-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('app/**', 'bench/**', 'src/**', 'test/**') }}
key: stack-${{ runner.arch }}-${{ runner.os }}-${{ hashFiles('app/**', 'bench/**', 'src/**', 'test/**') }}

- name: Build and test
if: ${{ !inputs.coverage }}
run: stack build --test --bench --no-run-benchmarks ${{ env.extra_stack_args }}
- name: Setup
uses: haskell-actions/setup@v2
with:
enable-stack: true

- name: Build
run: stack build --test --bench --haddock --no-run-benchmarks --no-haddock-deps

- name: Coverage
id: coverage
if: ${{ inputs.coverage }}
- id: paths
name: Get path
if: ${{ github.ref_name == 'pages' }}
run: |
stack build --test --bench --no-run-benchmarks ${{ env.extra_stack_args }} --coverage
echo "coverage-report=$(stack path --local-hpc-root)" >> $GITHUB_OUTPUT
echo "docs=$(stack path --local-doc-root --no-haddock-deps)/ninetynine-$(stack query locals ninetynine version)" >> $GITHUB_OUTPUT
- name: Upload coverage report
if: ${{ inputs.coverage }}
- name: Upload documentation
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: ${{ steps.coverage.outputs.coverage-report }}
name: docs
path: ${{ steps.paths.outputs.docs }}

deploy:
name: Deploy documentation
if: github.ref_name == 'pages'
needs: build
concurrency: deploy
runs-on: ubuntu-latest

# Permissions needed to deploy to GitHub Pages.
permissions:
pages: write
id-token: write

steps:
- uses: actions/download-artifact@v4
with:
name: docs
path: _site

- id: customize
run: ln -s _site/Problems.html _site/index.html

- uses: actions/upload-pages-artifact@v3

- uses: actions/deploy-pages@v4
13 changes: 0 additions & 13 deletions .github/workflows/coverage.yaml

This file was deleted.

13 changes: 0 additions & 13 deletions .github/workflows/integration.yaml

This file was deleted.

0 comments on commit 1e4a7b4

Please sign in to comment.