Skip to content

vcpkg and workflow updates #84

vcpkg and workflow updates

vcpkg and workflow updates #84

Workflow file for this run

# Copyright (c) 2021-2024 [Ribose Inc](https://www.ribose.com).
# All rights reserved.
# This file is a part of tamatebako
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR CONTRIBUTORS
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# The purpose of this workflow is to check that build procedures work correctly
# in specific environment. Due to this reason there is no caching. It is done by
# intention. All caching is in upstream projects.
name: Alpine-x86_64
on:
push:
branches: [ master ]
paths-ignore:
- '.github/workflows/macos-x86_64.yml'
- '.github/workflows/macos-arm64.yml'
- '.github/workflows/ubuntu-x86_64.yml'
- '.github/workflows/ubuntu-aarch64.yml'
- '.github/workflows/windows-x86_64.yml'
- '.github/workflows/msys-x86_64.yml'
pull_request:
workflow_dispatch:
concurrency:
group: '${{ github.workflow }}-${{ github.job }}-${{ github.head_ref || github.ref_name }}'
cancel-in-progress: true
env:
BUILD_TYPE: Release
VCPKG_FORCE_SYSTEM_BINARIES: 1
CC: gcc
CXX: g++
jobs:
build-and-test:
runs-on: ubuntu-latest
container:
image: alpine:latest
steps:
- name: Install packages
run: |
apk --no-cache --upgrade add build-base cmake git valgrind tar argp-standalone \
gcompat gperf flex bison gettext-dev python3 ninja zip unzip curl pkgconfig \
libxml2-utils font-noto-hebrew font-noto-arabic
# vcpkg prerequisites (and VCPKG_FORCE_SYSTEM_BINARIES: 1)
# gcompat gperf flex bison gettext-dev python3 ninja zip unzip curl pkg-config
# testing prerequisites
# libxml2-utils
# [ tests/resources/emf/test-183.emf ] -- font-noto-hebrew font-noto-arabic
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Configure cache
run: |
echo 'VCPKG_DEFAULT_BINARY_CACHE<<EOF' >> $GITHUB_ENV
echo "$(pwd)/cache" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Create cache storage and cache key
run: |
mkdir ${{ env.VCPKG_DEFAULT_BINARY_CACHE }}
git config --global --add safe.directory $(pwd)
git submodule status > sm.txt
- name: Process cache
uses: actions/cache@v4
with:
path: ${{ env.VCPKG_DEFAULT_BINARY_CACHE }}
key: ${{ github.workflow }}-vcpkg-${{ hashFiles('sm.txt') }}
- name: Configure CMake
run: |
cmake -B build -DCMAKE_BUILD_TYPE=Release -DVCPKG_TARGET_TRIPLET=x64-linux -DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Build
run: |
cmake --build build --config ${{env.BUILD_TYPE}}
- name: Test well formed files
run: ./tests/resources/check_correctness.sh -r -s
- name: Test corrupted files
run: ./tests/resources/check_correctness.sh -r -s -e tests/resources/emf-corrupted/ -xN
- name: Test EA files
run: ./tests/resources/check_correctness.sh -r -s -e tests/resources/emf-ea/
build-for-ruby:
runs-on: ubuntu-latest
container:
image: alpine:latest
steps:
- name: Install packages
run: |
apk --no-cache --upgrade add build-base cmake git tar bash \
gcompat gperf flex bison gettext-dev python3 ninja zip unzip curl pkgconfig
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Configure cache
run: |
echo 'VCPKG_DEFAULT_BINARY_CACHE<<EOF' >> $GITHUB_ENV
echo "$(pwd)/cache" >> $GITHUB_ENV
echo 'EOF' >> $GITHUB_ENV
- name: Create cache storage and cache key
run: |
mkdir ${{ env.VCPKG_DEFAULT_BINARY_CACHE }}
git config --global --add safe.directory /__w/libemf2svg/libemf2svg
git submodule status > sm.txt
- name: Process cache
uses: actions/cache@v4
with:
path: ${{ env.VCPKG_DEFAULT_BINARY_CACHE }}
key: ${{ github.workflow }}-vcpkg-${{ hashFiles('sm.txt') }}
- name: Configure CMake
run: |
cmake -B build -DCMAKE_BUILD_TYPE=Release \
-DVCPKG_TARGET_TRIPLET=x64-linux \
-DLONLY=ON \
-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake
- name: Build
run: |
cmake --build build --config ${{env.BUILD_TYPE}}
- name: Checkout shell test framework
uses: actions/checkout@v4
with:
repository: kward/shunit2
path: tests/shunit2
fetch-depth: 1
- name: Run additional tests
run: tests/resources/lcheck.sh