Skip to main content

Reference: GitHub Actions

GitHub Actions are the glue that ties together disparate components of the Paradicms system. A GitHub Action like spreadsheet-etl-action extracts data from a source like Google Sheets, transforms it to the Paradicms data model, and loads it into a file that can be consumed by a downstream action such as ssg-action. ssg-action feeds the data to an app-specific static site generator (SSG). The result is a set of HTML, CSS, and JavaScript files which can be deployed to a static file hosting service such as GitHub Pages.

This page documents the GitHub Actions provided by Paradicms, with one section per action.

airtable-etl-action

The airtable-etl-action extracts, transforms, and loads collection data from an Airtable base.

Inputs

NameDescriptionOptional/RequiredDefault
airtable_access_tokenAirtable access token (not API key), see https://support.airtable.com/docs/creating-and-using-api-keys-and-access-tokensRequired
airtable_base_idAirtable base id such as appgU92SdGTwPIVNg, see the base API documentationRequired
cache_directory_pathPath to a directory in which to store cached dataOptional.paradicms/.cache
debugDebug the actionOptional
loaded_data_directory_pathPath to a directory in which to store the loaded RDF fileOptional.paradicms/data
loaded_data_file_pathPath to a file in which to store the loaded RDF, overrides data_directory_path if specifiedOptional
pipeline_idPipeline id. Defaults to the name of the repository.Optional
profileApplication profile of the data/metadata in the Airtable metadata, one of: costume_coreOptionalcostume_core

Example

The example is adapted from the Airtable template repository. The tutorial on generating a faceted search interface using data in Airtable explains the role of this action in context.

uses: paradicms/airtable-etl-action@v1-beta
with:
airtable_access_token: ${{ secrets.AIRTABLE_ACCESS_TOKEN }}
airtable_base_id: ${{ secrets.AIRTABLE_BASE_ID }}

directory-etl-action

The directory-etl-action extracts, transforms, and loads collection data from a directory of files with a prescribed structure. The files must reside in the GitHub repository.

Inputs

NameDescriptionOptional/RequiredDefault
cache_directory_pathPath to a directory in which to store cached dataOptional.paradicms/.cache
debugDebug the actionOptional
input_directory_pathPath to a directory of JSON, Markdown, YAML, and/or other files containing data to extract, transform, and loadOptional.
loaded_data_directory_pathPath to a directory in which to store the loaded RDF fileOptional.paradicms/data
loaded_data_file_pathPath to a file in which to store the loaded RDF, overrides data_directory_path if specifiedOptional
pipeline_idPipeline id. Defaults to the name of the repository.Optional

Example

The example is adapted from the directory template repository. The tutorial on using files to generate a digital exhibition explains the role of this action in context.

uses: paradicms/directory-etl-action@v1-beta

spreadsheet-etl-action

The spreadsheet-etl-action extracts, transforms, and loads collection data from a spreadsheet. The spreadsheet can reside on Google Sheets or in an Excel 2010 file (.xlsx) in the GitHub repository.

Inputs

NameDescriptionOptional/RequiredDefault
spreadsheetGoogle Sheets spreadsheet id, Google Sheet URL, or path to an Excel 2010 (.xlsx) fileRequired
cache_directory_pathPath to a directory in which to store cached dataOptional.paradicms/.cache
debugDebug the actionOptional
loaded_data_directory_pathPath to a directory in which to store the loaded RDF fileOptional.paradicms/data
loaded_data_file_pathPath to a file in which to store the loaded RDF, overrides data_directory_path if specifiedOptional
pipeline_idPipeline id. Defaults to the name of the repository.Optional

spreadsheet must be one of:

  • a Google Sheets spreadsheet id, such as 1j2oaMvMxY4pnXO-sEH_fky2R2gm6TQeIev_Q8rVOD4M
  • the full URL of a Google Sheet, such as https://docs.google.com/spreadsheets/d/1j2oaMvMxY4pnXO-sEH_fky2R2gm6TQeIev_Q8rVOD4M/edit?usp=sharing
  • the path to an Excel 2010 file (.xlsx) within the repository, such as data/data.xlsx

Example

The example is adapted from the

GitHub Actions workflow in the Google Sheets template repository
. The tutorial on using Google Sheets to generate a timeline interface explains the role of this action in context.


uses: paradicms/spreadsheet-etl-action@v1-beta

with:

spreadsheet: 1j2oaMvMxY4pnXO-sEH_fky2R2gm6TQeIev_Q8rVOD4M

ssg-action

The ssg-action generates a Paradicms app from data previously extracted, transformed, and loaded by one of the ETL actions (above).

Inputs

NameDescriptionOptional/RequiredDefault
cache_directory_pathPath to a directory in which to store cached dataOptional.paradicms/.cache
data_pathscolon-separated paths to one or more data files created by ETL actions, or directories containing data filesOptional.paradicms/data
debugDebug the actionOptional
pipeline_idPipeline id. Defaults to the name of the repository.Optional
site_directory_pathPath to a directory where the generated static assets (CSS, HTML, JavaScript) should be placedOptional_site

Example

The example is adapted from the directory template repository. The tutorial on using files to generate a digital exhibition explains the role of this action in context.

- uses: paradicms/directory-etl-action@v1-beta
- uses: paradicms/ssg-action@v1-beta