• Stars
    star
    969
  • Rank 45,393 (Top 1.0 %)
  • Language
    PHP
  • License
    Other
  • Created about 15 years ago
  • Updated about 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Distributed continuous integration testing for JavaScript.

Build Status Tested with QUnit

TestSwarm - Distributed Continuous Integration for JavaScript

TestSwarm provides distributed continuous integration testing for JavaScript.

The main instance monitoring jQuery core and related projects runs at swarm.jquery.org.

Project Status

TestSwarm is used in projects of the jQuery Foundation, but it isn't under active development anymore. Although critical issues may be patched in the future, most open issues will remain unaddressed.

Within the jQuery Foundation, we're experimenting with alternative projects, to eventually shut down our own instance of TestSwarm:

We recommend reviewing those and other alternatives.

Quick start

Clone the repo, git clone --recursive git://github.com/jquery/testswarm.git.

Bug tracker

Found a bug? Please report it using our issue tracker!

Installation

Browser compatibility

  • Chrome 58+ (2017)
  • Edge 15+ (2017, both legacy MSEdge and Chromium-based)
  • Firefox 45+ (2016)
  • Internet Explorer 9+
  • Opera 36+ (2016)
  • Safari 9+ (2015)
  • Android 4.3+ (2013)
  • iOS Mobile Safari 7+ (2013)

Environmental compatibility

To run TestSwarm you will need a web server, a database server and PHP. At the moment TestSwarm supports the following, but other configurations may work as well.

  • Apache 2.0+, NGINX 1.10+
  • PHP 5.4+ (or PHP-FPM for NGINX)
  • MySQL 5.6+
  • cURL (for the cleanup action; see step 8)

Steps

  1. Create an empty MySQL database and create a user with read and write access to it.

  2. Copy config/sample-localSettings.php to config/localSettings.php
    Copy config/sample-localSettings.json to config/localSettings.json.
    Edit localSettings.json and replace the sample settings with your own.
    Refer to the Settings page for more information.

  3. For Apache:
    Copy config/sample-.htaccess to .htaccess.
    To run TestSwarm from a non-root directory, set web.contextpath in localSettings.json to the correct path from the web root and update RewriteBase in .htaccess. Verify that .htaccess is working properly by opening a page other than the HomePage (e.g. /testswarm/projects) in your browser.
    Required Apache configuration:

    • AllowOverride is set to All (or ensure FileInfo is included).
    • mod_rewrite installed and loaded.

    For NGINX:
    Copy config/sample-nginx.conf to /etc/nginx/sites-available.
    The file name should match your domain e.g. for swarm.example.org:
    cp config/sample-nginx.conf /etc/nginx/sites-available/swarm.example.org.conf
    Open this conf file in your editor and replace the "example" values with the correct values.
    Make sure your install is located at /var/www/testswarm (otherwise update the file to match the correct location).
    Now you need to link the sites-available config to the sites-enabled config:
    (replace the "swarm.example.org" with your own file name):
    ln -s /etc/nginx/sites-available/swarm.example.org.conf /etc/nginx/sites-enabled/swarm.example.org.conf
    Now make sure that php-fpm is running: /etc/init.d/php-fpm status
    if is not running start it: /etc/init.d/php-fpm start

  4. Copy config/sample-robots.txt to robots.txt
    Or, if TestSwarm is not in the root directory, add similar rules to your root robots.txt.

  5. Set storage.cacheDir to a writable directory that is not readable from the web. Either set it to a custom path outside the document root, or use the default cache directory (protected with .htaccess).
    Chmod it: chmod 777 cache.

  6. Install dependencies composer install --no-dev

  7. Install the TestSwarm database by running: php scripts/install.php

  8. Create an entry in your crontab for action=cleanup. This performs various cleaning duties such as making timed-out runs available again.
    * * * * * curl -s https://swarm.example.org/api.php?action=cleanup > /dev/null

  9. Create a project and submit jobs.

Get involved

You're welcome to use the GitHub issue tracker to start discussions.

Some of us are also on Gitter at jquery/dev.

Documentation

Copyright and license

See LICENSE.txt.

Versioning

TestSwarm uses the Semantic Versioning guidelines as much as possible.

Releases will be numbered in the following format:

<major>.<minor>.<patch>

The -alpha suffix is used to indicate unreleased versions in development.

