feat: C++14 support and various installation fixes #1047
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: | |
pull_request: | |
concurrency: | |
group: ci-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
verify-versions: | |
name: Verify Versions | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
fetch-depth: 0 | |
- run: npm i -g pnpm @antfu/ni | |
- name: Setup Node.js | |
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 | |
with: | |
node-version: 18.x | |
cache: pnpm | |
- name: Install Dependencies | |
run: nci | |
- name: Verify Versions | |
run: nr verify-versions | |
format-csharp: | |
name: Format C# | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
submodules: true | |
- name: Install .NET Core | |
uses: actions/setup-dotnet@3447fd6a9f9e57506b15f895c5b76d3b197dc7c2 # v3 | |
with: | |
dotnet-version: 6.x | |
- name: Install ReSharper | |
run: | | |
dotnet tool install -g JetBrains.ReSharper.GlobalTools --version 2022.2.2 | |
- name: Restore | |
run: | | |
cd packages/csharp | |
dotnet restore ArmoniK.Api.sln | |
- name: Reformat | |
run: | | |
cd packages/csharp | |
jb cleanupcode ArmoniK.Api.sln | |
- name: Check Diff | |
run: | | |
DIFF="$(git diff --name-only)" | |
if [ -z "$DIFF" ]; then | |
echo "OK: Format is clean" | |
else | |
echo "Error: Format was not clean" | |
echo "List of files:" | |
echo "$DIFF" | |
git diff | |
exit 1 | |
fi | |
format-cpp: | |
name: Format C++ | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
- name: Run clang-format | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y clang-format | |
- name: Check Diff | |
id: check-diff | |
run: | | |
cd packages/cpp | |
git ls-files *.{c,h,hpp,cpp,cc} | xargs clang-format -style=file:.clang-format -i | |
DIFF="$(git diff --name-only)" | |
if [ -z "$DIFF" ]; then | |
echo "OK: Format is clean" | |
else | |
echo "Error: Format was not clean" | |
echo "List of files:" | |
echo "$DIFF" | |
git diff | |
exit 1 | |
fi | |
- name: Generate patch | |
if: ${{ failure() && steps.check-diff.conclusion == 'failure' }} | |
run: | | |
git diff > patch-cpp.diff | |
- uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3 | |
if: ${{ failure() && steps.check-diff.conclusion == 'failure' }} | |
with: | |
name: patch-cpp | |
path: ./patch-cpp.diff | |
format-protobuf: | |
name: Format Protobuf | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
steps: | |
- name: Checkout | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
ref: ${{ github.ref }} | |
fetch-depth: 0 | |
submodules: true | |
- name: Check Diff | |
run: docker run --rm --volume "$(pwd)/Protos/V1:/workspace" --workdir /workspace bufbuild/buf:1.8.0 format -d --exit-code | |
lint-js: | |
name: Lint JS | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- run: corepack enable | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 20 | |
cache: pnpm | |
- run: pnpm install --frozen-lockfile | |
- run: pnpm run lint | |
build-web: | |
name: Build Web | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: packages/web | |
steps: | |
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
fetch-depth: 0 | |
- run: npm i -g pnpm @antfu/ni | |
- name: Setup Node.js | |
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 | |
with: | |
node-version: 18.x | |
cache: pnpm | |
- name: Install Dependencies | |
run: nci | |
- name: Install Protoc | |
run: sudo apt install -y protobuf-compiler | |
- name: Build protos | |
run: nr proto:generate:linux | |
- name: Build | |
run: nr build | |
build-angular: | |
name: Build Angular | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: packages/angular | |
steps: | |
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
fetch-depth: 0 | |
- run: npm i -g pnpm @antfu/ni | |
- name: Setup Node.js | |
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3 | |
with: | |
node-version: 18.x | |
cache: pnpm | |
- name: Install Dependencies | |
run: nci | |
- name: Install Protoc | |
run: sudo apt install -y protobuf-compiler | |
- name: Build protos | |
run: nr proto:generate:linux | |
- name: Build | |
run: nr build | |
build-test-python: | |
name: Build and test Python | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: packages/python | |
steps: | |
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
fetch-depth: 0 | |
- name: pip update and add build package | |
run: bash proto2python.sh ~/pyvenv | |
- name: Install dependencies | |
run: pip install "$(echo pkg/armonik*.whl)[tests]" | |
- name: Run tests | |
run: python -m pytest tests --cov=armonik --cov-config=.coveragerc --cov-report=term-missing --cov-report xml:coverage.xml --cov-report html:coverage_report | |
- name: Get Cover | |
uses: orgoro/coverage@6d7a2607343d2abeab89ef40b54ec9785134e313 | |
with: | |
coverageFile: packages/python/coverage.xml | |
token: ${{ secrets.GITHUB_TOKEN }} | |
- name: Archive code coverage results html | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3 | |
with: | |
name: code-coverage-report-html | |
path: packages/python/coverage_report | |
- name: Archive code coverage results xml | |
uses: actions/upload-artifact@0b7f8abb1508181956e8e162db84b466c27e18ce # v3 | |
with: | |
name: code-coverage-report-xml | |
path: packages/python/coverage.xml | |
build-cpp-packages: | |
strategy: | |
fail-fast: false | |
matrix: | |
type: [tar.gz, deb, rpm] | |
name: Build C++ Packages [${{ matrix.type }}] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3 | |
with: | |
ref: ${{ github.ref }} | |
- name: Build the package | |
run: | | |
cd packages/cpp/tools/packaging | |
./make-${{ matrix.type }}.sh | |
- name: Publish package as artefact | |
uses: actions/upload-artifact@65d862660abb392b8c4a3d1195a2108db131dd05 | |
with: | |
if-no-files-found: error | |
path: packages/cpp/tools/packaging/*.${{ matrix.type }} | |
name: libarmonik.${{ matrix.type }} |