Skip to content

Prepare for 0.17.0-alpha #1629

Prepare for 0.17.0-alpha

Prepare for 0.17.0-alpha #1629

Workflow file for this run

name: rust
on:
push:
branches:
- main
tags:
- "*"
pull_request:
branches:
- main
env:
RUST_BACKTRACE: 1
CARGO_TERM_COLOR: always
jobs:
linter:
name: Linter
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: Install Rust
with:
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
name: Linter
with:
command: fmt
args: --all -- --check
build:
name: Build
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
include:
- name: Workspace default
folder: "."
opts: -r
- name: Workspace All-features
folder: "."
opts: --all-features
- name: RINEX Default
folder: rinex
opts: -r
- name: RINEX Observations
folder: rinex
opts: --features "obs"
- name: RINEX Navigation
folder: rinex
opts: --features "nav"
- name: RINEX QC
folder: rinex
opts: --features "qc"
- name: RINEX Meteo
folder: rinex
opts: --features "meteo"
- name: RINEX Clock
folder: rinex
opts: --features "clock"
- name: ANTEX
folder: rinex
opts: --features "antex"
- name: DORIS RINEX
folder: rinex
opts: --features "doris"
- name: RINEX Processing
folder: rinex
opts: --features "processing"
- name: RINEX Full
folder: rinex
opts: --features "full"
- name: RINEX All-features
folder: rinex
opts: --all-features
- name: SP3 default
folder: sp3
opts: -r
- name: SP3 QC
folder: sp3
opts: --features "qc"
- name: SP3 Processing
folder: sp3
opts: --features "processing"
- name: SP3 All-features
folder: sp3
opts: --all-features
- name: RINEX-QC Default
folder: rinex-qc
opts: -r
- name: RINEX-QC SP3
folder: rinex-qc
opts: --features "sp3"
- name: RINEX-QC All-features
folder: rinex-qc
opts: --all-features
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: Install Rust
with:
toolchain: stable
override: true
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- name: ${{ matrix.name }}
run: |
cd ${{ matrix.folder }} && cargo clean && cargo update && cargo build ${{ matrix.opts }}
tests:
name: Tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: Install Rust
with:
toolchain: stable
override: true
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- uses: actions-rs/cargo@v1
name: Test (all features)
with:
command: test
args: --all-features
documentation:
name: Documentation
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: Install nightly
with:
toolchain: nightly
override: true
- name: Install Dependencies
run: |
sudo apt-get update
sudo apt-get install -y libudev-dev
- name: Documentation
run: |
./tools/builddoc.sh
windows-build:
name: Windows
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: Install Rust
with:
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
name: Build (default)
with:
command: build
args: --release
- uses: actions-rs/cargo@v1
name: Build (all features)
with:
command: build
args: --all-features --release
macos-build:
name: MacOS
runs-on: macos-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
name: Install Rust
with:
toolchain: stable
override: true
- uses: actions-rs/cargo@v1
name: Build (default)
with:
command: build
args: --release
- uses: actions-rs/cargo@v1
name: Build (all features)
with:
command: build
args: --all-features --release
release:
name: Release Libraries
runs-on: ubuntu-latest
needs: [linter, build, documentation, windows-build, macos-build]
if: github.ref_type == 'tag'
strategy:
matrix:
include:
- crate: rinex-qc-traits
- crate: rinex
- crate: sp3
- crate: sinex
- crate: rinex-qc
- crate: ublox-rnx
- crate: rnx2crx
- crate: crx2rnx
- crate: rinex-cli
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install stable
uses: actions-rs/toolchain@v1
with:
toolchain: stable
- name: Publish
env:
TOKEN: ${{ secrets.CRATES_IO_TOKEN }}
run: |
cargo login $TOKEN
cargo publish -p ${{ matrix.crate }} --allow-dirty