CI #27
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: ~ | |
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 }}" }' |