Skip to content

Atomics

Atomics #552

Workflow file for this run

name: Presubmit
on: [push, pull_request]
jobs:
pre_job:
runs-on: ubuntu-latest
outputs:
should_skip: ${{ steps.skip_check.outputs.should_skip }}
steps:
- id: skip_check
uses: fkirc/skip-duplicate-actions@master
with:
concurrent_skipping: 'same_content'
skip_after_successful_duplicate: 'true'
paths_ignore: '["**/README.md"]'
do_not_skip: '["pull_request"]'
build-and-check:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt update; sudo apt install -y gcc ruby-dev libgsl-dev python3-dev
if: ${{ matrix.os == 'ubuntu-latest' }}
- run: brew install gsl automake
if: ${{ matrix.os == 'macos-latest' }}
- run: gem install --user-install rake ffi ffi-value whittle
- run: pip3 install --user parglare==0.12.0
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure --enable-strict
working-directory: build
- run: make -j
working-directory: build
- run: make -j check
working-directory: build
- uses: actions/upload-artifact@v2
if: failure()
with:
name: build-and-check
path: |
build/**/*.log
build/config.log
build-and-check-cxx:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check C++ ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update
- run: sudo apt-get install -y gcc g++ ruby-dev libgsl-dev python3-dev
- run: gem install --user-install rake ffi ffi-value whittle
- run: pip3 install --user parglare==0.12.0
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure --enable-strict CC=g++
working-directory: build
- run: make -j
working-directory: build
- run: make -j check
working-directory: build
- uses: actions/upload-artifact@v2
if: failure()
with:
name: build-and-check
path: |
build/**/*.log
build/config.log
build-and-check-thread-safe:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check Thread Safe ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt update; sudo apt install -y gcc ruby-dev libgsl-dev python3-dev
if: ${{ matrix.os == 'ubuntu-latest' }}
- run: brew install gsl automake
if: ${{ matrix.os == 'macos-latest' }}
- run: gem install --user-install rake ffi ffi-value whittle
- run: pip3 install --user parglare==0.12.0
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure --enable-strict --enable-thread-safe
working-directory: build
- run: make -j
working-directory: build
- run: make -j check
working-directory: build
- uses: actions/upload-artifact@v2
if: failure()
with:
name: build-and-check
path: |
build/**/*.log
build/config.log
build-and-check-clang:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check clang ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update
- run: sudo apt-get install -y clang ruby-dev libgsl-dev python3-dev
- run: gem install --user-install rake ffi ffi-value whittle
- run: pip3 install --user parglare==0.12.0
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure CC=clang
working-directory: build
- run: make -j
working-directory: build
- run: make -j check
working-directory: build
- uses: actions/upload-artifact@v2
if: failure()
with:
name: build-and-check
path: |
build/**/*.log
build/config.log
build-and-check-valgrind:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Build and Check Valgrind ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt-get update
- run: sudo apt-get install -y gcc valgrind ruby-dev libgsl-dev python3-dev
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure --enable-strict
working-directory: build
- run: make -j
working-directory: build
- run: make -j check-valgrind-memcheck
working-directory: build
- run: make -j check-valgrind-helgrind
working-directory: build
- uses: actions/upload-artifact@v2
if: failure()
with:
name: build-and-check-valgrind
path: |
build/**/*.log
build/config.log
distcheck:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Distcheck ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt update; sudo apt install -y gcc ruby-dev libgsl-dev python3-dev
if: ${{ matrix.os == 'ubuntu-latest' }}
- run: brew install gsl automake
if: ${{ matrix.os == 'macos-latest' }}
- run: gem install --user-install rake ffi ffi-value whittle
- run: pip3 install --user parglare==0.12.0
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure --enable-strict
working-directory: build
- run: make -j distcheck
working-directory: build
dist-check:
needs: pre_job
if: ${{ needs.pre_job.outputs.should_skip != 'true' }}
name: Dist and Check ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
steps:
- uses: actions/checkout@v3
- run: sudo apt update; sudo apt install -y gcc ruby-dev libgsl-dev python3-dev
if: ${{ matrix.os == 'ubuntu-latest' }}
- run: brew install gsl automake
if: ${{ matrix.os == 'macos-latest' }}
- run: gem install --user-install rake ffi ffi-value whittle
- run: pip3 install --user parglare==0.12.0
- run: ./autogen.sh
- run: mkdir -p build
- run: ../configure --enable-strict
working-directory: build
- run: make dist
working-directory: build
- name: extract
run: tar -xzvf cconfigspace-*
working-directory: build
- name: configure
run: |
cd `find . -type d -name "cconfigspace-*"`
mkdir -p build
cd build
../configure
working-directory: build
- name: make check
run: |
cd `find . -type d -name "cconfigspace-*"`
cd build
make -j check
working-directory: build