All Projects → Bogdanp → setup-racket

Bogdanp / setup-racket

Licence: MIT license
A GH action for installing Racket.

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
racket
414 projects

Labels

Projects that are alternatives of or similar to setup-racket

staticcheck-action
Staticcheck's official GitHub Action
Stars: ✭ 47 (+11.9%)
Mutual labels:  actions
release-helper
🤖 A GitHub Action that help you publish release.
Stars: ✭ 27 (-35.71%)
Mutual labels:  actions
action-python-poetry
Template repo to quickly make a tested and documented GitHub action in Python with Poetry
Stars: ✭ 85 (+102.38%)
Mutual labels:  actions
jacoco-report
Github action that publishes the JaCoCo report as a comment in the Pull Request
Stars: ✭ 31 (-26.19%)
Mutual labels:  actions
nitro
🔥 NITRO: Nitrogen Web Framework
Stars: ✭ 45 (+7.14%)
Mutual labels:  actions
fullstack-grpc
gRPC web with REST gateway and interceptors and example web app with envoy proxy
Stars: ✭ 42 (+0%)
Mutual labels:  actions
ssh2actions
Connect to GitHub Actions VM via SSH for interactive debugging
Stars: ✭ 62 (+47.62%)
Mutual labels:  actions
action-label-syncer
GitHub Action to sync GitHub labels in the declarative way
Stars: ✭ 138 (+228.57%)
Mutual labels:  actions
viewts
Display PCR, DTS, PTS, bitrate, jitter of a mpeg TS.
Stars: ✭ 46 (+9.52%)
Mutual labels:  actions
changelog-reader-action
A GitHub action to read and get data from the CHANGELOG.md file 🚀
Stars: ✭ 68 (+61.9%)
Mutual labels:  actions
svgo-action
Automatically run SVGO with GitHub Actions
Stars: ✭ 18 (-57.14%)
Mutual labels:  actions
dependent-issues
📦 A GitHub Action for marking issues as dependent on another
Stars: ✭ 83 (+97.62%)
Mutual labels:  actions
setup-timezone
setup timezone for actions
Stars: ✭ 20 (-52.38%)
Mutual labels:  actions
action-junit-report
Reports junit test results as GitHub Pull Request Check
Stars: ✭ 103 (+145.24%)
Mutual labels:  actions
react-redux-controllers
Microframework for structuring code of React/Redux applications
Stars: ✭ 13 (-69.05%)
Mutual labels:  actions
gh-action-community
GitHub Action for the Community, from welcoming first timers to badges
Stars: ✭ 24 (-42.86%)
Mutual labels:  actions
floatly
An extension that adds a floating button for browser quick actions
Stars: ✭ 32 (-23.81%)
Mutual labels:  actions
actions-pixela
GitHub Actions for Pixela (a-know/pi) - a-know/pi Setup Action. Linux (Ubuntu), macOS, and Windows are supported.
Stars: ✭ 12 (-71.43%)
Mutual labels:  actions
actions-sms
Send an SMS through GitHub Actions
Stars: ✭ 108 (+157.14%)
Mutual labels:  actions
gradle-actions
Github Actions for Gradle
Stars: ✭ 29 (-30.95%)
Mutual labels:  actions

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/[email protected]
  with:
    architecture: 'x64'  # or: 'x64', 'x86', 'arm32', 'arm64' (or 'aarch64')
    distribution: 'full' # or: 'minimal' (but you probably don't want 'minimal', see note at the bottom of this doc)
    variant: 'CS'        # or: 'BC' for Racket Before Chez
    version: '8.5'       # or: 'stable' for the latest version, 'current' for the latest snapshot, 'pre-release' for the latest pre-release build
- run: racket hello.rkt

Package Installation

steps:
- uses: actions/checkout@master
- uses: Bogdanp/[email protected]
  with:
    architecture: 'x64'
    distribution: 'full'
    variant: 'CS'
    version: '8.5'
- run: raco pkg install --auto component koyo
- run: racket hello.rkt

Caching

You can use actions/cache in combination with setup-racket to reduce the time spent installing dependencies. See this repo for an example.

Custom Locations (only on Linux)

steps:
- uses: actions/checkout@master
- uses: Bogdanp/[email protected]
  with:
    architecture: 'x64'
    distribution: 'full'
    variant: 'CS'
    version: '8.5'
    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/[email protected]
  with:
    architecture: 'x64'
    distribution: 'full'
    variant: 'CS'
    version: '8.5'
    dest: '$GITHUB_WORKSPACE/racket'
    sudo: never # either 'always' or 'never'
- run: "$GITHUB_WORKSPACE/racket/bin/racket" hello.rkt

Matrix Testing

jobs:
  build:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        racket-version: [ '8.2', '8.3', '8.4', '8.5' ]
    name: Racket ${{ matrix.racket-version }} sample
    steps:
      - uses: actions/checkout@master
      - name: Setup Racket
        uses: Bogdanp/[email protected]
        with:
          architecture: x64
          version: ${{ matrix.racket-version }}
      - run: racket hello.rkt

Local Package Catalogs

steps:
- uses: actions/checkout@master
- uses: Bogdanp/[email protected]
  with:
    architecture: 'x64'
    distribution: 'minimal'
    variant: 'CS'
    version: '8.5'
    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

minimal vs full distribution

Using the full distribution instead of the minimal distribution will reduce your build times for most use cases. Things you typically do in CI (run tests, build docs, etc.) require many dependencies not included in the minimal distribution, so you waste a lot of time downloading and installing those dependencies. The full distribution comes with those dependencies pre-installed. Only use the minimal distribution if you really know what you're doing.

CPU Architecture Notes

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].