All Projects → thefederationinfo → Federation Tests

thefederationinfo / Federation Tests

WE MOVED TO FENEAS

Programming Languages

shell
77523 projects

Projects that are alternatives of or similar to Federation Tests

Chimp
Tooling that helps you do quality, faster.
Stars: ✭ 783 (+7730%)
Mutual labels:  federation, continuous-integration
Haiku
🚀 Instant Heroku deploys from GitHub branches
Stars: ✭ 17 (+70%)
Mutual labels:  continuous-integration
Modern Cpp Template
A template for modern C++ projects using CMake, Clang-Format, CI, unit testing and more, with support for downstream inclusion.
Stars: ✭ 690 (+6800%)
Mutual labels:  continuous-integration
Toast
Containerize your development and continuous integration environments. 🥂
Stars: ✭ 748 (+7380%)
Mutual labels:  continuous-integration
Jose Jwt
Ultimate Javascript Object Signing and Encryption (JOSE) and JSON Web Token (JWT) Implementation for .NET and .NET Core
Stars: ✭ 692 (+6820%)
Mutual labels:  federation
Androidsdk
🐳 Full-fledged Android SDK Docker Image
Stars: ✭ 776 (+7660%)
Mutual labels:  continuous-integration
Binci
🐳 Containerize your development workflow.
Stars: ✭ 671 (+6610%)
Mutual labels:  continuous-integration
Lightning Sites
☁️ Lightning deployment for your ~/Sites folders
Stars: ✭ 8 (-20%)
Mutual labels:  continuous-integration
Cachegithubci
InterSystems Caché and GitHub Continous Integration
Stars: ✭ 6 (-40%)
Mutual labels:  continuous-integration
Gocd
Main repository for GoCD - Continuous Delivery server
Stars: ✭ 6,314 (+63040%)
Mutual labels:  continuous-integration
Mercurius
Implement GraphQL servers and gateways with Fastify
Stars: ✭ 704 (+6940%)
Mutual labels:  federation
Jenkins Build Monitor Plugin
Jenkins CI Build Monitor Plugin
Stars: ✭ 695 (+6850%)
Mutual labels:  continuous-integration
Abstruse
Abstruse is a free and open-source CI/CD platform that tests your models and code.
Stars: ✭ 704 (+6940%)
Mutual labels:  continuous-integration
Ansible Role Jenkins
Ansible Role - Jenkins CI
Stars: ✭ 689 (+6790%)
Mutual labels:  continuous-integration
Xctoken
On-Demand JWT Token generation for AppStore Connect API from CI Servers
Stars: ✭ 22 (+120%)
Mutual labels:  continuous-integration
old vespene
DISCONTINUED: a frozen fork will exist forever at mpdehaan/vespene
Stars: ✭ 672 (+6620%)
Mutual labels:  continuous-integration
Light Novel Library wenku8 android
[CASUALLY MAINTAINED] 轻小说文库 (Wenku8.com) 安卓版第三方公益App,始于2014年的Material Design风格、无广告、不盈利、Google Play上安装包最小的轻小说阅读器(light novel reader)。目前除了网站的API以外,还添加了我自己架的Cloudflare Worker 中继节点用来突破网站API的限制 wenku8-relay.mewx.org.
Stars: ✭ 772 (+7620%)
Mutual labels:  continuous-integration
Kilo
Kilo is a multi-cloud network overlay built on WireGuard and designed for Kubernetes (k8s + wg = kg)
Stars: ✭ 845 (+8350%)
Mutual labels:  federation
Builds Tab
Web extension that adds builds tab to Github
Stars: ✭ 24 (+140%)
Mutual labels:  continuous-integration
Agola
Agola: CI/CD Redefined
Stars: ✭ 783 (+7730%)
Mutual labels:  continuous-integration

Federation Tests

This repository is about automating federation tests in the network itself!

Projects

Following projects are using the testsuite:

Add your project

Clone this repository and create a new directory:

git clone https://github.com/thefederationinfo/federation-tests.git
cd federation-tests && mkdir <project-name>

In this folder you have to put everything which is required for building an automated docker image. Starting with a Dockerfile and a start-up script e.g. start.sh

The start-up script is required so that we can do some configuration magic at boot time.

Following environment variables will be available while tests are running:

$DATABASE (on every run)
$PORT     (on every run)
$PRREPO   (only on pull_requests from a user)
$PRSHA    (only on pull_requests from a user)

This information we can use in our start-up script mentioned above.
For example if PRREPO and PRSHA is set we probably want to checkout the source code of the pull request first.

Checkout for reference the start-up script of the ganggo image:

#!/bin/bash

repo=$GOPATH/src/github.com/ganggo/ganggo
if [ ! -z ${PRSHA} ]; then
  if [ "$(basename $PRREPO)" == "ganggo.git" ]; then
    cd $repo && git stash \
      && git remote add custom $PRREPO \
      && git fetch custom \
      && git checkout $PRSHA \
      && git log -1 || {
        echo "Cannot find $PRREPO $PRSHA"
        exit 1
      }
  fi
  if [ "$(basename $PRREPO)" == "federation.git" ]; then
    wd=$repo/vendor/github.com/ganggo/federation
    rm -r $wd && git clone $PRREPO $wd \
      && cd $wd \
      && git checkout $PRSHA \
      && git log -1 || {
        echo "Cannot checkout $PRREPO $PRSHA"
        exit 1
      }
  fi
fi

sed -i "s/NAME/$DATABASE/g" $repo/conf/app.conf \
  && sed -i "s/PORT/$PORT/g" $repo/conf/app.conf \
  && revel run github.com/ganggo/ganggo

In the above example support for github.com/ganggo/federation and github.com/ganggo/ganggo was added.
If a user triggers a build with the following parameters:

PRREPO=https://github.com/someuser/federation.git
PRSHA=1234567890

The testsuite will replace the offical with the user repository and checkout the mentioned commit.

If you did all that \m/ Create a pull-request with your changes in this repository and as soon as we merged it.
You can add your repository here!

Now the testing can begin :)

Development

Dependencies

In case you want to test specific parts locally you need postgresql, docker and redis. Make sure they are up and running:

sudo systemctl start redis.service postgresql.service docker.service

Then you can install the testsuite dependencies:

  • github.com/stedolan/jq
  • github.com/sstephenson/bats

Simply run the install script or do it manually:

bash scripts/install.sh

Run tests

After installing all required dependencies you can start single tests via:

# bats <test-file> e.g.:
bats ganggo-ganggo.tx-rx.bats

Or run all tests with a single command:

bats .

Run images

Sometimes doing tests manually helps developing a new feature. You can run single docker images by using the helper script. Setup the environment by executing following command once:

BATS_TEST_FILENAME=local . ./test_helper.bash

Then starting can be done by executing:

# start_app <database-name> <port> "testing_<project>"$(latest_tag <project>)
# for starting a ganggo image that could look like following:
start_app g1 9000 "testing_ganggo"$(latest_tag "ganggo")
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].