mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 09:21:46 +00:00
8cff046a46
This ensures that IOS-Python always 1) has the appropriate version and 2) contains exactly the same content as PyPI (i.e. with the latest Python files that might be outdated from the bot builds)
122 lines
3.5 KiB
YAML
122 lines
3.5 KiB
YAML
name: ci-ifcopenshell-docker
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
tags:
|
|
- v0.**
|
|
|
|
jobs:
|
|
|
|
activate:
|
|
runs-on: ubuntu-latest
|
|
if: |
|
|
github.repository == 'IfcOpenShell/IfcOpenShell' &&
|
|
!startsWith(github.event.head_commit.message, 'Release ') &&
|
|
!contains(github.event.head_commit.message, 'ci skip')
|
|
steps:
|
|
- run: echo ok go
|
|
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
needs: activate
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Install dependencies
|
|
run: |
|
|
sudo apt update
|
|
sudo apt-get install --no-install-recommends \
|
|
git cmake gcc g++ libboost-all-dev python3-all-dev swig libpcre3-dev libxml2-dev \
|
|
libocct-foundation-dev libocct-modeling-algorithms-dev libocct-modeling-data-dev libocct-ocaf-dev libocct-visualization-dev libocct-data-exchange-dev \
|
|
libhdf5-dev libcgal-dev nlohmann-json3-dev libeigen3-dev
|
|
|
|
-
|
|
name: ccache
|
|
uses: hendrikmuhs/ccache-action@v1
|
|
|
|
-
|
|
name: Build ifcopenshell
|
|
run: |
|
|
mkdir build && cd build
|
|
cmake \
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
|
|
-DCMAKE_INSTALL_PREFIX=$PWD/install/ \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_PREFIX_PATH=/usr \
|
|
-DCMAKE_SYSTEM_PREFIX_PATH=/usr \
|
|
-DBUILD_PACKAGE=On \
|
|
-DOCC_INCLUDE_DIR=/usr/include/opencascade \
|
|
-DOCC_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \
|
|
-DPYTHON_EXECUTABLE:FILEPATH=/usr/bin/python3 \
|
|
-DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.10 \
|
|
-DPYTHON_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libpython3.10.so \
|
|
-DCOLLADA_SUPPORT=Off \
|
|
-DLIBXML2_INCLUDE_DIR=/usr/include/libxml2 \
|
|
-DLIBXML2_LIBRARIES=/usr/lib/x86_64-linux-gnu/libxml2.so \
|
|
-DCGAL_INCLUDE_DIR=/usr/include \
|
|
-DGMP_INCLUDE_DIR=/usr/include \
|
|
-DMPFR_INCLUDE_DIR=/usr/include \
|
|
-DGMP_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \
|
|
-DMPFR_LIBRARY_DIR=/usr/lib/x86_64-linux-gnu \
|
|
-DHDF5_INCLUDE_DIR=/usr/include/hdf5/serial \
|
|
-DGLTF_SUPPORT=On \
|
|
-DJSON_INCLUDE_DIR=/usr/include \
|
|
-DEIGEN_DIR=/usr/include/eigen3 \
|
|
../cmake
|
|
make -j $(nproc)
|
|
make install
|
|
-
|
|
name: Package
|
|
run: |
|
|
make package
|
|
working-directory: build
|
|
- name: Upload
|
|
uses: actions/upload-artifact@v2
|
|
with:
|
|
# Artifact name
|
|
name: ifcos-artifacts
|
|
# Directory containing files to upload
|
|
path: build/assets/Ifc*
|
|
|
|
deliver:
|
|
runs-on: ubuntu-latest
|
|
needs: build
|
|
name: Docker Build, Tag, Push
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
lfs: true
|
|
|
|
- name: Download
|
|
uses: actions/download-artifact@v2
|
|
with:
|
|
# Artifact name
|
|
name: ifcos-artifacts
|
|
path: artifacts/
|
|
-
|
|
name: Set up QEMU
|
|
uses: docker/setup-qemu-action@v1
|
|
-
|
|
name: Set up Docker Buildx
|
|
uses: docker/setup-buildx-action@v1
|
|
-
|
|
name: Login to Dockerhub
|
|
uses: docker/login-action@v1
|
|
with:
|
|
username: aecgeeks
|
|
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
|
-
|
|
name: Build container image
|
|
uses: docker/build-push-action@v2
|
|
with:
|
|
context: artifacts
|
|
repository: aecgeeks/ifcopenshell
|
|
tags: aecgeeks/ifcopenshell:latest
|
|
file: ./Dockerfile
|
|
push: true
|