/the-examples-book

Supplementary material for solving projects assigned in The Data Mine.

Primary LanguagePLpgSQL

Purdue University

Deploy to Cloudflare Pages


Website: https://the-examples-book.com (main branch)


The Examples Book

Supplementary material for solving projects assigned in The Data Mine, Purdue University's integrative data science initiative. The "core" book can be found at https://the-examples-book.com. Complementary materials are available as appendices at the following URLs:

You can learn more about The Data Mine using the following links:

Contribution

Thank you for those that have already contributed. If you have an ignored issue or pull request, please know we are going to get to it and we really appreciate your patience.

Here is our guide on how to contribute. Please feel free to start a discussion or open up an issue.

Build

This book is written using AsciiDoc. AsciiDoc is an open and powerful format for writing notes, text documents, books, etc. It is easy to write technical documentation in AsciiDoc, and quickly convert the text to various mediums like websites, ebooks, pdfs, etc.

Search index

Search is handled by Meilisearch. For this repository -- the core book -- the following GitHub Action job automatically builds, deploys, and updates the search index. There is no additional work that must be done when a change is made to this repository.

on: 
  push:
    branches:
      - main

jobs:
  build:
    runs-on: ubuntu-20.04
    steps:
    - uses: actions/checkout@v2
    - name: Wait for CF Pages
      id: cf-pages
      uses: WalshyDev/cf-pages-await@v1
      with:
        accountEmail: ${{ secrets.CLOUDFLARE_ACCOUNT_EMAIL }}
        apiKey: ${{ secrets.CLOUDFLARE_GLOBAL_API_KEY  }}
        accountId: 'c07da5a4aa8d50689311ae57df77e3a6'
        project: 'the-examples-book'
        # Add this if you want GitHub Deployments (see below)
        githubToken: ${{ secrets.GITHUB_TOKEN }}

  run-scraper:
    needs: build
    runs-on: ubuntu-20.04
    steps:      
    - name: Clone TheDataMine/docs-scraper
      uses: actions/checkout@v2
      with: 
        repository: TheDataMine/docs-scraper
    - name: Install pipenv
      run: |
        python3 -m pip install --upgrade pipenv wheel
    - id: cache-pipenv
      uses: actions/cache@v1
      with:
        path: ~/.local/share/virtualenvs
        key: ${{ runner.os }}-pipenv-${{ hashFiles('**/Pipfile.lock') }}
    - name: Install dependencies
      if: steps.cache-pipenv.outputs.cache-hit != 'true'
      run: 
        pipenv install
    - name: Run docs-scraper
      env:
        MEILISEARCH_HOST_URL: ${{ secrets.MEILISEARCH_HOST_URL }}
        MEILISEARCH_API_KEY: ${{ secrets.MEILISEARCH_API_KEY }}
      run: |
        pipenv run ./docs_scraper ./the-examples-book.config.json
        
  purge-cf-cache:
    needs: build
    runs-on: ubuntu-20.04
    steps:
    - name: Purge Cloudflare cache
      uses: jakejarvis/cloudflare-purge-action@master
      env:
        CLOUDFLARE_ZONE: ${{ secrets.CLOUDFLARE_ZONE }}
        CLOUDFLARE_TOKEN: ${{ secrets.CLOUDFLARE_TOKEN }}

— # —