Split up configuration

This commit is contained in:
Jesper Louis Andersen 2021-06-19 12:40:53 +02:00
parent 87f9270a6c
commit ec64b0de73
3 changed files with 61 additions and 95 deletions

View File

@ -1,95 +0,0 @@
package actions
// Versions for simplicity
_versions: {
latest: ["24.0"]
// The versions here have an underlying Debian/Ubuntu which support enough of
// libsodium to handle what enacl provides. Older versions will fail to compile
all: ["22.3", "23.3", "24.0"]
rebar3: "3.16.1"
}
_branch: "master"
#Name: string
#Branches: branches: [...string]
#Tags: tags: [...string]
#On: {
push?: #Branches
pull_request?: #Branches
page_build?: #Branches
}
#Action: "actions/checkout@v2" | "erlef/setup-beam@v1"
#Uses: {
uses: #Action
with?: {
...
}
}
#Run: {
name: string
run: string
}
#Steps: #Uses | #Run
#OS_Version: *"ubuntu-latest" | "macos-latest" | "windows_latest"
#Jobs: ci: {
name: string
"runs-on": string
strategy:
matrix: {
otp_vsn: [...string]
os: [...#OS_Version]
}
steps: [...#Steps]
}
name: #Name & "build"
on: #On & {
push: branches: [
_branch,
]
pull_request: branches: [
_branch,
]
}
jobs: #Jobs
jobs: ci: {
name: "Run checks and tests over ${{matrix.otp_vsn}} and ${{matrix.os}}"
"runs-on": "${{matrix.os}}"
strategy: matrix: {
otp_vsn: _versions.all
os: ["ubuntu-latest"]
}
}
jobs: ci: steps:
[
{
uses: "actions/checkout@v2"
},
{
uses: "erlef/setup-beam@v1"
with: {
"otp-version": "${{matrix.otp_vsn}}"
"rebar3-version": _versions.rebar3
}
},
{
name: "Update apt-get database"
run: "sudo apt-get update"
},
{
name: "Install libsodium"
run: "sudo apt-get install -y libsodium-dev"
},
{
name: "Compile source code"
run: "make compile"
},
{
name: "Run the tests"
run: "make tests"
}]

21
.github/workflows/setup.cue vendored Normal file
View File

@ -0,0 +1,21 @@
package actions
name: #Name & "build"
on: #On & {
push: branches: [
_branch,
]
pull_request: branches: [
_branch,
]
}
jobs: #Jobs
jobs: ci: {
name: "Run checks and tests over ${{matrix.otp_vsn}} and ${{matrix.os}}"
"runs-on": "${{matrix.os}}"
strategy: matrix: {
otp_vsn: _versions.otp
os: ["ubuntu-latest"]
}
}

40
.github/workflows/steps.cue vendored Normal file
View File

@ -0,0 +1,40 @@
package actions
// Versions for simplicity
_versions: {
// The versions here have an underlying Debian/Ubuntu which support enough of
// libsodium to handle what enacl provides. Older versions will fail to compile
otp: ["22.3", "23.3", "24.0"]
rebar3: "3.16.1"
}
_branch: "master"
jobs: ci: steps:
[
{
uses: "actions/checkout@v2"
},
{
uses: "erlef/setup-beam@v1"
with: {
"otp-version": "${{matrix.otp_vsn}}"
"rebar3-version": _versions.rebar3
}
},
{
name: "Update apt-get database"
run: "sudo apt-get update"
},
{
name: "Install libsodium"
run: "sudo apt-get install -y libsodium-dev"
},
{
name: "Compile source code"
run: "make compile"
},
{
name: "Run the tests"
run: "make tests"
}]