Skip to content

Merge pull request #40 from rgeo/fix/fork-segv #91

Merge pull request #40 from rgeo/fix/fork-segv

Merge pull request #40 from rgeo/fix/fork-segv #91

Workflow file for this run

name: CI
on:
push:
branches:
- master
pull_request:
jobs:
Build:
strategy:
fail-fast: false
matrix:
ruby:
- head
- "3.1"
- "3.0"
- "2.7"
- "2.6"
os:
- ubuntu
- macos
proj:
- "9.1.0"
- "9.0.1"
- "8.2.1"
- "8.1.1"
- "8.0.1"
- "7.2.1"
- "7.1.1"
- "7.0.1"
- "6.3.1"
- "6.2.1"
runs-on: ${{ matrix.os }}-latest
name: Ruby ${{ matrix.ruby }}, Proj-${{ matrix.proj }} (${{ matrix.os }})
steps:
- uses: actions/checkout@v2
- name: Install Packages (Linux)
if: matrix.os == 'ubuntu'
run: |
sudo add-apt-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get install curl libcurl4-openssl-dev libssl-dev libgeos-dev cmake
- name: Install Packages (Mac)
if: matrix.os == 'macos'
run: brew install geos cmake
- uses: actions/cache@v2
id: proj-cache
with:
path: ./proj-${{ matrix.proj }}
key: proj-${{ matrix.proj }}-os-${{ matrix.os }}-cmake-version
- name: Download and Compile Proj
if: steps.proj-cache.outputs.cache-hit != 'true'
run: |
wget -c https://download.osgeo.org/proj/proj-${{ matrix.proj }}.tar.gz -O - | tar -xz
cd proj-${{ matrix.proj }}
mkdir build
cd build
cmake ..
cmake --build .
cd ../../
- name: Install Proj
run: |
cd proj-${{ matrix.proj }}/build
cmake ..
cmake --build .
sudo cmake --build . --target install
cd ../../
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby }}
bundler-cache: false
- name: Bundle Install
run: |
bundle install
- name: Set Maintainer Mode
if: ${{ github.event.pull_request }}
run: export MAINTAINER_MODE=1
- name: Test
run: bundle exec rake
Memcheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
bundler-cache: true
- name: Install dependencies
run: |
sudo apt-add-repository ppa:ubuntugis/ubuntugis-unstable
sudo apt-get install -yqq libgeos-dev libproj-dev proj-bin valgrind
- name: Test & Memcheck
run: bundle exec rake test:valgrind
RuboCop:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.1"
bundler-cache: true
- run: |
bundle exec rubocop --color --parallel
clang-format:
# NOTE: you could update that tag to `-latest` when the new ubuntu LTS
# is released. Nowadays, `-latest` would point to 20.04 which has an
# outdated clang-format package.
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Install clang-format
run: sudo apt-get install -yqq clang-format
- name: Show version
run: clang-format --version
- name: Run clang-format
run: bin/clang-format lint