For more information on SemVer, please visit https://semver.org/.

History

TestSwarm was originally created by John Resig as a basic tool to support unit testing of the jQuery JavaScript library. It later become a Mozilla Labs project, and has since moved again to become a jQuery Foundation project.

More Repositories

1

jquery

jQuery JavaScript Library
JavaScript
58,659
star
2

jquery-ui

The official jQuery user interface library.
JavaScript
11,211
star
3

esprima

ECMAScript parsing infrastructure for multipurpose analysis
TypeScript
6,928
star
4

sizzle

A sizzlin' hot selector engine.
JavaScript
6,276
star
5

jquery-mousewheel

A jQuery plugin that adds cross-browser mouse wheel support.
JavaScript
3,903
star
6

jquery-migrate

A development tool to help migrate away from APIs and features that have been or will be removed from jQuery core
JavaScript
1,981
star
7

jquery-color

jQuery plugin for color manipulation and animation support.
JavaScript
1,635
star
8

learn.jquery.com

jQuery Learning Center web site content
JavaScript
920
star
9

api.jquery.com

API documentation for jQuery Core
HTML
318
star
10

jquery-wp-content

WordPress themes and plugins for the jQuery sites
PHP
253
star
11

jquery-simulate

jQuery Event Unit Testing Helpers
JavaScript
171
star
12

themeroller.jquerymobile.com

ThemeRoller site for jQuery Mobile
CSS
140
star
13

jqueryui.com

jQuery UI web site content
HTML
130
star
14

jquery-dist

Distribution repo for jQuery Core releases
JavaScript
100
star
15

download.jqueryui.com

Download Builder for jQuery UI
JavaScript
85
star
16

jquery.com

jQuery web site content
HTML
80
star
17

api.jqueryui.com

API documentation for jQuery UI
HTML
69
star
18

api.jquerymobile.com

API documentation for jQuery Mobile
HTML
56
star
19

codeorigin.jquery.com

jQuery CDN
JavaScript
55
star
20

jquerymobile.com

jQuery Mobile web site content
HTML
54
star
21

jquery.org

jQuery Foundation web site content
HTML
50
star
22

gsoc

Home for the jQuery Foundations ideas list for Google Summer of Code 2015
41
star
23

grunt-jquery-content

XSLT
38
star
24

eslint-config-jquery

jQuery's eslint config, enforcing the jQuery styleguide
JavaScript
32
star
25

meetings.jquery.org

Calendar and minutes of public jQuery team meetings
JavaScript
27
star
26

testswarm-browserstack

Integration layer between TestSwarm and BrowserStack
JavaScript
26
star
27

typesense-minibar

Fast 2kB autocomplete search bar. Alternative to Algolia DocSearch, InstantSearch, autocomplete-js, and typesense-js.
JavaScript
26
star
28

contribute.jquery.org

Developer documentation common to jQuery projects
HTML
25
star
29

jquery-release

Release automation script for jQuery projects
JavaScript
24
star
30

demos.jquerymobile.com

jQuery Mobile demo site
HTML
21
star
31

2012-dev-summit

Information regarding the 2012 Developer Summit in DC
15
star
32

jquery-license

jQuery Foundation License Verification
JavaScript
12
star
33

2015-developer-summit

a sandbox site for making mistakes
HTML
10
star
34

globalizejs.com

Globalize web site content
JavaScript
10
star
35

brand.jquery.org

Information on jQuery's branding
HTML
8
star
36

events.jquery.org

jQuery Events & Conferences web site content
HTML
8
star
37

irc.jquery.org

jQuery Foundation IRC channels and logs site content
HTML
8
star
38

node-amd-builder

Node.js service to build bundles from amd projects in a git repository
JavaScript
7
star
39

jquery.github.io

HTML
7
star
40

infrastructure-puppet

Puppet configuration for jQuery Infrastructure servers.
Puppet
5
star
41

jquery-compat-dist

Distribution repo for jQuery Core Compat releases
JavaScript
5
star
42

ci-management

Shell
5
star
43

jquery-ui-themeroller

jQuery UI ThemeRoller
JavaScript
3
star
44

content

Content Team
3
star
45

blog.jquery.com-theme

Themes for blogs during transition period to jquery-wp-content.
CSS
2
star
46

node-packager

Build a package for your library or application on the fly on Node.js
JavaScript
2
star