Skip to content

CI

CI #27

Workflow file for this run

name: CI
on:
pull_request: ~
push:
branches:
- 'master'
- 'starling-v*-release'
- 'v*-release'
tags:
- 'v*'
- 'starling-v*'
- '*.*.*'
jobs:
ubuntu-gcc6:
runs-on: ubuntu-18.04
steps:
- name: Checkout source
uses: actions/checkout@v2
with:
submodules: recursive
ssh-key: ${{ secrets.SSH_KEY }}
- name: Install gcc-6
run: |
sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install gcc-6 g++-6 -y && \
gcc -v
- name: Run build
env:
CC: gcc-6
CXX: g++-6
TESTENV: gcc6
GCCVER: "6"
run: |
bash ./ci-build.sh
ubuntu-codecov:
runs-on: ubuntu-18.04
steps:
- name: Checkout source
uses: actions/checkout@v2
with:
fetch-depth: 0
submodules: recursive
ssh-key: ${{ secrets.SSH_KEY }}
- name: Install llvm-cov
run: |
sudo apt-get update && sudo apt-get install llvm -y
- name: Run build
env:
CC: clang
CXX: clang++
TESTENV: codecov
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_ORGANIZATION: swift-nav
SONAR_PROJECT_KEY: swift-nav_gnss-converters
SONAR_PROJECT_NAME: gnss-converters
SONAR_HOST_URL: https://sonarcloud.io
SONAR_SCANNER_VERSION: 4.2.0.1873
run: |
bash ./ci-build.sh
ubuntu-rust:
runs-on: ubuntu-18.04
steps:
- name: Checkout source
uses: actions/checkout@v2
with:
submodules: recursive
ssh-key: ${{ secrets.SSH_KEY }}
- name: Install stable Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- name: Install clang-6
run: |
sudo apt-get update && \
sudo apt-get install build-essential software-properties-common -y && \
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y && \
sudo apt-get update && \
sudo apt-get install clang-6.0 llvm-6.0 clang-tidy-6.0 -y && \
clang-6.0 -v && \
clang++-6.0 -v
- name: Run build
env:
CC: clang-6.0
CXX: clang++-6.0
TESTENV: rust
OS_NAME: linux
run: |
bash ./ci-build.sh
echo "RELEASE_ARCHIVE=$(cat release-archive.filename)" >>$GITHUB_ENV
- uses: actions/upload-artifact@v2
with:
name: ubuntu-rust-artifacts
path: |
${{ env.RELEASE_ARCHIVE }}
release-archive.filename
macos-rust:
runs-on: macos-10.15
steps:
- name: Checkout source
uses: actions/checkout@v2
with:
submodules: recursive
ssh-key: ${{ secrets.SSH_KEY }}
- name: Install stable Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
components: rustfmt, clippy
- name: Run build
env:
CC: clang
CXX: clang++
TESTENV: rust
OS_NAME: osx
run: |
bash ./ci-build.sh
echo "RELEASE_ARCHIVE=$(cat release-archive.filename)" >>$GITHUB_ENV
- uses: actions/upload-artifact@v2
with:
name: macos-rust-artifacts
path: |
${{ env.RELEASE_ARCHIVE }}
release-archive.filename
windows-rust:
runs-on: windows-2019
steps:
- name: Checkout source
uses: actions/checkout@v2
with:
submodules: recursive
ssh-key: ${{ secrets.SSH_KEY }}
- name: Install SQLite
run: |
choco install -y --no-progress sqlite;
- name: Install msys2 packages
uses: msys2/setup-msys2@v2
with:
msystem: mingw64
install: git base-devel mingw-w64-x86_64-toolchain
update: true
- name: Install MinGW Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable-x86_64-pc-windows-gnu
override: true
components: rustfmt, clippy
- name: Run build
shell: bash
env:
CC: x86_64-w64-mingw32-gcc
CXX: x86_64-w64-mingw32-g++
TESTENV: rust
OS_NAME: windows
CMAKE_GENERATOR: MinGW Makefiles
run: |
bash ./ci-build.sh
echo "RELEASE_ARCHIVE=$(cat release-archive.filename)" >>$GITHUB_ENV
- uses: actions/upload-artifact@v2
with:
name: windows-rust-artifacts
path: |
${{ env.RELEASE_ARCHIVE }}
release-archive.filename
trigger-release:
needs: [ubuntu-rust, windows-rust, macos-rust, ubuntu-gcc6, ubuntu-codecov]
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/')
runs-on: ubuntu-latest
steps:
- name: Start Release workflow
uses: benc-uk/workflow-dispatch@v1
with:
workflow: Release
token: ${{ secrets.PERSONAL_TOKEN }}
inputs: '{ "github_ref": "${{ github.ref }}", "run_id": "${{ github.run_id }}" }'