Switch from Travis to Github Actions

This commit is contained in:
Badlop
2021-06-17 13:22:28 +02:00
parent 45151eddab
commit 1f02d36302
5 changed files with 78 additions and 27 deletions

44
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,44 @@
name: CI
on: [push, pull_request]
jobs:
tests:
name: Tests
strategy:
fail-fast: false
matrix:
otp: ['19.3', '21.3', 24]
runs-on: ubuntu-20.04
container:
image: erlang:${{ matrix.otp }}
steps:
- uses: actions/checkout@v2
- name: Cache rebar3
uses: actions/cache@v2
with:
path: |
~/.cache/rebar3/
key: ${{matrix.otp}}-${{hashFiles('rebar.config')}}
- run: rebar3 compile
- run: rebar3 xref
- run: rebar3 dialyzer
- run: rebar3 eunit -v
- name: Send to Coveralls
if: matrix.otp == 24
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
rebar3 as test coveralls send
curl -v -k https://coveralls.io/webhook \
--header "Content-Type: application/json" \
--data '{"repo_name":"$GITHUB_REPOSITORY",
"repo_token":"$GITHUB_TOKEN",
"payload":{"build_num":$GITHUB_RUN_ID,
"status":"done"}}'

View File

@@ -1,23 +0,0 @@
language: erlang
os: linux
dist: xenial
before_install:
- pip install --user cpp-coveralls coveralls-merge
install:
- rebar get-deps
script: rebar compile && rebar skip_deps=true eunit
after_success:
- cpp-coveralls --exclude lib --exclude tests --gcov-options '\-lp' --dump c.json
- coveralls-merge c.json erlang.json
otp_release:
- R16B03-1
- 17.3
- 19.3
- 23.0

View File

@@ -1,11 +1,13 @@
# Erlang wrapper for SQLite3 # Erlang wrapper for SQLite3
[![CI](https://github.com/badlop/erlang-sqlite3/actions/workflows/ci.yml/badge.svg)](https://github.com/badlop/erlang-sqlite3/actions/workflows/ci.yml)
[![Coverage Status](https://coveralls.io/repos/processone/erlang-sqlite3/badge.svg?branch=master&service=github)](https://coveralls.io/github/processone/erlang-sqlite3?branch=master)
[![Hex version](https://img.shields.io/hexpm/v/sqlite3.svg "Hex version")](https://hex.pm/packages/sqlite3)
This library allows you to work with SQLite3 databases from Erlang. This library allows you to work with SQLite3 databases from Erlang.
It is compatible with Windows and Linux, and should probably work on other OSes as well. It is compatible with Windows and Linux, and should probably work on other OSes as well.
[![Build Status](https://travis-ci.org/alexeyr/erlang-sqlite3.svg?branch=master)](https://travis-ci.org/alexeyr/erlang-sqlite3)
See also [esqlite](https://github.com/mmzeeman/esqlite) for an alternative library. See also [esqlite](https://github.com/mmzeeman/esqlite) for an alternative library.
## Requirements ## Requirements

View File

@@ -9,3 +9,10 @@
{".*win32.*", "DRV_LDFLAGS", "$DRV_LDFLAGS sqlite3.lib"}]}. {".*win32.*", "DRV_LDFLAGS", "$DRV_LDFLAGS sqlite3.lib"}]}.
{cover_enabled, true}. {cover_enabled, true}.
{eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}. {eunit_opts, [verbose, {report,{eunit_surefire,[{dir,"."}]}}]}.
{cover_export_enabled, true}.
{coveralls_coverdata , "_build/test/cover/eunit.coverdata"}.
{coveralls_service_name , "github"}.
{xref_checks, [undefined_function_calls, undefined_functions, deprecated_function_calls, deprecated_functions]}.
{profiles, [{test, [{erl_opts, [{src_dirs, ["src", "test"]}]}]}]}.

View File

@@ -29,7 +29,6 @@ IsRebar3 = case application:get_key(rebar, vsn) of
lists:keymember(mix, 1, application:loaded_applications()) lists:keymember(mix, 1, application:loaded_applications())
end, end,
JobId = case os:getenv("TRAVIS_JOB_ID") of false -> ""; V -> V end,
ModCfg0 = fun(F, Cfg, [Key|Tail], Op, Default) -> ModCfg0 = fun(F, Cfg, [Key|Tail], Op, Default) ->
{OldVal,PartCfg} = case lists:keytake(Key, 1, Cfg) of {OldVal,PartCfg} = case lists:keytake(Key, 1, Cfg) of
@@ -93,6 +92,23 @@ GlobalDepsFilter = fun(Deps) ->
end, DepNames) end, DepNames)
end, end,
GithubConfig = case {os:getenv("GITHUB_ACTIONS"), os:getenv("GITHUB_TOKEN")} of
{"true", Token} when is_list(Token) ->
CONFIG1 = [{coveralls_repo_token, Token},
{coveralls_service_job_id, os:getenv("GITHUB_RUN_ID")},
{coveralls_commit_sha, os:getenv("GITHUB_SHA")},
{coveralls_service_number, os:getenv("GITHUB_RUN_NUMBER")}],
case os:getenv("GITHUB_EVENT_NAME") =:= "pull_request"
andalso string:tokens(os:getenv("GITHUB_REF"), "/") of
[_, "pull", PRNO, _] ->
[{coveralls_service_pull_request, PRNO} | CONFIG1];
_ ->
CONFIG1
end;
_ ->
[]
end,
Rules = [ Rules = [
{[deps], IsRebar3, {[deps], IsRebar3,
Rebar3DepsFilter, []}, Rebar3DepsFilter, []},
@@ -103,12 +119,17 @@ Rules = [
{compile, {pc, compile}}, {compile, {pc, compile}},
{clean, {pc, clean}} {clean, {pc, clean}}
]}]), []}, ]}]), []},
{[plugins], IsRebar3 and (os:getenv("GITHUB_ACTIONS") == "true"),
AppendList([{coveralls, {git,
"https://github.com/RoadRunnr/coveralls-erl.git",
{branch, "feature/git-info"}}} ]), []},
{[deps], os:getenv("USE_GLOBAL_DEPS") /= false, {[deps], os:getenv("USE_GLOBAL_DEPS") /= false,
GlobalDepsFilter, []} GlobalDepsFilter, []}
], ],
Config = FilterConfig(FilterConfig, CONFIG, Rules), Config = FilterConfig(FilterConfig, CONFIG, Rules)
++ GithubConfig,
%io:format("Rules:~n~p~n~nCONFIG:~n~p~n~nConfig:~n~p~n", [Rules, CONFIG, Config]), %io:format("Rules:~n~p~n~nCONFIG:~n~p~n~nConfig:~n~p~n", [Rules, CONFIG, Config]),