-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
CI Setup
Core and starting point of everything is obviously the github repository. Check-in and creation of pull requests triggers a number of automatic actions in various connected external systems:
-
OBS (OpenSuSE build service)
- Development snapshot builds based on
master
branch - Debian (*.deb)
- Ubuntu (*.deb)
- OpenSuSE (*.rpm)
- Fedora (*.rpm)
- Development snapshot builds based on
-
Circle CI
- Development snapshot builds for
master
branch and pull requests - Windows 32bit/64bit (on push / pull request)
- Linux AppImage 64bit (on push / pull request)
- WASM (on push / pull request)
- MacOS Intel/Apple silicon (on schedule, due to build time limitations)
- Development snapshot builds for
-
GitHub CI
- Test suite runs for
master
branch and pull requests - Windows / MSYS2
- Linux / 18.04, 20.04
- MacOS / homebrew
- Test suite runs for
Travis (disabled currently due to travis-ci.org being closed)AppVeyor (removed due to build issues with MSYS2)
URL: https://app.circleci.com/pipelines/github/openscad/openscad
CircleCI runs snapshot builds but does not run tests.
Configured via .circleci/config.yml
this builds every commit and pull request for Windows and Linux. MacOS is using scheduled build due to limited available CPU time.
Artifacts are stored for 6 month on the CircleCI servers. This does not run the test suite.
Download Docker based build for Windows application using MXE.
The CircleCI build of the main OpenSCAD repo uses the mxe-{i686|x86_64}-deps
containers
- gcc 7.3.0
- using openscad-snapshot-build branch of the cloned MXE repo, currently with added
lib3mf
,opencsg-1.4.2
anddouble-conversion
.
The containers defined in the docker-openscad repo, which are pushed to docker hub
-
mxe-requirements
-> base Linux setup -
mxe-{i686|x86_64}-gcc
-> builds GCC, currently using plugins/gcc7 -
mxe-{i686|x86_64}-deps
-> builds all OpenSCAD dependencies -
mxe-{i686|x86_64}-openscad
-> builds OpenSCAD application
Docker based build for Linux/AppImage using base image ubuntu:16.04
.
The containers defined in the docker-openscad repo, which are pushed to docker hub
-
appimage-x86_64-base
-> base Linux setup + Qt5 updates from PPA + AppImage tools -
appimage-x86_64-openscad
-> builds OpenSCAD application
Builds can also be manually triggered by pushing to a branch named *-macos
.
The build is using prerequisites installed via Homebrew and building all dependencies using macosx-build-dependencies.sh
.
This build script doesn't know about package inter-dependencies. If we update core packages, we may need to trigger a clean rebuild of dependencies by also updating the MACOS_CACHE_VERSION
CircleCI environment variable. Usually this is done by increasing the sequence number in the variable.
https://github.com/openscad/openscad/actions
GitHub CI is building development binaries and running tests.
Configured via .github/workflows/
, and executes for every commit and pull request for Windows, Linux and macOS.
URL: https://github.com/flathub/org.openscad.OpenSCAD
This has only the release version, no nightly builds. Github Repository is owned by the flathub organization, build and deployment is automatic.
URL: https://snapcraft.io/openscad-nightly
This builds on snapcraft.io based on the snap/snapcraft.yaml
from master.
Static code analysis based on commits to the coverity_scan
branch. This branch is just manually tracking master
currently.
URL: https://travis-ci.org/openscad/openscad
Configured via .travis.yml
in the github repo. Builds all commits and pull requests.
- gcc 5.4.0
- additional repo with lib3mf from OBS
- gcc 7.4.0
- additional repo with lib3mf from OBS
- toolchain is Xcode-9.4.1
- build is using Homebrew
- additional repo with lib3mf from homebrew-tap
URL: https://ci.appveyor.com/project/kintel/openscad
Builds OpenSCAD on Windows via the MSYS2 environment and runs the test suite (currently lib3mf is disabled as there are no MSYS2 packages for lib3mf). Configured via appveyor.yml
.
The test results are uploaded as AppVeyor build artifacts, so on test failures the HTML can be downloaded and viewed locally.