Skip to content

Use libcosim stable, simplify build procedure #192

Use libcosim stable, simplify build procedure

Use libcosim stable, simplify build procedure #192

Workflow file for this run

name: CI
# This workflow is triggered on pushes to the repository.
on: [push, workflow_dispatch]
jobs:
linux:
name: Linux
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
build_type: [Debug, Release]
compiler_version: [9]
option_shared: ['shared=True', 'shared=False']
option_proxyfmu: ['proxyfmu=True', 'proxyfmu=False']
steps:
- uses: actions/checkout@v4
- name: Generate Dockerfile
run: |
mkdir /tmp/osp-builder-docker
cat <<'EOF' >/tmp/osp-builder-docker/Dockerfile
FROM conanio/gcc${{ matrix.compiler_version }}-ubuntu16.04
ENV CONAN_LOGIN_USERNAME_OSP=${{ secrets.osp_artifactory_usr }}
ENV CONAN_PASSWORD_OSP=${{ secrets.osp_artifactory_pwd }}
ENV LIBCOSIMC_RUN_TESTS_ON_CONAN_BUILD=1
COPY entrypoint.sh /
ENTRYPOINT /entrypoint.sh
EOF
- name: Generate entrypoint.sh
run: |
cat <<'EOF' >/tmp/osp-builder-docker/entrypoint.sh
#!/bin/bash -v
set -eu
cd /mnt/source
conan remote add osp https://osp.jfrog.io/artifactory/api/conan/conan-local --force
REFNAME="${GITHUB_REF#refs/*/}"
VERSION="v$(<version.txt)"
if [[ $GITHUB_REF == refs/tags/* ]] && [[ $REFNAME == $VERSION ]]; then CHANNEL="stable"
elif [[ $REFNAME == master ]]; then CHANNEL="testing"
else
SHORT_REFNAME="${REFNAME:0:40}"
CHANNEL="testing-${SHORT_REFNAME//\//_}"
fi
conan create \
--settings="build_type=${{ matrix.build_type }}" \
--options="libcosimc/*:${{ matrix.option_shared }}" \
--options="libcosim/*:${{ matrix.option_proxyfmu }}" \
--build=missing \
--user=osp \
--channel="${CHANNEL}" \
.
conan upload --confirm --remote=osp 'libcosimc/*'
EOF
chmod 0755 /tmp/osp-builder-docker/entrypoint.sh
- name: Build Docker image
run: docker build -t osp-builder /tmp/osp-builder-docker/
- name: Build libcosimc
run: docker run --rm --env GITHUB_REF="$GITHUB_REF" -v $(pwd):/mnt/source:ro osp-builder
windows:
name: Windows
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [windows-2019]
build_type: [Debug, Release]
option_shared: ['shared=True', 'shared=False']
option_proxyfmu: ['proxyfmu=True', 'proxyfmu=False']
env:
CONAN_LOGIN_USERNAME_OSP: ${{ secrets.osp_artifactory_usr }}
CONAN_PASSWORD_OSP: ${{ secrets.osp_artifactory_pwd }}
LIBCOSIMC_RUN_TESTS_ON_CONAN_BUILD: 1
steps:
- uses: actions/checkout@v4
- name: Install prerequisites
run: |
pip3 install --upgrade setuptools pip
pip3 install conan
- name: Configure Conan
run: |
conan profile detect
conan remote add osp https://osp.jfrog.io/artifactory/api/conan/conan-local --force
- name: Conan create
shell: bash
run: |
REFNAME="${GITHUB_REF#refs/*/}"
VERSION="v$(<version.txt)"
if [[ $GITHUB_REF == refs/tags/* ]] && [[ $REFNAME == $VERSION ]]; then CHANNEL="stable"
elif [[ $REFNAME == master ]]; then CHANNEL="testing"
else
SHORT_REFNAME="${REFNAME:0:40}"
CHANNEL="testing-${SHORT_REFNAME//\//_}"
fi
conan create \
--settings="build_type=${{ matrix.build_type }}" \
--options="libcosimc*:${{ matrix.option_shared }}" \
--options="libcosim/*:${{ matrix.option_proxyfmu }}" \
--build=missing \
--user=osp \
--channel="${CHANNEL}" \
.
- name: Conan upload
run: conan upload --confirm --remote=osp 'libcosimc/*'