Bump CLib version to correct marshal.c build error on x86. #149
Workflow file for this run
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
--- | |
name: CI | |
on: # yamllint disable-line rule:truthy | |
workflow_dispatch: | |
push: | |
branches: [main, devel] | |
tags: | |
- 'v*.*.*' | |
pull_request: | |
branches: [main, devel] | |
env: | |
REGISTRY: ghcr.io | |
IMAGE_BASE_NAME: ${{ github.repository_owner }}/dse | |
PACKAGE_VERSION: 0.0.2 | |
package_name: ModelC | |
build_dir: dse/modelc/build | |
CCACHE_SECONDARY_STORAGE: ${{ secrets.CCACHE_SECONDARY_STORAGE }} | |
jobs: | |
build: | |
runs-on: [ubuntu-latest] | |
strategy: | |
matrix: | |
package_arch: | |
- linux-amd64 | |
- linux-x86 | |
- windows-x64 | |
- windows-x86 | |
container: | |
image: ghcr.io/boschglobal/dse-gcc-builder:main | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Build package metadata | |
id: package_meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: dse/modelc | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern={{version}} | |
- name: Get package version | |
if: startsWith(github.ref, 'refs/tags/') | |
id: package | |
run: | | |
echo "PACKAGE_VERSION=${{ fromJSON(steps.package_meta.outputs.json).labels['org.opencontainers.image.version'] }}" >> $GITHUB_ENV | |
- name: Build | |
env: | |
PACKAGE_ARCH: ${{ matrix.package_arch }} | |
run: | | |
make | |
- name: Test | |
if: ${{ matrix.package_arch == 'linux-amd64' }} | |
env: | |
PACKAGE_ARCH: ${{ matrix.package_arch }} | |
run: | | |
make test_cmocka | |
- name: Stats | |
run: | | |
ccache -s -v || true | |
- name: Package | |
env: | |
PACKAGE_ARCH: ${{ matrix.package_arch }} | |
run: | | |
make package | |
tar -czf sandbox_out.tar.gz -C . ${{ env.build_dir }}/_out | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-${{ matrix.package_arch }}-package | |
path: | | |
${{ env.build_dir }}/_dist/${{ env.package_name }}-${{ env.PACKAGE_VERSION }}-${{ matrix.package_arch }}.tar.gz | |
${{ env.build_dir }}/_dist/${{ env.package_name }}-${{ env.PACKAGE_VERSION }}-${{ matrix.package_arch }}.zip | |
retention-days: 1 | |
- uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-${{ matrix.package_arch }}-sandbox | |
path: | | |
sandbox_out.tar.gz | |
retention-days: 1 | |
test_e2e: | |
runs-on: [ubuntu-latest] | |
needs: [build, runtimes, tools] | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: image_simer | |
path: /tmp | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: image_testscript | |
path: /tmp | |
- name: Load images | |
run: | | |
docker load --input /tmp/simer.tar | |
docker load --input /tmp/testscript.tar | |
docker image ls -a | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-linux-amd64-sandbox | |
path: . | |
- name: Sandbox | |
run: | | |
tar xzf sandbox_out.tar.gz | |
find ${{ env.build_dir }}/_out -type f -name '*' -exec ls -sh --color=auto {} \; | |
- name: Test | |
run: | | |
make test_e2e | |
publish: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: [ubuntu-latest] | |
needs: [build, test_e2e] | |
strategy: | |
matrix: | |
package_arch: | |
- linux-amd64 | |
- linux-x86 | |
- windows-x64 | |
- windows-x86 | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Build package metadata | |
id: package_meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: dse/modelc | |
tags: | | |
type=ref,event=branch | |
type=semver,pattern={{version}} | |
- name: Get package version | |
if: startsWith(github.ref, 'refs/tags/') | |
id: package | |
run: | | |
echo "PACKAGE_VERSION=${{ fromJSON(steps.package_meta.outputs.json).labels['org.opencontainers.image.version'] }}" >> $GITHUB_ENV | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-${{ matrix.package_arch }}-package | |
path: ${{ env.build_dir }}/_dist | |
- name: Publish | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: | | |
${{ env.build_dir }}/_dist/${{ env.package_name }}-${{ env.PACKAGE_VERSION }}-${{ matrix.package_arch }}.zip | |
docker_push: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: [ubuntu-latest] | |
needs: [runtimes, tools, test_e2e] | |
strategy: | |
matrix: | |
container: | |
- simer | |
- testscript | |
steps: | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Download artifact | |
uses: actions/download-artifact@v3 | |
with: | |
name: image_${{ matrix.container }} | |
path: /tmp | |
- name: Load and Push Image | |
run: | | |
docker load --input /tmp/${{ matrix.container }}.tar | |
docker image ls -a | |
docker image push --all-tags ${{ env.REGISTRY }}/${{ env.IMAGE_BASE_NAME }}-${{ matrix.container }} | |
runtimes: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: [ubuntu-latest] | |
needs: [build] | |
strategy: | |
matrix: | |
container: | |
- testscript | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_BASE_NAME }}-${{ matrix.container }} | |
tags: | | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- name: Version | |
if: startsWith(github.ref, 'refs/tags/') | |
id: package | |
run: | | |
echo "PACKAGE_VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}" >> $GITHUB_ENV | |
- name: Build Image | |
uses: docker/build-push-action@v4 | |
with: | |
push: false | |
context: . | |
file: ./extra/docker/${{ matrix.container }}/Dockerfile | |
build-args: | | |
PACKAGE_VERSION=${{ env.PACKAGE_VERSION }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
outputs: type=docker,dest=/tmp/${{ matrix.container }}.tar | |
- name: Upload image artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: image_${{ matrix.container }} | |
path: /tmp/${{ matrix.container }}.tar | |
retention-days: 1 | |
tools: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: [ubuntu-latest] | |
needs: [build] | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_BASE_NAME }}-simer | |
tags: | | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- name: Version | |
if: startsWith(github.ref, 'refs/tags/') | |
id: package | |
run: | | |
echo "PACKAGE_VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}" >> $GITHUB_ENV | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-linux-amd64-sandbox | |
path: sandbox/ModelC-linux-amd64-sandbox | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-linux-x86-sandbox | |
path: sandbox/ModelC-linux-x86-sandbox | |
- name: Sandbox | |
run: | | |
(cd sandbox/${{ env.package_name }}-linux-amd64-sandbox; tar xzf sandbox_out.tar.gz) | |
(cd sandbox/${{ env.package_name }}-linux-x86-sandbox; tar xzf sandbox_out.tar.gz) | |
mkdir -p extra/tools/simer/build/stage/bin | |
mkdir -p extra/tools/simer/build/stage/lib | |
mkdir -p extra/tools/simer/build/stage/lib32 | |
cp sandbox/${{ env.package_name }}-linux-amd64-sandbox/${{ env.build_dir }}/_out/bin/simbus extra/tools/simer/build/stage/bin/simbus ;\ | |
cp sandbox/${{ env.package_name }}-linux-amd64-sandbox/${{ env.build_dir }}/_out/bin/modelc extra/tools/simer/build/stage/bin/modelc ;\ | |
cp sandbox/${{ env.package_name }}-linux-amd64-sandbox/${{ env.build_dir }}/_out/lib/mcl_model.so extra/tools/simer/build/stage/lib/mcl_model.so ;\ | |
cp -r sandbox/${{ env.package_name }}-linux-amd64-sandbox/${{ env.build_dir }}/_out/licenses -t extra/tools/simer/build/stage ;\ | |
cp sandbox/${{ env.package_name }}-linux-x86-sandbox/${{ env.build_dir }}/_out/bin/modelc extra/tools/simer/build/stage/bin/modelc32 ;\ | |
cp sandbox/${{ env.package_name }}-linux-x86-sandbox/${{ env.build_dir }}/_out/lib/mcl_model.so extra/tools/simer/build/stage/lib32/mcl_model.so ;\ | |
ls -R extra/tools/simer/build/stage | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
push: false | |
context: extra/tools/simer | |
file: ./extra/tools/simer/build/package/Dockerfile | |
build-args: | | |
PACKAGE_VERSION=${{ env.PACKAGE_VERSION }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
outputs: type=docker,dest=/tmp/simer.tar | |
- name: Upload image artifact | |
uses: actions/upload-artifact@v2 | |
with: | |
name: image_simer | |
path: /tmp/simer.tar | |
retention-days: 1 | |
containers: | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: [ubuntu-latest] | |
needs: [build, test_e2e] | |
strategy: | |
matrix: | |
name: [modelc] | |
arch: [linux-amd64] | |
include: | |
- name: modelc | |
arch: linux-amd64 | |
- name: modelc-x86 | |
arch: linux-x86 | |
- name: simbus-sa | |
arch: linux-amd64 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Log in to the Container registry | |
uses: docker/login-action@v2 | |
with: | |
registry: ${{ env.REGISTRY }} | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v2 | |
- name: Extract metadata (tags, labels) for Docker | |
id: meta | |
uses: docker/metadata-action@v4 | |
with: | |
images: ${{ env.REGISTRY }}/${{ env.IMAGE_BASE_NAME }}-${{ matrix.name }} | |
tags: | | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
- name: Version | |
if: startsWith(github.ref, 'refs/tags/') | |
id: package | |
run: | | |
echo "PACKAGE_VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}" >> $GITHUB_ENV | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ${{ env.package_name }}-${{ matrix.arch }}-sandbox | |
path: . | |
- name: Sandbox | |
run: | | |
tar xzf sandbox_out.tar.gz | |
find ${{ env.build_dir }}/_out -type f -name '*' -exec ls -sh --color=auto {} \; | |
- name: Build and push | |
uses: docker/build-push-action@v4 | |
with: | |
push: true | |
context: . | |
file: ./extra/docker/${{ matrix.name }}/Dockerfile | |
build-args: | | |
PACKAGE_VERSION=${{ env.PACKAGE_VERSION }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |