Skip to content

Merge pull request #64 from axiomhq/rel-0.11.0 #233

Merge pull request #64 from axiomhq/rel-0.11.0

Merge pull request #64 from axiomhq/rel-0.11.0 #233

Workflow file for this run

name: CI
on:
pull_request:
branches:
- main
push:
branches:
- main
tags:
- "v*"
# Make sure the workflow is only ever run for the latest changes in the PR.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
rust_fmt_check:
name: Rustfmt check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install rust
uses: actions-rs/toolchain@v1
with:
components: rustfmt
- name: Run cargo fmt
uses: actions-rs/cargo@v1
with:
command: fmt
args: -- --check
clippy_check:
name: Clippy check
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install clippy
run: rustup component add clippy
- name: Run clippy check
uses: actions-rs/clippy-check@v1
with:
token: ${{ secrets.GITHUB_TOKEN }}
test:
name: Run tests with ${{ matrix.runtime }} on ${{ matrix.environment }}
runs-on: ubuntu-latest
strategy:
max-parallel: 1
matrix:
runtime: [Tokio, async-std]
environment: [development, staging]
include:
- runtime: async-std
flags: --no-default-features --features async-std,default-tls
- environment: development
url: TESTING_DEV_API_URL
token: TESTING_DEV_TOKEN
org_id: TESTING_DEV_ORG_ID
flags: --features integration-tests
- environment: staging
url: TESTING_STAGING_API_URL
token: TESTING_STAGING_TOKEN
org_id: TESTING_STAGING_ORG_ID
flags: --features integration-tests
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install rust
uses: actions-rs/toolchain@v1
- name: Run cargo test
uses: actions-rs/cargo@v1
env:
AXIOM_URL: ${{ secrets[matrix.url] }}
AXIOM_TOKEN: ${{ secrets[matrix.token] }}
AXIOM_ORG_ID: ${{ secrets[matrix.org_id] }}
AXIOM_DATASET_SUFFIX: ${{ github.run_id }}
with:
command: test
args: ${{ matrix.flags }} -- --test-threads 1
build_examples:
name: Build examples
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Install rust
uses: actions-rs/toolchain@v1
- name: Run cargo build --examples
uses: actions-rs/cargo@v1
with:
command: build
args: --examples
publish_on_crates_io:
name: Publish on crates.io
runs-on: ubuntu-latest
if: github.repository_owner == 'axiomhq' && startsWith(github.ref, 'refs/tags') # Only on tags
needs:
- rust_fmt_check
- clippy_check
- test
- build_examples
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
- uses: actions-rs/cargo@v1
with:
command: publish
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}