migrate to github Actions from travis

This commit is contained in:
Dave Horton
2020-12-14 09:36:37 -05:00
parent 2b94a344b1
commit 30161b1da0
9 changed files with 30 additions and 38 deletions

View File

@@ -1,10 +0,0 @@
sudo: required
language: node_js
node_js:
- "lts/*"
services:
- docker
- mysql
script:
- npm test

View File

@@ -1,4 +1,4 @@
# sbc-outbound [![Build Status](https://secure.travis-ci.org/jambonz/sbc-outbound.png)](http://travis-ci.org/jambonz/sbc-outbound) # sbc-outbound ![Build Status](https://github.com/jambonz/sbc-outbound/workflows/CI/badge.svg)
This application provides a part of the SBC (Session Border Controller) functionality of jambonz. It handles outbound INVITE requests from the cpaas application server that is going to carrier sip trunks or registered sip users/devices, including webrtc applications. This application provides a part of the SBC (Session Border Controller) functionality of jambonz. It handles outbound INVITE requests from the cpaas application server that is going to carrier sip trunks or registered sip users/devices, including webrtc applications.

View File

@@ -1,10 +1,10 @@
const test = require('blue-tape'); const test = require('blue-tape');
//const test = require('tape').test ; //const test = require('tape').test ;
const exec = require('child_process').exec ; const exec = require('child_process').exec ;
const pwd = process.env.TRAVIS ? '' : '-p$MYSQL_ROOT_PASSWORD'; const pwd = '-p$MYSQL_ROOT_PASSWORD';
test('creating jambones_test database', (t) => { test('creating jambones_test database', (t) => {
exec(`mysql -h localhost -u root ${pwd} < ${__dirname}/db/create_test_db.sql`, (err, stdout, stderr) => { exec(`mysql -h 127.0.0.1 -u root --protocol=tcp < ${__dirname}/db/create_test_db.sql`, (err, stdout, stderr) => {
if (err) return t.end(err); if (err) return t.end(err);
t.pass('database successfully created'); t.pass('database successfully created');
t.end(); t.end();
@@ -12,7 +12,7 @@ test('creating jambones_test database', (t) => {
}); });
test('creating schema', (t) => { test('creating schema', (t) => {
exec(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`, (err, stdout, stderr) => { exec(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`, (err, stdout, stderr) => {
if (err) return t.end(err); if (err) return t.end(err);
t.pass('schema successfully created'); t.pass('schema successfully created');
t.end(); t.end();
@@ -20,7 +20,7 @@ test('creating schema', (t) => {
}); });
test('populating test case data', (t) => { test('populating test case data', (t) => {
exec(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data.sql`, (err, stdout, stderr) => { exec(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data.sql`, (err, stdout, stderr) => {
if (err) return t.end(err); if (err) return t.end(err);
t.pass('test data set created'); t.pass('test data set created');
t.end(); t.end();

View File

@@ -1,3 +1,3 @@
create database jambones_test; create database jambones_test;
create user jambones_test@localhost IDENTIFIED WITH mysql_native_password by 'jambones_test'; create user jambones_test@'%' IDENTIFIED WITH mysql_native_password by 'jambones_test';
grant all on jambones_test.* to jambones_test@localhost; grant all on jambones_test.* to jambones_test@'%';

View File

@@ -8,6 +8,16 @@ networks:
- subnet: 172.39.0.0/16 - subnet: 172.39.0.0/16
services: services:
mysql:
image: mysql:5.7
ports:
- "3306:3306"
environment:
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
networks:
sbc-outbound:
ipv4_address: 172.39.0.2
sbc: sbc:
image: drachtio/drachtio-server:latest image: drachtio/drachtio-server:latest
command: drachtio --contact "sip:*;transport=udp" --loglevel debug --sofia-loglevel 9 command: drachtio --contact "sip:*;transport=udp" --loglevel debug --sofia-loglevel 9

View File

@@ -4,8 +4,12 @@ const exec = require('child_process').exec ;
test('starting docker network..', (t) => { test('starting docker network..', (t) => {
exec(`docker-compose -f ${__dirname}/docker-compose-testbed.yaml up -d`, (err, stdout, stderr) => { exec(`docker-compose -f ${__dirname}/docker-compose-testbed.yaml up -d`, (err, stdout, stderr) => {
t.pass('docker started');
t.end(err); // wait 5 secs for mysql to be ready for connections
setTimeout(() => {
t.pass('docker started');
t.end(err);
}, 10000);
}); });
}); });

View File

@@ -1,5 +1,4 @@
require('./docker_start'); require('./docker_start');
require('./create-test-db'); require('./create-test-db');
require('./sip-tests'); require('./sip-tests');
require('./remove-test-db');
require('./docker_stop'); require('./docker_stop');

View File

@@ -1,11 +0,0 @@
const test = require('blue-tape') ;
const exec = require('child_process').exec ;
const pwd = process.env.TRAVIS ? '' : '-p$MYSQL_ROOT_PASSWORD';
test('dropping jambones_test database', (t) => {
exec(`mysql -h localhost -u root ${pwd} < ${__dirname}/db/remove_test_db.sql`, (err, stdout, stderr) => {
if (err) return t.end(err);
t.pass('database successfully dropped');
t.end();
});
});

View File

@@ -1,8 +1,8 @@
const test = require('blue-tape'); const test = require('blue-tape');
const { output, sippUac } = require('./sipp')('test_sbc-outbound'); const { output, sippUac } = require('./sipp')('test_sbc-outbound');
const {execSync} = require('child_process'); const {execSync} = require('child_process');
const pwd = process.env.TRAVIS ? '' : '-p$MYSQL_ROOT_PASSWORD';
const debug = require('debug')('jambonz:sbc-outbound'); const debug = require('debug')('jambonz:sbc-outbound');
const pwd = '-p$MYSQL_ROOT_PASSWORD';
process.on('unhandledRejection', (reason, p) => { process.on('unhandledRejection', (reason, p) => {
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason); console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
@@ -31,24 +31,24 @@ test('sbc-outbound tests', async(t) => {
t.pass('successfully completed outbound call to configured sip trunk'); t.pass('successfully completed outbound call to configured sip trunk');
// re-rack test data // re-rack test data
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`); execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data2.sql`); execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data2.sql`);
/* call to PSTN with lcr configured */ /* call to PSTN with lcr configured */
await sippUac('uac-pcap-carrier-success.xml'); await sippUac('uac-pcap-carrier-success.xml');
t.pass('successfully completed outbound lcr carrier with crankback after failure'); t.pass('successfully completed outbound lcr carrier with crankback after failure');
// re-rack test data // re-rack test data
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`); execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data3.sql`); execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data3.sql`);
/* call to PSTN where caller hangs up during outdial */ /* call to PSTN where caller hangs up during outdial */
await sippUac('uac-cancel.xml'); await sippUac('uac-cancel.xml');
t.pass('successfully handled caller hangup during lcr outdial'); t.pass('successfully handled caller hangup during lcr outdial');
// re-rack test data // re-rack test data
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/jambones-sql.sql`); execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/jambones-sql.sql`);
execSync(`mysql -h localhost -u root ${pwd} -D jambones_test < ${__dirname}/db/populate-test-data4.sql`); execSync(`mysql -h 127.0.0.1 -u root --protocol=tcp -D jambones_test < ${__dirname}/db/populate-test-data4.sql`);
/* reinvite after call established */ /* reinvite after call established */
await sippUac('uac-pcap-carrier-success-reinvite.xml'); await sippUac('uac-pcap-carrier-success-reinvite.xml');