Skip to content

Commit c3d931e

Browse files
committed
Update CI-related documentation
SciJava projects use GitHub Actions now, not Travis CI. This change also generalizes the information on CI/CD to its own page, distinct from each of the CI-platform-specific pages.
1 parent 85c63a5 commit c3d931e

File tree

8 files changed

+49
-56
lines changed

8 files changed

+49
-56
lines changed

_includes/layout/menu

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -111,17 +111,15 @@
111111
{% include menu/section title="Tools" %}
112112
<li><a href="/develop/github">GitHub</a></li>
113113
<li><a href="/develop/maven">Maven</a></li>
114+
<li><a href="/develop/ci">CI/CD</a></li>
115+
<li><a href="/develop/dotfiles">Dotfiles</a></li>
114116

115117
{% include menu/section title="IDEs" link="/develop/ides" %}
116118
<li><a href="/develop/eclipse">Eclipse</a></li>
117119
<li><a href="/develop/netbeans">NetBeans</a></li>
118120
<li><a href="/develop/intellij">IntelliJ IDEA</a></li>
119121
<li><a href="/develop/command-line">Command Line</a></li>
120122
{% include menu/section-end %}
121-
122-
<li><a href="/develop/github-actions">Github Actions</a></li>
123-
<li><a href="/develop/appveyor">AppVeyor</a></li>
124-
<li><a href="/develop/dotfiles">Dotfiles</a></li>
125123
{% include menu/section-end %} <!-- Extend/Development/Tools -->
126124

127125
{% include menu/section title="Guides" %}

_pages/contribute/distributing.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ Here is a quick summary of the most recommended options:
2121
- Make your project **[open source](/licensing/open-source)**.
2222
- Host it on **[GitHub](/develop/github)**.
2323
- Use **[Maven](/develop/maven)** to build and SemVer for **[versioning](/develop/versioning)**.
24-
- Use **[Travis](/develop/travis)** for continuous integration and artifact deployment to the [SciJava Maven repository](/develop/project-management#maven).
25-
- **Documentation.**
24+
- Use **[GitHub Actions](/develop/github-actions)** for continuous integration and artifact deployment to the [SciJava Maven repository](/develop/project-management#maven).
25+
- **Documentation:**
2626
- Create a page here on the **[ImageJ Wiki](/)**.
2727

2828
The tables below discuss additional options for these three aspects of distribution. Green items are recommended. Other options are given but not recommended for various reasons.
@@ -110,7 +110,7 @@ The first goal is to get your extension into the hands of users.
110110
<li> A <b><a href="/contribute/governance" title="Governance">Fiji maintainer</a></b> will help you to manage your project.</li>
111111
<li> You can lean on existing tools and documentation to maintain <b><a href="/develop/architecture#reproducible-builds" title="Reproducible builds">reproducibility</a></b> of your project.</li>
112112
<li> Your project will always be compatible with the latest Fiji distribution.</li>
113-
<li> <a href="/develop/travis" title="Travis">Travis</a> automatically tests your project for errors, deploying successful builds to the <a href="/develop/project-management#maven" title="SciJava Maven repository">SciJava Maven repository</a>.</li></ul>
113+
<li> <a href="/develop/github-actions" title="GitHub Actions">GitHub Actions</a> automatically tests your project for errors, deploying successful builds to the <a href="/develop/project-management#maven" title="SciJava Maven repository">SciJava Maven repository</a>.</li></ul>
114114
</td>
115115
<td style="background: #dfd; vertical-align: top">
116116
<ul><li> You must abide by the <b><a href="/contribute/fiji" title="Fiji contribution requirements">Fiji contribution requirements</a></b>.</li>

_pages/develop/appveyor.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: AppVeyor
33
section: Extend:Development:Tools
44
---
55

6-
[AppVeyor](https://ci.appveyor.com/) is a tool for [continuous integration](/develop/project-management#continuous-integration) on [Windows](/platforms/windows) platforms. It is very useful for automating builds, deployment and other tasks.
6+
[AppVeyor](https://ci.appveyor.com/) is a tool for [continuous integration](/develop/ci) on [Windows](/platforms/windows) platforms. It is very useful for automating builds, deployment and other tasks.
77

88

99
# Services

_pages/develop/ci.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
title: Continuous Integration
3+
section: Extend:Development:Tools
4+
---
5+
6+
{% include wikipedia title="Continuous integration" %} (CI) and *continuous delivery* (CD), collectively referred to as the *CI/CD pipeline*, together comprise a software engineering technique to perform automated tasks in response to code changes.
7+
8+
## Benefits
9+
10+
[SciJava](/libs/scijava) projects including [ImageJ2](/software/imagej2) and [Fiji](/software/fiji) use CI/CD in several ways, including:
11+
12+
- Building the code. A CI job deploys `SNAPSHOT` builds to the [SciJava Maven repository](https://maven.scijava.org/) in response to pushes to each code repository's mainline branch (e.g. `main` or `master`). So any downstream projects depending on a version of `LATEST` for a given component will match the last successful CI build—i.e., the latest code on the mainline branch.
13+
- Run associated {% include wikipedia title='Unit testing' text='unit tests' %}. CI is instrumental in early detection of new bugs introduced to the codebase.
14+
- Making [releases](/develop/releasing). A CI job deploys release builds to the appropriate Maven repository—typically either the SciJava Maven repository or [OSS Sonatype](https://s01.oss.sonatype.org/).
15+
- Keeping resources up-to-date.
16+
- Keeping web resources such as the [javadoc](/develop/source#javadocs) up to date.
17+
18+
Deploying your library to a [Maven](/develop/maven) repository makes it available for other developers. It is also a [contribution requirement for the Fiji project](/contribute/fiji).
19+
20+
## Platforms
21+
22+
There are several popular options for performing CI builds in the cloud, or on your own self-hosted infrastructure:
23+
24+
* [GitHub Actions](/develop/github-actions) - Used by most SciJava projects for builds, testing, and deployment.
25+
* [AppVeyor](/develop/appveyor) - Used by a few SciJava projects for builds on the Windows platform.
26+
* [Travis CI](/develop/travis-ci) - Used by SciJava projects from 2017 until 2021.
27+
* [Jenkins](/develop/jenkins) - Used by SciJava projects from 2010 until 2019.
28+
29+
Just to name a few that are or were used within the ImageJ community.

_pages/develop/github-actions.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Github Actions
33
section: Extend:Development:Tools
44
---
55

6-
[GitHub](/develop/github) supports workflow automation in the cloud through [Github Actions](https://github.com/features/actions). This feature is very useful for automating builds, deployment and other aspects of [continuous integration](/develop/project-management#continuous-integration).
6+
[GitHub](/develop/github) supports workflow automation in the cloud through [Github Actions](https://github.com/features/actions). This feature is very useful for automating builds, deployment and other aspects of [continuous integration](/develop/ci).
77

88
# Services
99

@@ -27,14 +27,14 @@ Deploying your library to a [Maven](/develop/maven) repository makes it availabl
2727
## Instructions
2828

2929
- In order to add Github CI support to a repository, the secrets are needed: A) for deploying to Maven repositories; and B) in the case of deploying to OSS Sonatype, for GPG signing of artifacts.
30-
- If the secrets have been added to your organization, and you have push access to the relevant repository on GitHub, you can use the [github-actionify.sh script](https://github.com/scijava/scijava-scripts/blob/master/github-actionify.sh) with the -f flag to perform the needed operations.
30+
- If the secrets have been added to your organization, and you have push access to the relevant repository on GitHub, you can use the [github-actionify.sh script](https://github.com/scijava/scijava-scripts/blob/master/github-actionify.sh) with the `-f` flag to perform the needed operations.
3131
- The github-actionify script will return '[ERROR] Dirty working copy' if you have uncommited changes. If you get this error, check the status of the repository with `git status` and then run `github-actionify -f` again.
3232
- If you need help, please ask [on the Image.sc Forum](https://forum.image.sc/) in the Development category, or in the [scijava-common channel](https://gitter.im/scijava/scijava-common) on Gitter.
3333

3434
## Configuration of JavaFX builds
3535

36-
- The workflows setup by the [github-actionify.sh script](https://github.com/scijava/scijava-scripts/blob/master/github-actionify.sh) do not include JavaFX.
37-
- To add support for JavaFX edit the files contained in the folder `.github/workflows/` to match those found in other SciJava projects that depend on JavaFX, e.g. [FilamentDetector](https://github.com/fiji/FilamentDetector).
36+
- The workflows configured by the [github-actionify.sh script](https://github.com/scijava/scijava-scripts/blob/master/github-actionify.sh) do not include JavaFX.
37+
- To add support for JavaFX, edit the files contained in the folder `.github/workflows/` to match those found in other SciJava projects that depend on JavaFX, e.g. [FilamentDetector](https://github.com/fiji/FilamentDetector).
3838

3939
## Testing things which cannot run headless
4040

@@ -62,4 +62,3 @@ If you amend and change those lines as shown below, also tests that require a di
6262
run: xvfb-run --auto-servernum .github/build.sh
6363

6464
Of course, you should do this only as a last resort, since the best unit tests should not require a display in the first place.
65-

_pages/develop/jenkins.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,10 @@
22
title: Jenkins
33
---
44

5-
{% include img src='logos/jenkins' align='right' width=150 caption='**Jenkins:** Serving the ImageJ community, 2010 - 2019!' %}
6-
7-
There was an ImageJ community Jenkins server: a continuous integration system which automatically checked the code for build and test errors. As of 2019, we have transitioned to [Travis CI](/develop/travis) and [AppVeyor](/develop/appveyor) for CI services.
5+
{% include notice icon="note" content="SciJava projects now use Github Actions for CI. See the [GitHub Actions](https://imagej.net/develop/github-actions) page for configuration instructions." %}
86

7+
{% include img src='logos/jenkins' align='right' width=150 caption='**Jenkins:** Serving the ImageJ community, 2010 - 2019!' %}
98

9+
There was an ImageJ community Jenkins server: a continuous integration system which automatically checked the code for build and test errors, but it is now retired.
10+
* From 2017 - 2019, ImageJ-related projects transitioned to [Travis CI](/develop/travis) and [AppVeyor](/develop/appveyor) for CI services.
11+
* As of 2021, ImageJ-related projects are mostly using [GitHub Actions](/develop/github-actions) for CI services.

_pages/develop/project-management.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Developers can benefit from the mirror by adding the following section to their
4444

4545
## Continuous integration
4646

47-
SciJava projects use [Github Actions](/develop/github-actions), a cloud-based workflow automation system that is part of Github and supports continuous integration (CI). Github Actions automatically check the code for build and test errors.
47+
SciJava projects use [Github Actions](/develop/github-actions), a cloud-based workflow automation system that is part of Github and supports [continuous integration](/develop/ci) (CI). Github Actions automatically check the code for build and test errors.
4848

4949
## Issue tracking
5050

_pages/develop/travis.md

Lines changed: 4 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,12 @@
11
---
2-
title: Travis
2+
title: Travis CI
33
section: Extend:Development:Tools
44
---
55

6-
{% include notice icon="note" content="[SciJava CI has migrated from Travis CI to Github Actions](https://forum.image.sc/t/scijava-ci-migration-from-travis-ci-to-github-actions/57573). See the [GitHub Actions](https://imagej.net/develop/github-actions) page for configuration instructions, including how to migrate existing projects from Travis CI." %}
6+
{% include notice icon="note" content="SciJava [CI](/develop/ci) has [migrated from Travis CI to Github Actions](https://forum.image.sc/t/scijava-ci-migration-from-travis-ci-to-github-actions/57573). See the [GitHub Actions](https://imagej.net/develop/github-actions) page for configuration instructions, including how to migrate existing projects from Travis CI." %}
77

88
{% include img src='logos/travis' align='right' width=150 caption='**Travis CI:** Build your code in the cloud!' %}
99

10-
[Travis CI](https://travis-ci.org/) is a tool for [continuous integration](/develop/project-management#continuous-integration). It has excellent integration with [GitHub](/develop/github), and is very useful for automating builds, deployment and other tasks.
11-
12-
# Services
13-
14-
[SciJava](/libs/scijava) projects use Travis in a variety of ways:
15-
16-
- Perform builds of SciJava projects. Travis deploys `SNAPSHOT` builds to the [SciJava Maven repository](https://maven.scijava.org/) in response to pushes to each code repository's `master` branch. So any downstream projects depending on a version of `LATEST` for a given component will match the last successful Travis build—i.e., the latest code on `master`.
17-
- Run each project's associated {% include wikipedia title='Unit testing' text='unit tests'%}. Travis is instrumental in early detection of new bugs introduced to the codebase.
18-
- Perform [releases](/develop/releasing) of [SciJava](/libs/scijava) projects. Travis deploys release builds to the appropriate Maven repository—typically either the SciJava Maven repository or [OSS Sonatype](https://oss.sonatype.org/).
19-
- Keep the [javadoc](/develop/source#javadocs) site updated.
20-
- Keep other web resources updated.
21-
22-
# Automatic Deployment of Maven Artifacts
23-
24-
Deploying your library to a [Maven](/develop/maven) repository makes it available for other developers. It is also a [contribution requirement for the Fiji project](/contribute/fiji).
25-
26-
## Requirements
27-
28-
- Host your [open-source](/licensing/open-source) project on [GitHub](/develop/github).
29-
- Log in to [Travis CI](https://travis-ci.com/auth) with your corresponding GitHub account and enable your repository.
30-
- Contact an ImageJ admin in [Gitter](/discuss/chat#gitter) or [the Image.sc Forum](http://forum.image.sc/) and request that they file a PR which adds Travis support to your repository.
31-
32-
## Instructions
33-
34-
In order to add Travis CI support to a repository, the SciJava credentials are needed: A) for deploying to Maven repositories; and B) in the case of deploying to OSS Sonatype, for GPG signing of artifacts. If you have a copy of these credentials, and admin access to the relevant repository on GitHub, you can use the [travisify.sh script](https://github.com/scijava/scijava-scripts/blob/master/travisify.sh) to perform the needed operations. This script requires the [travis command line client](https://github.com/travis-ci/travis.rb) to be installed, and you may need to run `travis login` to authenticate first. If you need help, please ask [on the Image.sc Forum](https://forum.image.sc/) in the Development category, or in the [scijava-common channel](https://gitter.im/scijava/scijava-common) on Gitter.
35-
36-
## Testing things which cannot run headless
37-
38-
If your tests require a display (i.e.: they do not pass when run [headless](/learn/headless)), you can use [Xvfb](/learn/headless#xvfb) as follows:
39-
40-
before_script:
41-
- "export DISPLAY=:99.0"
42-
- "sh -e /etc/init.d/xvfb start"
43-
- sleep 3 # give xvfb some time to start
44-
45-
Of course, you should do this only as a last resort, since the best unit tests should not require a display in the first place.
46-
10+
[Travis CI](https://travis-ci.com/) is a tool for [continuous integration](/develop/ci). It has excellent integration with [GitHub](/develop/github), and is very useful for automating builds, deployment and other tasks.
4711

12+
SciJava projects used Travis CI for builds, testing, and deployment from 2017 until 2021. The SciJava team no longer provides support for using Travis CI with your project, and recommends using [GitHub Actions](/develop/github-actions) instead.

0 commit comments

Comments
 (0)