name: Release on: push: tags: - 'v[0-9].[0-9].[0-9]*' workflow_dispatch: jobs: activate: if: github.repository == 'IfcOpenShell/IfcOpenShell' runs-on: ubuntu-22.04 steps: - run: echo ok go build: needs: activate runs-on: ubuntu-22.04 steps: - name: Checkout uses: actions/checkout@v7 with: submodules: recursive - name: Install C++ dependencies run: | sudo apt update sudo apt-get install --no-install-recommends \ git cmake gcc g++ \ libboost-date-time-dev \ libboost-filesystem-dev \ libboost-iostreams-dev \ libboost-program-options-dev \ libboost-regex-dev \ libboost-system-dev \ libboost-thread-dev \ python3-all-dev python3-pip \ swig libpcre3-dev libxml2-dev \ libtbb-dev nlohmann-json3-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 opencollada-dev - name: Build env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | mkdir build && cd build cmake \ -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 \ -DLIBXML2_INCLUDE_DIR=/usr/include/libxml2 \ -DLIBXML2_LIBRARIES=/usr/lib/x86_64-linux-gnu/libxml2.so \ -DGLTF_SUPPORT=On \ -DJSON_INCLUDE_DIR=/usr/include \ -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 \ -DOPENCOLLADA_INCLUDE_DIR=/usr/include/opencollada \ -DOPENCOLLADA_LIBRARY_DIR=/usr/lib/opencollada/ \ ../cmake make -j $(nproc) make install - name: Package id: package run: | make package echo ::set-output name=tgz::$( ls assets/*.tar.gz | head -n 1 | xargs basename ) echo ::set-output name=deb::$( ls assets/*.deb | head -n 1 | xargs basename ) working-directory: build env: CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Release id: release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: Release ${{ github.ref }} draft: false prerelease: true body: | Changes to this release - add github actions support #1306 - add boost depends to ifcopenshell deb packaging - See more details in the documentation # body_path: build/CHANGELOG.md - name: Upload TGZ id: upload-tgz uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: build/assets/${{ steps.package.outputs.tgz }} asset_name: ${{ steps.package.outputs.tgz }} asset_content_type: application/x-gzip - name: Upload DEB id: upload-deb uses: actions/upload-release-asset@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: upload_url: ${{ steps.release.outputs.upload_url }} # This pulls from the CREATE RELEASE step above, referencing it's ID to get its outputs object, which include a `upload_url`. See this blog post for more info: https://jasonet.co/posts/new-features-of-github-actions/#passing-data-to-future-steps asset_path: build/assets/${{ steps.package.outputs.deb }} asset_name: ${{ steps.package.outputs.deb }} asset_content_type: application/vnd.debian.binary-package