navi/.github/workflows/ci.yml

120 lines
2.9 KiB
YAML
Raw Normal View History

2020-03-04 21:01:23 +00:00
# Based on https://github.com/actions-rs/meta/blob/master/recipes/quickstart.md
#
# While our "example" application has the platform-specific code,
# for simplicity we are compiling and testing everything on the Ubuntu environment only.
# For multi-OS testing see the `cross.yml` workflow.
on: [push]
name: CI
2020-03-04 21:01:23 +00:00
jobs:
check:
name: Check
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Run cargo check
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: check
test:
name: Tests
2020-03-04 21:01:23 +00:00
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
- name: Prep environment to test compiled-in paths
run: |
mkdir /tmp/cheats-dir
touch /tmp/config-file
- name: Run cargo test (with compiled-in paths)
uses: actions-rs/cargo@v1
continue-on-error: false
env:
2022-02-14 13:51:46 +00:00
NAVI_PATH: /tmp/cheats-dir
NAVI_CONFIG: /tmp/config-file
with:
command: test
2020-03-04 21:01:23 +00:00
- name: Run cargo test
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: test
2021-09-16 12:11:35 +00:00
- name: Install deps
run: |
_install() {
if command -v "$1"; then
return 0;
fi
sudo apt-get install "$1" || sudo apt install "$1" || brew install "$1"
};
_install_many() {
for dep in $@; do
_install "$dep"
done
}
_install_many git bash npm tmux
- name: Install fzf
run: git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf; yes | ~/.fzf/install;
- name: Install tealdeer
run: sudo npm install -g tldr
- name: Run bash tests
run: ./tests/run
2020-03-04 21:01:23 +00:00
lints:
name: Lints
runs-on: ubuntu-latest
steps:
- name: Checkout sources
uses: actions/checkout@v2
- name: Install stable toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: rustfmt, clippy
- name: Run cargo fmt
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: fmt
args: --all -- --check
- name: Run cargo clippy
uses: actions-rs/cargo@v1
continue-on-error: false
with:
command: clippy
args: -- -D warnings