Skip to content
Use this GitHub Action with your project

Add this Action to an existing workflow or create a new one.

View on Marketplace
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

CI

setup-rez

Github Action to setup rez package system.

Usage

# Ensure there is a python interpreter first to install rez!
- uses: actions/setup-python@v1
  with:
    python-version: "${{ matrix.python }}"

- uses: j0yu/setup-rez@v1
  # ALL below inputs are optional, these values are the default ones
  with:
    # GitHub repository to install rez from.
    source: 'nerdvegas/rez'

    # Git tag/branch/commit to use.
    ref: 'master'

    # Create all default "rez config packages_path".
    makePackagesPaths: true

    # Comma separated packages to rez bind, e.g. "pip, python, os".
    # To disable, just pass in an empty string "bind: ''"
    # See "rez bind --list".
    # Will force the creation of "rez config local_packages_path"
    binds: "os, python"

Example

Make sure you run actions/setup-python before using j0yu/setup-rez

name: CI
on: [push]

jobs:
  test:
    name: Test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/setup-python@v1
        with:
          python-version: 2.7

      # Using custom rez repository and version
      - uses: j0yu/setup-rez@v1
        with:
          source: "mottosso/bleeding-rez"
          ref: "2.33.0"
      
      # Check if rez is on PATH, check configs and rez bind packages
      - run: rez --version
      - run: rez config local_packages_path
      - run: rez config release_packages_path
      - run: rez config packages_path
      - run: rez view os
      - run: rez view python

      # If our repository has a package.py, let's try test build/installing it
      - uses: actions/checkout@v2
      - run: rez build --install

How it works

Everything is done in the run function in index.js:

  1. Get cached install for the source and ref input combination

  2. If there is no installs/tools cache install rez:

    1. Downloads and extracts from https://github.com/${source}/archive/${ref}.tar.gz

    2. If install.py exists, install via python install.py DEST

      else, if setup.py exists, install via pip install --target DEST SRC

    3. Store required environment variable paths to append in a setup.json

  3. Load and append environment variables paths from setup.json

    Typically PATH for rez command, PYTHONPATH if used pip install --target.

  4. Create any rez config package_paths folders if required.

  5. Create any rez bind PKG... packages if required.

Notes on install style availability:

Rez (1st) install.py (2nd) pip install
nerdvegas/rez Always 2.33.0+
mottosso/bleeding-rez NEVER Always

Developing

Clone this repository down and modify:

at the humble beginnings...

I didn't want to have npm installed, so here's the Docker contained way I worked on CentOS-7. See Creating a JavaScript action.

  1. Clone this repository.

  2. cd into the repository.

  3. Edit the action.yml

  4. Setup npm package using Docker container.

    alias npm="docker run --rm -it -v "$(pwd):$(pwd)" --user "$(id -u):$(id -g)" -w "$(pwd)" node:12 npm"
    npm init -y
    npm install @actions/core --save
    npm install @actions/exec --save
    npm install @actions/io --save
    npm install @actions/tool-cache --save
  5. Edit the index.js

  6. Add paths required, then push:

    git add --force action.yml index.js node_modules/* package.json package-lock.json README.md
    git commit
    git push
You can’t perform that action at this time.