pmatos / setup-racket

A GH action for installing Racket.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

setup-racket

GitHub Actions status

This action sets up a Racket environment for use in GitHub Actions.

Usage

See action.yml and this article for a tutorial on how to use it.

Basic

steps:
- uses: actions/checkout@master
- uses: Bogdanp/setup-racket@v1.4
  with:
    architecture: 'x64'  # or: 'x64', 'x86', 'arm32', 'arm64' (or 'aarch64')
    distribution: 'full' # or: 'minimal'
    variant: 'CS'        # or: 'BC' for Racket Before Chez
    version: '8.1'       # or: 'stable' for the latest version, 'current' for the latest snapshot
- run: racket hello.rkt

Package Installation

steps:
- uses: actions/checkout@master
- uses: Bogdanp/setup-racket@v1.4
  with:
    architecture: 'x64'
    distribution: 'full'
    variant: 'CS'
    version: '8.1'
    packages: 'component, koyo' # must be a comma-separated string!
- run: racket hello.rkt

Custom Locations (only on Linux)

steps:
- uses: actions/checkout@master
- uses: Bogdanp/setup-racket@v1.4
  with:
    architecture: 'x64'
    distribution: 'full'
    variant: 'CS'
    version: '8.1'
    dest: '/opt/racket' # ignored on macOS and Windows
- run: racket hello.rkt

When dest is provided, the destination installation's bin folder is prepended to the PATH. When you install multiple Racket versions to separate destinations, the last one you install will be the one that's found in the PATH when you invoke racket from a shell (unless you use an absolute path).

Disable sudo

Only on Linux. The default is to use sudo if the command exists.

steps:
- uses: actions/checkout@master
- uses: Bogdanp/setup-racket@v1.4
  with:
    architecture: 'x64'
    distribution: 'full'
    variant: 'CS'
    version: '8.1'
    dest: '$GITHUB_WORKSPACE/racket'
    sudo: never # one of always or never
- run: "$GITHUB_WORKSPACE/racket/bin/racket" hello.rkt

Matrix Testing

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        racket-version: [ '7.8', '7.9', '8.0' '8.1' ]
    name: Racket ${{ matrix.racket-version }} sample
    steps:
      - uses: actions/checkout@master
      - name: Setup Racket
        uses: Bogdanp/setup-racket@v1.4
        with:
          architecture: x64
          version: ${{ matrix.racket-version }}
      - run: racket hello.rkt

Local Package Catalogs

steps:
- uses: actions/checkout@master
- uses: Bogdanp/setup-racket@v1.4
  with:
    architecture: 'x64'
    distribution: 'minimal'
    variant: 'CS'
    version: '8.1'
    dest: '/opt/racket'
    sudo: never
    local_catalogs: $GITHUB_WORKSPACE

This sets up a local package catalog at $GITHUB_WORKSPACE/catalog that has higher priority than the catalogs that come with the Racket distribution. This can come in handy when testing libraries that are a part of the main Racket distribution.

You can provide multiple local catalog paths by separating them with commas. They are prepended to the catalog set in order so the first local catalog in the list will have the highest priority.

Gotchas

Installers for x86 are not available on Linux.

Installers for arm32 are only currently available when the version is current and arm64 installers are currently not available at all.

Installers for Apple Silicon Macs are available when the version is current and the arch is either arm64 or aarch64.

License

The scripts and documentation in this project are released under the MIT License.

About

A GH action for installing Racket.

License:MIT License


Languages

Language:JavaScript 91.8%Language:TypeScript 8.2%Language:Racket 0.1%