Skip to content

Install latest verison of rust and build binaries. #66

Install latest verison of rust and build binaries.

Install latest verison of rust and build binaries. #66

Workflow file for this run

name: test
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- "*"
workflow_dispatch:
defaults:
run:
shell: bash
env:
CARGO_TERM_COLOR: always
ROW_COLOR: always
CLICOLOR: 1
MDBOOK_VERSION: 0.4.37
LINKCHECK_VERSION: 0.7.7
RUST_VERSION: 1.78.0
jobs:
unit_test:
name: Unit test on ${{ matrix.os }} [${{ matrix.mode }}]
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-22.04]
mode: [debug, release]
include:
- mode: 'debug'
mode_option: ''
- mode: 'release'
mode_option: '--release'
steps:
- uses: actions/[email protected]
- name: Update rust
run: rustup install "$RUST_VERSION" --no-self-update && rustup default "${RUST_VERSION}"
- uses: actions/[email protected]
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-rust-${{ env.RUST_VERSION }}-cargo-unit-test-${{ matrix.mode }}-${{ hashFiles('**/Cargo.lock') }}
- name: Build
run: cargo build ${{ matrix.mode_option }} --verbose
- name: Run tests
run: cargo test ${{ matrix.mode_option }} --verbose
execute_tutorials:
name: Execute tutorials
runs-on: ubuntu-22.04
steps:
- uses: actions/[email protected]
- name: Update rust
run: rustup install "$RUST_VERSION" --no-self-update && rustup default "${RUST_VERSION}"
- uses: actions/[email protected]
with:
path: |
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-rust-${{ env.RUST_VERSION }}-cargo-execute-tutorials-${{ hashFiles('**/Cargo.lock') }}
- name: Install
run: cargo install --path . --locked --verbose
- name: Run hello.sh
run: bash hello.sh
working-directory: doc/src/guide/tutorial
env:
ROW_YES: "true"
- name: Run group.sh
run: bash group.sh
working-directory: doc/src/guide/tutorial
env:
ROW_YES: "true"
# The signac test requires python
- name: Set up Python
uses: actions/[email protected]
with:
python-version: '3.12'
- run: pip install -r .github/workflows/signac-requirements.txt
- name: Run signac.sh
run: bash signac.sh
working-directory: doc/src/guide/python
env:
ROW_YES: "true"
build_documentation:
name: Build documentation
runs-on: ubuntu-22.04
steps:
- uses: actions/[email protected]
- name: Update rust
run: rustup install "$RUST_VERSION" --no-self-update && rustup default "${RUST_VERSION}"
- name: Install mdbook
run: |
mkdir -p "$HOME/.cargo/bin"
curl -sSL "https://github.com/rust-lang/mdBook/releases/download/v$MDBOOK_VERSION/mdbook-v$MDBOOK_VERSION-x86_64-unknown-linux-gnu.tar.gz" | tar -xvz --directory "$HOME/.cargo/bin"
- name: Install mdbook-linkcheck
run: |
curl -sSL "https://github.com/Michael-F-Bryan/mdbook-linkcheck/releases/download/v$LINKCHECK_VERSION/mdbook-linkcheck.x86_64-unknown-linux-gnu.zip" -o mdbook-linkcheck.zip
unzip mdbook-linkcheck.zip -d "$HOME/.cargo/bin"
chmod a+x "$HOME/.cargo/bin/mdbook-linkcheck"
- name: Add linkcheck configuration
run: |
# echo -e "[output.linkcheck]\nfollow-web-links=true" >> doc/book.toml #TODO: enable web-link checks after row is public
echo -e "[output.linkcheck]\nfollow-web-links=false" >> doc/book.toml
cat doc/book.toml
- name: Build documentation
run: mdbook build doc
env:
RUST_LOG: "mdbook=info,linkcheck=warn,reqwest=debug"
tests_complete:
name: All tests
if: always()
needs: [unit_test, execute_tutorials, build_documentation]
runs-on: ubuntu-latest
steps:
- run: jq --exit-status 'all(.result == "success")' <<< '${{ toJson(needs) }}'
- name: Done
run: exit 0