Skip to content
Zarfala edited this page May 20, 2023 · 31 revisions

Overview

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)
  • 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)
  • GitHub CI
    • Test suite runs for master branch and pull requests
    • Windows / MSYS2
    • Linux / 18.04, 20.04
    • MacOS / homebrew
  • Travis (disabled currently due to travis-ci.org being closed)
  • AppVeyor (removed due to build issues with MSYS2)

CircleCI CircleCI (master)

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.

Windows

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 and double-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

Linux

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

MacOS

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.

GitHub CI

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.

FlatPak

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.

Snap Snap Status

URL: https://snapcraft.io/openscad-nightly

This builds on snapcraft.io based on the snap/snapcraft.yaml from master.

Coverity Scan Coverity Scan

Static code analysis based on commits to the coverity_scan branch. This branch is just manually tracking master currently.

Old CI Builds

Travis

URL: https://travis-ci.org/openscad/openscad

Configured via .travis.yml in the github repo. Builds all commits and pull requests.

Ubuntu 16.04 LTS (xenial)

  • gcc 5.4.0
  • additional repo with lib3mf from OBS

Ubuntu 18.04 LTS (bionic)

  • gcc 7.4.0
  • additional repo with lib3mf from OBS

MacOS 10.13.3 (High Sierra)

  • toolchain is Xcode-9.4.1
  • build is using Homebrew
  • additional repo with lib3mf from homebrew-tap

AppVeyor AppVeyor (master)

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.

Clone this wiki locally