Skip to content
/ actions Public

GitHub Actions to be reused in CI workflows

License

Notifications You must be signed in to change notification settings

f4pga/actions

Repository files navigation

F4PGA Actions

This repository contains Actions to be reused in GitHub Actions Continuous Integration (CI) workflows, either for development purposes or by final users.

Runs license and python linting checks.

Simplifies maintaining Conda Locks, i.e. stable Conda environment files with precise Conda and Pip package versions based on a given Conda environment file.

Running this action only updates the provided Conda Lock file, leaving to the caller action the creation of the Pull Request (PR).

Action inputs

The inputs to this action are:

  • conda_lock_file (default: conda_lock.yml):

    • Path to the Conda Lock file (needs to have txt/yml/yaml extension).
  • environment_file (default: environment.yml):

    • Path to the base environment.yml file.

Avoiding conflicts with inter-dependent git-based pip packages

In certain circumstances pip, internally run when Conda creates the environment, might fail due to an alleged conflict in Conda Lock git-based packages. Until the pip issue is fixed, it can be avoided by making pip install packages without their dependencies. With Conda Lock it's absolutely safe to do so since all pip packages, including the dependencies of packages specified directly, are always included in the Conda Lock. What's more, the package versions are all locked in Conda Lock so these dependencies can't change.

Therefore currently the safest way to create Conda environment using the Conda Lock is:

env PIP_NO_DEPS="true" conda env create -f $CONDA_LOCK_FILE`

Examples

These are examples of using "includable" workflows. Put these in .github/workflow-src/XXXX.yml and then use the actions-includes library to expand it into .github/workflow/XXXX.yml.

"Includable" Workflows

"Includable" Actions