diff options
author | Thijs Schreijer <thijs@thijsschreijer.nl> | 2023-11-09 19:48:16 +0100 |
---|---|---|
committer | Thijs Schreijer <thijs@thijsschreijer.nl> | 2023-11-09 22:59:06 +0100 |
commit | 3f4a5564b2643d884594a15ddc233c9c4abe3780 (patch) | |
tree | 412583755cdbdad77326c17937462b20f9a0ad4c | |
parent | aebb2fcd2551caa063c126a35dbb22ec72f2b616 (diff) | |
download | luasystem-3f4a5564b2643d884594a15ddc233c9c4abe3780.tar.gz luasystem-3f4a5564b2643d884594a15ddc233c9c4abe3780.tar.bz2 luasystem-3f4a5564b2643d884594a15ddc233c9c4abe3780.zip |
chore(ci): switch to github actions
-rw-r--r-- | .github/workflows/lint.yml | 38 | ||||
-rw-r--r-- | .github/workflows/unix_build.yml | 59 | ||||
-rw-r--r-- | .travis.yml | 34 | ||||
-rw-r--r-- | .travis/platform.sh | 15 | ||||
-rw-r--r-- | .travis/setenv_lua.sh | 3 | ||||
-rw-r--r-- | .travis/setup_lua.sh | 122 | ||||
-rw-r--r-- | appveyor.yml | 29 |
7 files changed, 126 insertions, 174 deletions
diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..4a4516b --- /dev/null +++ b/.github/workflows/lint.yml | |||
@@ -0,0 +1,38 @@ | |||
1 | name: Lint | ||
2 | |||
3 | concurrency: | ||
4 | # for PR's cancel the running task, if another commit is pushed | ||
5 | group: ${{ github.workflow }} ${{ github.ref }} | ||
6 | cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
7 | |||
8 | on: | ||
9 | # build on PR and push-to-main. This works for short-lived branches, and saves | ||
10 | # CPU cycles on duplicated tests. | ||
11 | # For long-lived branches that diverge, you'll want to run on all pushes, not | ||
12 | # just on push-to-main. | ||
13 | pull_request: {} | ||
14 | push: | ||
15 | branches: | ||
16 | - main | ||
17 | |||
18 | |||
19 | jobs: | ||
20 | lint: | ||
21 | runs-on: ubuntu-20.04 | ||
22 | steps: | ||
23 | - name: Checkout | ||
24 | uses: actions/checkout@v3 | ||
25 | |||
26 | - uses: leafo/gh-actions-lua@v8 | ||
27 | with: | ||
28 | luaVersion: "5.4" | ||
29 | |||
30 | - uses: leafo/gh-actions-luarocks@v4 | ||
31 | |||
32 | - name: dependencies | ||
33 | run: | | ||
34 | luarocks install luacheck | ||
35 | |||
36 | - name: lint | ||
37 | run: | | ||
38 | luacheck . | ||
diff --git a/.github/workflows/unix_build.yml b/.github/workflows/unix_build.yml new file mode 100644 index 0000000..ba8164a --- /dev/null +++ b/.github/workflows/unix_build.yml | |||
@@ -0,0 +1,59 @@ | |||
1 | name: "Unix build" | ||
2 | |||
3 | concurrency: | ||
4 | # for PR's cancel the running task, if another commit is pushed | ||
5 | group: ${{ github.workflow }} ${{ github.ref }} | ||
6 | cancel-in-progress: ${{ github.event_name == 'pull_request' }} | ||
7 | |||
8 | on: | ||
9 | # build on PR and push-to-main. This works for short-lived branches, and saves | ||
10 | # CPU cycles on duplicated tests. | ||
11 | # For long-lived branches that diverge, you'll want to run on all pushes, not | ||
12 | # just on push-to-main. | ||
13 | pull_request: {} | ||
14 | push: | ||
15 | branches: | ||
16 | - main | ||
17 | |||
18 | |||
19 | jobs: | ||
20 | test: | ||
21 | runs-on: ${{ matrix.os }} | ||
22 | |||
23 | strategy: | ||
24 | fail-fast: false | ||
25 | matrix: | ||
26 | os: ['ubuntu-20.04', 'macos-11.0'] | ||
27 | luaVersion: | ||
28 | - "5.1" | ||
29 | - "5.2" | ||
30 | - "5.3" | ||
31 | - "5.4" | ||
32 | - "luajit-2.1.0-beta3" | ||
33 | - "luajit-openresty" | ||
34 | |||
35 | steps: | ||
36 | - name: Checkout | ||
37 | uses: actions/checkout@v3 | ||
38 | |||
39 | - uses: leafo/gh-actions-lua@v8 | ||
40 | with: | ||
41 | luaVersion: ${{ matrix.luaVersion }} | ||
42 | |||
43 | - uses: leafo/gh-actions-luarocks@v4 | ||
44 | |||
45 | - name: dependencies | ||
46 | run: | | ||
47 | luarocks install busted | ||
48 | luarocks make | ||
49 | |||
50 | - name: test | ||
51 | run: | | ||
52 | busted --Xoutput "--color" | ||
53 | |||
54 | # - name: Report test coverage | ||
55 | # if: success() | ||
56 | # continue-on-error: true | ||
57 | # run: luacov-coveralls | ||
58 | # env: | ||
59 | # COVERALLS_REPO_TOKEN: ${{ github.token }} | ||
diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e6bfa23..0000000 --- a/.travis.yml +++ /dev/null | |||
@@ -1,34 +0,0 @@ | |||
1 | language: c | ||
2 | |||
3 | sudo: false | ||
4 | |||
5 | os: | ||
6 | - linux | ||
7 | - osx | ||
8 | |||
9 | env: | ||
10 | global: | ||
11 | - LUAROCKS=2.3.0 | ||
12 | matrix: | ||
13 | - LUA=lua5.1 | ||
14 | - LUA=lua5.2 | ||
15 | - LUA=lua5.3 | ||
16 | - LUA=luajit | ||
17 | - LUA=luajit2.0 | ||
18 | - LUA=luajit2.1 | ||
19 | |||
20 | before_install: | ||
21 | - source .travis/setenv_lua.sh | ||
22 | |||
23 | install: | ||
24 | - luarocks install busted | ||
25 | - luarocks make luasystem-scm-0.rockspec | ||
26 | |||
27 | script: busted spec | ||
28 | |||
29 | branches: | ||
30 | only: | ||
31 | - master | ||
32 | |||
33 | notifications: | ||
34 | email: false | ||
diff --git a/.travis/platform.sh b/.travis/platform.sh deleted file mode 100644 index 7259a7d..0000000 --- a/.travis/platform.sh +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
1 | if [ -z "${PLATFORM:-}" ]; then | ||
2 | PLATFORM=$TRAVIS_OS_NAME; | ||
3 | fi | ||
4 | |||
5 | if [ "$PLATFORM" == "osx" ]; then | ||
6 | PLATFORM="macosx"; | ||
7 | fi | ||
8 | |||
9 | if [ -z "$PLATFORM" ]; then | ||
10 | if [ "$(uname)" == "Linux" ]; then | ||
11 | PLATFORM="linux"; | ||
12 | else | ||
13 | PLATFORM="macosx"; | ||
14 | fi; | ||
15 | fi | ||
diff --git a/.travis/setenv_lua.sh b/.travis/setenv_lua.sh deleted file mode 100644 index 8d8c825..0000000 --- a/.travis/setenv_lua.sh +++ /dev/null | |||
@@ -1,3 +0,0 @@ | |||
1 | export PATH=${PATH}:$HOME/.lua:$HOME/.local/bin:${TRAVIS_BUILD_DIR}/install/luarocks/bin | ||
2 | bash .travis/setup_lua.sh | ||
3 | eval `$HOME/.lua/luarocks path` | ||
diff --git a/.travis/setup_lua.sh b/.travis/setup_lua.sh deleted file mode 100644 index 6dcc0c6..0000000 --- a/.travis/setup_lua.sh +++ /dev/null | |||
@@ -1,122 +0,0 @@ | |||
1 | #! /bin/bash | ||
2 | |||
3 | # A script for setting up environment for travis-ci testing. | ||
4 | # Sets up Lua and Luarocks. | ||
5 | # LUA must be "lua5.1", "lua5.2" or "luajit". | ||
6 | # luajit2.0 - master v2.0 | ||
7 | # luajit2.1 - master v2.1 | ||
8 | |||
9 | set -eufo pipefail | ||
10 | |||
11 | LUAJIT_VERSION="2.0.4" | ||
12 | LUAJIT_BASE="LuaJIT-$LUAJIT_VERSION" | ||
13 | |||
14 | source .travis/platform.sh | ||
15 | |||
16 | LUA_HOME_DIR=$TRAVIS_BUILD_DIR/install/lua | ||
17 | |||
18 | LR_HOME_DIR=$TRAVIS_BUILD_DIR/install/luarocks | ||
19 | |||
20 | mkdir $HOME/.lua | ||
21 | |||
22 | LUAJIT="no" | ||
23 | |||
24 | if [ "$PLATFORM" == "macosx" ]; then | ||
25 | if [ "$LUA" == "luajit" ]; then | ||
26 | LUAJIT="yes"; | ||
27 | fi | ||
28 | if [ "$LUA" == "luajit2.0" ]; then | ||
29 | LUAJIT="yes"; | ||
30 | fi | ||
31 | if [ "$LUA" == "luajit2.1" ]; then | ||
32 | LUAJIT="yes"; | ||
33 | fi; | ||
34 | elif [ "$(expr substr $LUA 1 6)" == "luajit" ]; then | ||
35 | LUAJIT="yes"; | ||
36 | fi | ||
37 | |||
38 | mkdir -p "$LUA_HOME_DIR" | ||
39 | |||
40 | if [ "$LUAJIT" == "yes" ]; then | ||
41 | |||
42 | if [ "$LUA" == "luajit" ]; then | ||
43 | curl --location https://github.com/LuaJIT/LuaJIT/archive/v$LUAJIT_VERSION.tar.gz | tar xz; | ||
44 | else | ||
45 | git clone https://github.com/LuaJIT/LuaJIT.git $LUAJIT_BASE; | ||
46 | fi | ||
47 | |||
48 | cd $LUAJIT_BASE | ||
49 | |||
50 | if [ "$LUA" == "luajit2.1" ]; then | ||
51 | git checkout v2.1; | ||
52 | # force the INSTALL_TNAME to be luajit | ||
53 | perl -i -pe 's/INSTALL_TNAME=.+/INSTALL_TNAME= luajit/' Makefile | ||
54 | fi | ||
55 | |||
56 | make && make install PREFIX="$LUA_HOME_DIR" | ||
57 | |||
58 | ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/luajit | ||
59 | ln -s $LUA_HOME_DIR/bin/luajit $HOME/.lua/lua; | ||
60 | |||
61 | else | ||
62 | |||
63 | if [ "$LUA" == "lua5.1" ]; then | ||
64 | curl http://www.lua.org/ftp/lua-5.1.5.tar.gz | tar xz | ||
65 | cd lua-5.1.5; | ||
66 | elif [ "$LUA" == "lua5.2" ]; then | ||
67 | curl http://www.lua.org/ftp/lua-5.2.4.tar.gz | tar xz | ||
68 | cd lua-5.2.4; | ||
69 | elif [ "$LUA" == "lua5.3" ]; then | ||
70 | curl http://www.lua.org/ftp/lua-5.3.2.tar.gz | tar xz | ||
71 | cd lua-5.3.2; | ||
72 | fi | ||
73 | |||
74 | # Build Lua without backwards compatibility for testing | ||
75 | perl -i -pe 's/-DLUA_COMPAT_(ALL|5_2)//' src/Makefile | ||
76 | make $PLATFORM | ||
77 | make INSTALL_TOP="$LUA_HOME_DIR" install; | ||
78 | |||
79 | ln -s $LUA_HOME_DIR/bin/lua $HOME/.lua/lua | ||
80 | ln -s $LUA_HOME_DIR/bin/luac $HOME/.lua/luac; | ||
81 | |||
82 | fi | ||
83 | |||
84 | cd $TRAVIS_BUILD_DIR | ||
85 | |||
86 | lua -v | ||
87 | |||
88 | LUAROCKS_BASE=luarocks-$LUAROCKS | ||
89 | |||
90 | curl --location http://luarocks.org/releases/$LUAROCKS_BASE.tar.gz | tar xz | ||
91 | |||
92 | cd $LUAROCKS_BASE | ||
93 | |||
94 | if [ "$LUA" == "luajit" ]; then | ||
95 | ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR"; | ||
96 | elif [ "$LUA" == "luajit2.0" ]; then | ||
97 | ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.0" --prefix="$LR_HOME_DIR"; | ||
98 | elif [ "$LUA" == "luajit2.1" ]; then | ||
99 | ./configure --lua-suffix=jit --with-lua-include="$LUA_HOME_DIR/include/luajit-2.1" --prefix="$LR_HOME_DIR"; | ||
100 | else | ||
101 | ./configure --with-lua="$LUA_HOME_DIR" --prefix="$LR_HOME_DIR" | ||
102 | fi | ||
103 | |||
104 | make build && make install | ||
105 | |||
106 | ln -s $LR_HOME_DIR/bin/luarocks $HOME/.lua/luarocks | ||
107 | |||
108 | cd $TRAVIS_BUILD_DIR | ||
109 | |||
110 | luarocks --version | ||
111 | |||
112 | rm -rf $LUAROCKS_BASE | ||
113 | |||
114 | if [ "$LUAJIT" == "yes" ]; then | ||
115 | rm -rf $LUAJIT_BASE; | ||
116 | elif [ "$LUA" == "lua5.1" ]; then | ||
117 | rm -rf lua-5.1.5; | ||
118 | elif [ "$LUA" == "lua5.2" ]; then | ||
119 | rm -rf lua-5.2.4; | ||
120 | elif [ "$LUA" == "lua5.3" ]; then | ||
121 | rm -rf lua-5.3.2; | ||
122 | fi | ||
diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000..596c846 --- /dev/null +++ b/appveyor.yml | |||
@@ -0,0 +1,29 @@ | |||
1 | # this fails for some reason. Disabled for now. | ||
2 | |||
3 | shallow_clone: true | ||
4 | |||
5 | environment: | ||
6 | matrix: | ||
7 | - LUA: "lua 5.1" | ||
8 | - LUA: "lua 5.2" | ||
9 | - LUA: "lua 5.3" | ||
10 | - LUA: "lua 5.4" | ||
11 | - LUA: "luajit 2.0" | ||
12 | - LUA: "luajit 2.0 --compat 5.2" | ||
13 | - LUA: "luajit 2.1" | ||
14 | - LUA: "luajit 2.1 --compat 5.2" | ||
15 | |||
16 | before_build: | ||
17 | - set PATH=C:\Python27\Scripts;%PATH% | ||
18 | - pip install --upgrade certifi | ||
19 | - FOR /F "tokens=* USEBACKQ" %%F IN (`python -c "import certifi;print(certifi.where())"`) DO ( SET SSL_CERT_FILE=%%F ) | ||
20 | - pip install hererocks | ||
21 | - hererocks here --%LUA% -rlatest | ||
22 | - call here\bin\activate | ||
23 | - luarocks install busted | ||
24 | |||
25 | build_script: | ||
26 | - luarocks make | ||
27 | |||
28 | test_script: | ||
29 | - busted | ||