Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .build-tools/containers/README.md

This file was deleted.

22 changes: 0 additions & 22 deletions .build-tools/containers/build.sh

This file was deleted.

22 changes: 0 additions & 22 deletions .build-tools/containers/buildenv/Dockerfile

This file was deleted.

11 changes: 0 additions & 11 deletions .build-tools/containers/buildenv/run.sh

This file was deleted.

24 changes: 0 additions & 24 deletions .build-tools/containers/deploy.sh

This file was deleted.

12 changes: 0 additions & 12 deletions .build-tools/containers/remove.sh

This file was deleted.

24 changes: 0 additions & 24 deletions .build-tools/containers/run.sh

This file was deleted.

60 changes: 0 additions & 60 deletions .github/workflows/deployr.yml

This file was deleted.

61 changes: 61 additions & 0 deletions .github/workflows/master-test-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Merge into master - Run Tests Workflow

# if statements modified to avoid: https://stackoverflow.com/questions/69354003/github-action-job-fire-when-previous-job-skipped

on:
workflow_call:
inputs:
os:
required: true
type: string
arch:
required: true
type: string

permissions:
contents: read

env:
REGISTRY: ghcr.io
DOCKERIMAGE: ghcr.io/algebraic-programming/hicr/buildenv

defaults:
run:
shell: bash

jobs:
# Build HiCR and run tests and the remote image
compile-and-test:
runs-on: ${{ inputs.os }}
container:
image: ghcr.io/algebraic-programming/hicr/buildenv:latest
options: --user hicr
credentials:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup
run: source /home/hicr/.bashrc && meson setup build -Dbackends=hwloc,pthreads,mpi,lpf,nosv,boost,opencl,acl -Dfrontends=channel,RPCEngine,tasking,objectStore -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true

- name: Compile
run: source /home/hicr/.bashrc && meson compile -C build

- name: Running tests and creating coverage report
shell: bash
run: |
echo "Running Tests..."
source /home/hicr/.bashrc
meson setup build --wipe -Db_coverage=true -Dbackends=hwloc,pthreads,mpi,nosv,boost -Dfrontends=channel,RPCEngine,tasking,objectStore -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true
meson compile -C build
meson test -C build
echo "Creating coverage report..."
ninja -C build coverage
- uses: actions/upload-artifact@v4
if: always()
with:
name: meson-logs-${{ inputs.arch }}
path: build/meson-logs/
25 changes: 25 additions & 0 deletions .github/workflows/master.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
name: Merge into master - Build and Run Tests

# if statements modified to avoid: https://stackoverflow.com/questions/69354003/github-action-job-fire-when-previous-job-skipped

on:
push:
branches: ["master"]

env:
REGISTRY: ghcr.io
DOCKERIMAGE: ghcr.io/algebraic-programming/hicr/buildenv

jobs:
compile-and-test-arm64:
uses: Algebraic-Programming/DeployR/.github/workflows/master-test-workflow.yml@master
with:
os: ubuntu-24.04-arm
arch: arm64

compile-and-test-amd64:
uses: Algebraic-Programming/DeployR/.github/workflows/master-test-workflow.yml@master
with:
os: ubuntu-24.04
arch: amd64

118 changes: 118 additions & 0 deletions .github/workflows/pr-development-workflow.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
name: PR development - Build and Run Tests Workflow

# if statements modified to avoid: https://stackoverflow.com/questions/69354003/github-action-job-fire-when-previous-job-skipped

on:
workflow_call:
inputs:
os:
required: true
type: string
arch:
required: true
type: string

permissions:
contents: read

env:
REGISTRY: ghcr.io
DOCKERIMAGE: ghcr.io/algebraic-programming/hicr/buildenv

defaults:
run:
shell: bash

jobs:
# Build HiCR and run tests and the remote image
compile-and-test-standard:
runs-on: ${{ inputs.os }}
container:
image: ghcr.io/algebraic-programming/hicr/buildenv:latest
options: --user hicr
credentials:
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup
run: source /home/hicr/.bashrc && meson setup build -Dbackends=hwloc,pthreads,mpi,lpf,nosv,boost,opencl,acl -Dfrontends=channel,RPCEngine,tasking,objectStore -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true

- name: Compile
run: source /home/hicr/.bashrc && meson compile -C build

- name: Running tests and creating coverage report
shell: bash
run: |
echo "Running Tests..."
source /home/hicr/.bashrc
meson setup build --wipe -Db_coverage=true -Dbackends=hwloc,pthreads,mpi,nosv,boost -Dfrontends=channel,RPCEngine,tasking,objectStore -DbuildTests=true -DbuildExamples=true -DcompileWarningsAsErrors=true
meson compile -C build
meson test -C build
echo "Creating coverage report..."
ninja -C build coverage
- uses: actions/upload-artifact@v4
with:
name: build-standard-${{ inputs.arch }}
path: build/

analyze-coverage-report:
runs-on: ubuntu-latest
needs: [compile-and-test-standard]
permissions:
pull-requests: write
if: |
always() &&
(contains(needs.compile-and-test-standard.result, 'success'))
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Create temp build folder
run: |
mkdir ${{ runner.temp }}/build
- name: Download standard coverage file
if: ${{ needs.compile-and-test-standard.result == 'success' }}
uses: actions/download-artifact@v4
with:
name: build-standard-${{ inputs.arch }}
path: ${{ runner.temp }}/build
github-token: ${{ secrets.GITHUB_TOKEN }}

- name: Copy build folder in repo
run: |
mv ${{ runner.temp }}/build .

- name: Code Coverage Report
uses: irongut/CodeCoverageSummary@v1.3.0
with:
filename: build/meson-logs/coverage.xml
badge: true
fail_below_min: true
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: "60 80"

- name: Add arch to coverage file
run: |
sed -i '1i # Coverage ${{ inputs.arch }}' code-coverage-results.md

- name: Add Coverage PR Comment
uses: marocchino/sticky-pull-request-comment@v2
if: github.event_name == 'pull_request' || github.event_name == 'pull_request'
with:
header: ${{ inputs.arch }}
message: |
Coverage for ${{ inputs.arch }}
recreate: true
path: code-coverage-results.md
- uses: actions/upload-artifact@v4
with:
name: meson-logs-${{ inputs.arch }}
path: build/meson-logs/
Loading