Skip to content

Commit

Permalink
chore: setting up gleam
Browse files Browse the repository at this point in the history
  • Loading branch information
nermalcat69 committed Aug 6, 2024
1 parent 44b8f68 commit 75eb3c4
Show file tree
Hide file tree
Showing 7 changed files with 130 additions and 0 deletions.
23 changes: 23 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: test

on:
push:
branches:
- master
- main
pull_request:

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: erlef/setup-beam@v1
with:
otp-version: "26.0.2"
gleam-version: "1.4.1"
rebar3-version: "3"
# elixir-version: "1.15.4"
- run: gleam deps download
- run: gleam test
- run: gleam format --check src test
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
*.beam
*.ez
/build
erl_crash.dump
24 changes: 24 additions & 0 deletions dot.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
# my_web_app

[![Package Version](https://img.shields.io/hexpm/v/my_web_app)](https://hex.pm/packages/my_web_app)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/my_web_app/)

```sh
gleam add my_web_app@1
```
```gleam
import my_web_app
pub fn main() {
// TODO: An example of the project in use
}
```

Further documentation can be found at <https://hexdocs.pm/my_web_app>.

## Development

```sh
gleam run # Run the project
gleam test # Run the tests
```
19 changes: 19 additions & 0 deletions gleam.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name = "my_web_app"
version = "1.0.0"

# Fill out these fields if you intend to generate HTML documentation or publish
# your project to the Hex package manager.
#
# description = ""
# licences = ["Apache-2.0"]
# repository = { type = "github", user = "", repo = "" }
# links = [{ title = "Website", href = "" }]
#
# For a full reference of all the available options, you can have a look at
# https://gleam.run/writing-gleam/gleam-toml/.

[dependencies]
gleam_stdlib = ">= 0.34.0 and < 2.0.0"

[dev-dependencies]
gleeunit = ">= 1.0.0 and < 2.0.0"
18 changes: 18 additions & 0 deletions src/my_web_app.gleam
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import mist
import gleam/erlang/process
import gleam/bytes_builder
import gleam/http/response.{Response}

pub fn main() {
let assert Ok(_) =
web_service
|> mist.new
|> mist.port(8080)
|> mist.start_http
process.sleep_forever()
}

fn web_service(_request) {
let body = bytes_builder.from_string("Hello, Joe!")
Response(200, [], mist.Bytes(body))
}
12 changes: 12 additions & 0 deletions test/my_web_app_test.gleam
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import gleeunit
import gleeunit/should

pub fn main() {
gleeunit.main()
}

// gleeunit test functions end in `_test`
pub fn hello_world_test() {
1
|> should.equal(1)
}
30 changes: 30 additions & 0 deletions zerops.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
zerops:
- setup: app
build:
os: alpine
base: go@1
envVariables:
MIX_ENV: prod
prepareCommands:
- apk update
- apk add erlang elixir
- apk add gleam
- apk add rebar3
- mix local.hex --force
- mix local.rebar --force
buildCommands:
- mix deps.get
- mix compile
- mix release
deployFiles:
- _build/prod/rel/app/~
run:
os: alpine
base: go@1
prepareCommands:
- apk update
- apk add libstdc++
ports:
- port: 8080
httpSupport: true
start: bin/app start

0 comments on commit 75eb3c4

Please sign in to comment.