All Projects → crystal-lang → install-crystal

crystal-lang / install-crystal

Licence: MIT license
GitHub Action: Install Crystal programming language

Programming Languages

javascript
184084 projects - #8 most used programming language
shell
77523 projects
crystal
512 projects

Projects that are alternatives of or similar to install-crystal

action-eslint-fix
GitHub Action to run `eslint` with `--fix` option and commit fixes
Stars: ✭ 20 (-60%)
Mutual labels:  github-actions
phpstan-ga
GithubAction for PHPStan
Stars: ✭ 85 (+70%)
Mutual labels:  github-actions
action-eslint
GitHub Action to run ESLint on files changed in current PR
Stars: ✭ 44 (-12%)
Mutual labels:  github-actions
flatpak-github-actions
Build your Flatpak application using Github Actions
Stars: ✭ 73 (+46%)
Mutual labels:  github-actions
gitactionboard
GitactionBoard - Ultimate Dashboard for GithubActions.
Stars: ✭ 30 (-40%)
Mutual labels:  github-actions
discord-action
GitHub Action that sends a Discord message.
Stars: ✭ 66 (+32%)
Mutual labels:  github-actions
rubocop-linter-action
Rubocop Linter Action: A GitHub Action to run Rubocop against your code!
Stars: ✭ 86 (+72%)
Mutual labels:  github-actions
datadog-actions-metrics
Send GitHub Actions metrics to Datadog
Stars: ✭ 27 (-46%)
Mutual labels:  github-actions
start-here
You should open this repo first
Stars: ✭ 86 (+72%)
Mutual labels:  github-actions
terraform-github-actions-demo
HashiCorp Terraform Github Actions Demo for Github Satellite 2020.
Stars: ✭ 40 (-20%)
Mutual labels:  github-actions
mojito-admin-starter
此项目主要为了演示如何自动化 Fullstack project 的 Infrastructure。
Stars: ✭ 17 (-66%)
Mutual labels:  github-actions
corona-kakao-bot
🤖 카카오톡 코로나 알리미
Stars: ✭ 17 (-66%)
Mutual labels:  github-actions
ghaction-chocolatey
GitHub Action for Chocolatey, the package manager for Windows
Stars: ✭ 58 (+16%)
Mutual labels:  github-actions
setup-just
🤖 GitHub Action to install the just command runner
Stars: ✭ 21 (-58%)
Mutual labels:  github-actions
actions
Collection of repetitive GitHub Actions
Stars: ✭ 12 (-76%)
Mutual labels:  github-actions
mylib
Шаблон кросплатформенного CMake-проекта для языка C++ 🇬🇧 Modern CMake crossplatform project template for C++
Stars: ✭ 49 (-2%)
Mutual labels:  github-actions
typescript-api-starter
🔰 Starter for Node.js express API in Typescript 🚀
Stars: ✭ 72 (+44%)
Mutual labels:  github-actions
jest-github-action
Jest action adding checks with annotations to your pull requests and coverage table as comments
Stars: ✭ 134 (+168%)
Mutual labels:  github-actions
nrwl-nx-action
A GitHub Action to wrap Nrwl Nx commands in your workflows.
Stars: ✭ 163 (+226%)
Mutual labels:  github-actions
goodfirstissues
A website that targets developers who want to contribute to open source software but do not know where or how to start.
Stars: ✭ 59 (+18%)
Mutual labels:  github-actions

install-crystal

GitHub Action to install Crystal programming language and Shards package manager.

Works on Ubuntu, macOS, Windows.

Quickstart

Configurator: get a pre-made config for your exact use case!

Examples

steps:
  - uses: crystal-lang/install-crystal@v1
  - run: crystal eval "puts 1337"
steps:
  - uses: actions/checkout@v2
  - uses: crystal-lang/install-crystal@v1
    with:
      crystal: 1.2
  - run: shards install
  - run: crystal spec
    strategy:
      fail-fast: false
      matrix:
        include:
          - {os: ubuntu-latest, crystal: latest}
          - {os: ubuntu-latest, crystal: nightly}
          - {os: macos-latest}
          - {os: windows-latest}
    runs-on: ${{matrix.os}}
    steps:
      - uses: crystal-lang/install-crystal@v1
        with:
          crystal: ${{matrix.crystal}}
      - uses: actions/checkout@v2
      - run: shards install
      - run: crystal spec
      - run: crystal tool format && git diff --exit-code
        if: matrix.crystal == 'latest'

Find usages in the wild!

Alternatively, you can use the container-based approach as in the starter workflow (without this action), but the advantage here is the unified approach to installation across 3 systems. Using a custom container has disadvantages on its own, too.

Usage

Inputs

    • crystal: 1.1.0, crystal: 1.2

      Install a particular release of Crystal (if the full version is specified), or the latest patch version of a release series.

    • crystal: latest (default)

      Install the latest released version of Crystal.

    • crystal: nightly

      Install Crystal from the latest continuous build on crystal.git master.

    • shards: true (default)

      Ensure that some released version of Shards is available. This uses the build that's bundled with Crystal's releases. Other options are slower, as building Shards is a necessary step then.

    • shards: false

      Ensure that shards executable is not available.

    • shards: latest

      Build and install the latest released version of Shards.

    • shards: 0.14.0, shards: 0.16

      Build and install a particular release of Shards (if the full version is specified), or the latest patch version of a release series.

    • shards: nightly

      Build and install the latest commit of shards.git master.

  • arch: x86_64, arch: x86 (defaults to current OS arch)

    The architecture of the build of Crystal to download.

  • destination: some/path

    The directory to store Crystal in, after extracting. Will directly affect outputs.path (the default is in a temporary location).

  • annotate: true (default)

    Display compilation and spec errors as GitHub code annotations.

  • token: ${{ github.token }}

    Personal access token (auto-populated).

Outputs

  • crystal (${{ steps.some_step_id.outputs.crystal }})

    The actual version of Crystal (as a ref in crystal-lang/crystal.git) that was installed.

  • shards (${{ steps.some_step_id.outputs.shards }})

    The actual version of Shards (as a ref in crystal-lang/shards.git) that was installed.

  • path (${{ steps.some_step_id.outputs.path }})

    The path where Crystal was extracted to, so you can use '[path]/bin/crystal', '[path]/src' etc.

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].