mirror of
https://github.com/erlef/setup-beam.git
synced 2026-07-23 07:06:07 +00:00
Update for latest Gleam (#138)
* Update for latest Gleam - Gleam releases now use LLVM triplets for platforms so the download URLs have been updated accordingly. - Gleam's rebar3 support has been removed. This change means that future versions of this action cannot download older versions of Gleam. I can make it backwards compatible, but I will need help from someone who can convert the shell script into PowerShell for Windows. * Support older Gleam versions * Remove rebar from Gleam
This commit is contained in:
@@ -116,16 +116,20 @@ jobs:
|
||||
- elixir-version: 'master'
|
||||
otp-version: '25'
|
||||
os: 'ubuntu-20.04'
|
||||
- gleam-version: '0.16'
|
||||
- gleam-version: 'nightly'
|
||||
otp-version: '24'
|
||||
rebar3-version: '3.16'
|
||||
os: 'ubuntu-latest'
|
||||
- gleam-version: '0.19.0-rc3'
|
||||
- gleam-version: '0.23'
|
||||
otp-version: '24'
|
||||
os: 'ubuntu-latest'
|
||||
- gleam-version: '0.19.0-rc3'
|
||||
- gleam-version: '0.23.0-rc1'
|
||||
otp-version: '24'
|
||||
os: 'ubuntu-latest'
|
||||
- gleam-version: '0.23.0-rc1'
|
||||
otp-version: false
|
||||
os: 'ubuntu-latest'
|
||||
- gleam-version: '0.22.0' # Version with Gleam's old archive naming convention
|
||||
otp-version: '24'
|
||||
os: 'ubuntu-latest'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Use erlef/setup-beam
|
||||
@@ -166,11 +170,6 @@ jobs:
|
||||
cd test-projects/erlang_rebar3
|
||||
rebar3 ct
|
||||
if: ${{matrix.combo.rebar3-version}}
|
||||
- name: Run Gleam/rebar3 project tests
|
||||
run: |
|
||||
cd test-projects/gleam_rebar3
|
||||
rebar3 eunit
|
||||
if: ${{matrix.combo.gleam-version}}
|
||||
- name: Type check Gleam project (without installing Erlang/OTP)
|
||||
run: |
|
||||
cd test-projects/gleam_gleam
|
||||
@@ -190,7 +189,7 @@ jobs:
|
||||
combo:
|
||||
- otp-version: '24'
|
||||
elixir-version: 'v1.12'
|
||||
gleam-version: '0.19'
|
||||
gleam-version: '0.23.0-rc1'
|
||||
rebar3-version: 'nightly'
|
||||
os: 'ubuntu-latest'
|
||||
steps:
|
||||
|
||||
@@ -41,7 +41,7 @@ jobs:
|
||||
otp-version: '24'
|
||||
rebar3-version: '3.15'
|
||||
os: 'windows-latest'
|
||||
- gleam-version: '0.16'
|
||||
- gleam-version: '0.23.0-rc1'
|
||||
otp-version: '24'
|
||||
rebar3-version: '3.16'
|
||||
os: 'windows-latest'
|
||||
@@ -82,11 +82,6 @@ jobs:
|
||||
cd test-projects/erlang_rebar3
|
||||
rebar3 ct
|
||||
if: ${{matrix.combo.rebar3-version}}
|
||||
- name: Run Gleam/rebar3 project tests
|
||||
run: |
|
||||
cd test-projects/gleam_rebar3
|
||||
rebar3 eunit
|
||||
if: ${{matrix.combo.gleam-version}}
|
||||
environment_variables:
|
||||
name: Environment variables
|
||||
runs-on: ${{matrix.combo.os}}
|
||||
@@ -96,7 +91,7 @@ jobs:
|
||||
combo:
|
||||
- otp-version: '24'
|
||||
elixir-version: 'v1.12'
|
||||
gleam-version: '0.19'
|
||||
gleam-version: '0.23.0-rc1'
|
||||
rebar3-version: 'nightly'
|
||||
os: 'windows-latest'
|
||||
steps:
|
||||
|
||||
@@ -165,7 +165,7 @@ jobs:
|
||||
- uses: erlef/setup-beam@v1
|
||||
with:
|
||||
otp-version: '24'
|
||||
gleam-version: '0.19.0-rc3'
|
||||
gleam-version: '0.23.0-rc1'
|
||||
- run: gleam test
|
||||
```
|
||||
|
||||
@@ -183,7 +183,7 @@ jobs:
|
||||
- uses: erlef/setup-beam@v1
|
||||
with:
|
||||
otp-version: false
|
||||
gleam-version: '0.19.0-rc3'
|
||||
gleam-version: '0.23.0-rc1'
|
||||
- run: gleam check
|
||||
```
|
||||
|
||||
|
||||
Vendored
+1
-1
@@ -4,7 +4,7 @@ $ErrorActionPreference="Stop"
|
||||
|
||||
Set-Location ${Env:RUNNER_TEMP}
|
||||
|
||||
$FILE_INPUT="gleam-${VSN}-windows-64bit.zip"
|
||||
$FILE_INPUT="gleam-${VSN}-x86_64-pc-windows-msvc.zip"
|
||||
$FILE_OUTPUT="gleam.zip"
|
||||
$DIR_FOR_BIN=".setup-beam/gleam"
|
||||
|
||||
|
||||
Vendored
+17
-2
@@ -4,11 +4,26 @@ set -eo pipefail
|
||||
|
||||
cd "${RUNNER_TEMP}"
|
||||
|
||||
VSN=${1}
|
||||
FILE_INPUT=gleam-${VSN}-linux-amd64.tar.gz
|
||||
VSN="$1"
|
||||
FILE_OUTPUT=gleam.tar.gz
|
||||
DIR_FOR_BIN=.setup-beam/gleam
|
||||
|
||||
version_gt() {
|
||||
test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"
|
||||
}
|
||||
|
||||
uses_llvm_triplets() {
|
||||
local version="$1"
|
||||
test "$version" = "nightly" || version_gt "$version" "v0.22.1"
|
||||
}
|
||||
|
||||
if uses_llvm_triplets "$VSN"
|
||||
then
|
||||
FILE_INPUT="gleam-${VSN}-x86_64-unknown-linux-musl.tar.gz"
|
||||
else
|
||||
FILE_INPUT="gleam-${VSN}-linux-amd64.tar.gz"
|
||||
fi
|
||||
|
||||
wget -q -O "${FILE_OUTPUT}" "https://github.com/gleam-lang/gleam/releases/download/${VSN}/${FILE_INPUT}"
|
||||
mkdir -p "${DIR_FOR_BIN}/bin"
|
||||
tar zxf "${FILE_OUTPUT}" -C "${DIR_FOR_BIN}/bin"
|
||||
|
||||
@@ -4,7 +4,7 @@ $ErrorActionPreference="Stop"
|
||||
|
||||
Set-Location ${Env:RUNNER_TEMP}
|
||||
|
||||
$FILE_INPUT="gleam-${VSN}-windows-64bit.zip"
|
||||
$FILE_INPUT="gleam-${VSN}-x86_64-pc-windows-msvc.zip"
|
||||
$FILE_OUTPUT="gleam.zip"
|
||||
$DIR_FOR_BIN=".setup-beam/gleam"
|
||||
|
||||
|
||||
+17
-2
@@ -4,11 +4,26 @@ set -eo pipefail
|
||||
|
||||
cd "${RUNNER_TEMP}"
|
||||
|
||||
VSN=${1}
|
||||
FILE_INPUT=gleam-${VSN}-linux-amd64.tar.gz
|
||||
VSN="$1"
|
||||
FILE_OUTPUT=gleam.tar.gz
|
||||
DIR_FOR_BIN=.setup-beam/gleam
|
||||
|
||||
version_gt() {
|
||||
test "$(printf '%s\n' "$@" | sort -V | head -n 1)" != "$1"
|
||||
}
|
||||
|
||||
uses_llvm_triplets() {
|
||||
local version="$1"
|
||||
test "$version" = "nightly" || version_gt "$version" "v0.22.1"
|
||||
}
|
||||
|
||||
if uses_llvm_triplets "$VSN"
|
||||
then
|
||||
FILE_INPUT="gleam-${VSN}-x86_64-unknown-linux-musl.tar.gz"
|
||||
else
|
||||
FILE_INPUT="gleam-${VSN}-linux-amd64.tar.gz"
|
||||
fi
|
||||
|
||||
wget -q -O "${FILE_OUTPUT}" "https://github.com/gleam-lang/gleam/releases/download/${VSN}/${FILE_INPUT}"
|
||||
mkdir -p "${DIR_FOR_BIN}/bin"
|
||||
tar zxf "${FILE_OUTPUT}" -C "${DIR_FOR_BIN}/bin"
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ jobs:
|
||||
- uses: erlef/setup-beam@v1.9.0
|
||||
with:
|
||||
otp-version: "23.2"
|
||||
gleam-version: "0.19.0-rc3"
|
||||
gleam-version: "0.23.0-rc1"
|
||||
- run: gleam format --check src test
|
||||
- run: gleam deps download
|
||||
- run: gleam test
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# You typically do not need to edit this file
|
||||
|
||||
packages = [
|
||||
{ name = "gleam_stdlib", version = "0.19.2", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "FFA79EA12369F122B68885E694E097D6810402A2F86BFF48AAE9E40ACE654F4C" },
|
||||
{ name = "gleeunit", version = "0.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "77701A5E5A565727E1EEAC9196FB878D544049B6331CD0305B5A69699135EA1C" },
|
||||
{ name = "gleam_stdlib", version = "0.22.3", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "F2C2D389B06426E1289D5419F89BDE8E0F7F35A40B2BBB3C88188481F0D44A9F" },
|
||||
{ name = "gleeunit", version = "0.6.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "A006864621DB80C4FBB0746580703502FD81A4D38D23FCB20A8120984D353DF0" },
|
||||
]
|
||||
|
||||
[requirements]
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
name: test
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- main
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2.0.0
|
||||
- uses: gleam-lang/setup-erlang@v1.1.2
|
||||
with:
|
||||
otp-version: 23.2
|
||||
- uses: gleam-lang/setup-gleam@v1.0.2
|
||||
with:
|
||||
gleam-version: 0.16.1
|
||||
- run: rebar3 install_deps
|
||||
- run: rebar3 eunit
|
||||
- run: gleam format --check src test
|
||||
@@ -1,21 +0,0 @@
|
||||
*.beam
|
||||
*.iml
|
||||
*.o
|
||||
*.plt
|
||||
*.swo
|
||||
*.swp
|
||||
*~
|
||||
.erlang.cookie
|
||||
.eunit
|
||||
.idea
|
||||
.rebar
|
||||
.rebar3
|
||||
_*
|
||||
_build
|
||||
docs
|
||||
ebin
|
||||
erl_crash.dump
|
||||
gen
|
||||
log
|
||||
logs
|
||||
rebar3.crashdump
|
||||
@@ -1,24 +0,0 @@
|
||||
# gleam_rebar3
|
||||
|
||||
A Gleam project
|
||||
|
||||
## Quick start
|
||||
|
||||
```sh
|
||||
# Run the eunit tests
|
||||
rebar3 eunit
|
||||
|
||||
# Run the Erlang REPL
|
||||
rebar3 shell
|
||||
```
|
||||
|
||||
## Installation
|
||||
|
||||
If [available in Hex](https://rebar3.org/docs/configuration/dependencies/#declaring-dependencies)
|
||||
this package can be installed by adding `gleam_rebar3` to your `rebar.config` dependencies:
|
||||
|
||||
```erlang
|
||||
{deps, [
|
||||
gleam_rebar3
|
||||
]}.
|
||||
```
|
||||
@@ -1,3 +0,0 @@
|
||||
name = "gleam_rebar3"
|
||||
|
||||
# repository = { type = "github", user = "my-user", repo = "gleam_rebar3" }
|
||||
@@ -1,12 +0,0 @@
|
||||
{erl_opts, [debug_info]}.
|
||||
{src_dirs, ["src", "gen/src"]}.
|
||||
|
||||
{profiles, [
|
||||
{test, [{src_dirs, ["src", "test", "gen/src", "gen/test"]}]}
|
||||
]}.
|
||||
|
||||
{project_plugins, [rebar_gleam]}.
|
||||
|
||||
{deps, [
|
||||
{gleam_stdlib, "0.16.0"}
|
||||
]}.
|
||||
@@ -1,15 +0,0 @@
|
||||
{application, gleam_rebar3,
|
||||
[{description, "A Gleam project"},
|
||||
{vsn, "0.1.0"},
|
||||
{registered, []},
|
||||
{applications,
|
||||
[kernel,
|
||||
stdlib,
|
||||
gleam_stdlib
|
||||
]},
|
||||
{env,[]},
|
||||
{modules, []},
|
||||
|
||||
{include_files, ["gleam.toml", "gen"]},
|
||||
{links, []}
|
||||
]}.
|
||||
@@ -1,3 +0,0 @@
|
||||
pub fn hello_world() -> String {
|
||||
"Hello, from gleam_rebar3!"
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
import gleam_rebar3
|
||||
import gleam/should
|
||||
|
||||
pub fn hello_world_test() {
|
||||
gleam_rebar3.hello_world()
|
||||
|> should.equal("Hello, from gleam_rebar3!")
|
||||
}
|
||||
Reference in New Issue
Block a user