Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[gitlab-ci] gitlab CI on docker initial commit
- Loading branch information
1 parent
7f772ba
commit 26dfd72
Showing
2 changed files
with
174 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
# This file is a template, and might need editing before it works on your project. | ||
# To contribute improvements to CI/CD templates, please follow the Development guide at: | ||
# https://docs.gitlab.com/ee/development/cicd/templates.html | ||
# This specific template is located at: | ||
# https://gitlab.com/gitlab-org/gitlab/-/blob/master/lib/gitlab/ci/templates/Getting-Started.gitlab-ci.yml | ||
|
||
# This is a sample GitLab CI/CD configuration file that should run without any modifications. | ||
# It demonstrates a basic 3 stage CI/CD pipeline. Instead of real tests or scripts, | ||
# it uses echo commands to simulate the pipeline execution. | ||
# | ||
# A pipeline is composed of independent jobs that run scripts, grouped into stages. | ||
# Stages run in sequential order, but jobs within stages run in parallel. | ||
# | ||
# For more information, see: https://docs.gitlab.com/ee/ci/yaml/README.html#stages | ||
|
||
This comment has been minimized.
Sorry, something went wrong.
This comment has been minimized.
Sorry, something went wrong. |
||
# this image is on dockerhub. Dockerfile is here: https://gitlab.com/PrzemoF/FreeCAD/-/blob/gitlab-v1/ci/Dockerfile | ||
image: freecadci/runner | ||
|
||
stages: # List of stages for jobs, and their order of execution | ||
- build | ||
- test | ||
|
||
before_script: | ||
- apt-get update -yqq | ||
# CCache Config | ||
- mkdir -p ccache | ||
- export CCACHE_BASEDIR=${PWD} | ||
- export CCACHE_DIR=${PWD}/ccache | ||
|
||
cache: | ||
paths: | ||
- ccache/ | ||
|
||
build-job: # This job runs in the build stage, which runs first. | ||
stage: build | ||
|
||
script: | ||
- echo "Compiling the code..." | ||
- mkdir build | ||
- cd build | ||
- ccache cmake ../ | ||
- ccache cmake --build ./ -j$(nproc) | ||
- echo "Compile complete." | ||
|
||
artifacts: | ||
paths: | ||
- build/ | ||
|
||
test-job: # This job runs in the test stage. | ||
stage: test # It only starts when the job in the build stage completes successfully. | ||
script: | ||
- echo "Running unit tests... " | ||
- cd build/bin/ | ||
# Testing currently doesn't work due to problems with libraries ot being visible by the binary. | ||
- ./FreeCADCmd -t 0 | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
FROM ubuntu:20.04 | ||
MAINTAINER Przemo Firszt | ||
# This is the docker image definition used to build FreeCAD. It's currently accessible on: | ||
# https://hub.docker.com/repository/docker/freecadci/runner | ||
# on under name freecadci/runner when using docker | ||
|
||
ENV DEBIAN_FRONTEND=noninteractive | ||
|
||
RUN apt-get update -y | ||
RUN apt-get update -y && apt-get install -y gnupg2 | ||
RUN echo "deb http://ppa.launchpad.net/freecad-maintainers/freecad-daily/ubuntu focal main" >> /etc/apt/sources.list.d/freecad-daily.list | ||
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 83193AA3B52FF6FCF10A1BBF005EAE8119BB5BCA | ||
RUN apt-get update -y | ||
|
||
# those 3 are for debugging purposes only. Not required to build FreeCAD | ||
RUN apt-get install -y \ | ||
vim \ | ||
nano \ | ||
bash | ||
|
||
# Main set of FreeCAD dependencies. To be verified. | ||
RUN apt-get install -y \ | ||
ccache \ | ||
cmake \ | ||
debhelper \ | ||
dh-exec \ | ||
dh-python \ | ||
doxygen \ | ||
git \ | ||
graphviz \ | ||
libboost-date-time-dev \ | ||
libboost-dev \ | ||
libboost-filesystem-dev \ | ||
libboost-filesystem1.71-dev \ | ||
libboost-graph-dev \ | ||
libboost-iostreams-dev \ | ||
libboost-program-options-dev \ | ||
libboost-program-options1.71-dev \ | ||
libboost-python1.71-dev \ | ||
libboost-regex-dev \ | ||
libboost-regex1.71-dev \ | ||
libboost-serialization-dev \ | ||
libboost-system1.71-dev \ | ||
libboost-thread-dev \ | ||
libboost-thread1.71-dev \ | ||
libboost1.71-dev \ | ||
libcoin-dev \ | ||
libdouble-conversion-dev \ | ||
libeigen3-dev \ | ||
libglew-dev \ | ||
libgts-bin \ | ||
libgts-dev \ | ||
libkdtree++-dev \ | ||
liblz4-dev \ | ||
libmedc-dev \ | ||
libmetis-dev \ | ||
libnglib-dev \ | ||
libocct-data-exchange-dev \ | ||
libocct-ocaf-dev \ | ||
libocct-visualization-dev \ | ||
libopencv-dev \ | ||
libproj-dev \ | ||
libpyside2-dev \ | ||
libqt5opengl5 \ | ||
libqt5opengl5-dev \ | ||
libqt5svg5-dev \ | ||
libqt5webkit5 \ | ||
libqt5webkit5-dev \ | ||
libqt5x11extras5-dev \ | ||
libqt5xmlpatterns5-dev \ | ||
libshiboken2-dev \ | ||
libspnav-dev \ | ||
libvtk7-dev \ | ||
libvtk7.1p \ | ||
libvtk7.1p-qt \ | ||
libx11-dev \ | ||
libxerces-c-dev \ | ||
libzipios++-dev \ | ||
lsb-release \ | ||
nastran \ | ||
netgen \ | ||
netgen-headers \ | ||
occt-draw \ | ||
pybind11-dev \ | ||
pyqt5-dev-tools \ | ||
pyside2-tools \ | ||
python3-dev \ | ||
python3-matplotlib \ | ||
python3-pivy \ | ||
python3-ply \ | ||
python3-pyqt5 \ | ||
python3-pyside2.* \ | ||
python3-pyside2.qtcore \ | ||
python3-pyside2.qtgui \ | ||
python3-pyside2.qtsvg \ | ||
python3-pyside2.qtuitools \ | ||
python3-pyside2.qtwidgets \ | ||
python3-pyside2.qtxml \ | ||
python3-requests \ | ||
python3-yaml \ | ||
qt5-default \ | ||
qt5-qmake \ | ||
qtbase5-dev \ | ||
qttools5-dev \ | ||
qtwebengine5-dev \ | ||
swig | ||
|
||
RUN apt-get update -y --fix-missing | ||
|
||
# Clean | ||
RUN apt-get clean \ | ||
&& rm /var/lib/apt/lists/* \ | ||
/usr/share/doc/* \ | ||
/usr/share/locale/* \ | ||
/usr/share/man/* \ | ||
/usr/share/info/* -fR | ||
|
||
|
maybe remove misleading comments above this line?