bump versions #34
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: Rust | |
on: [push] | |
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 | |
components: rustfmt, clippy | |
- name: Install nauty | |
run: sudo apt-get install nauty libnauty2-dev -y | |
- name: Run cargo-about | |
run: cargo install cargo-about && | |
cargo about init && | |
cargo about generate about.hbs > licenses.html | |
- name: Run cargo check | |
uses: actions-rs/cargo@v1 | |
with: | |
command: check | |
- name: Run cargo fmt | |
uses: actions-rs/cargo@v1 | |
with: | |
command: fmt | |
args: --all -- --check | |
- name: Run cargo clippy | |
uses: actions-rs/cargo@v1 | |
with: | |
command: clippy | |
args: -- -D warnings | |
- name: Upload licenses.html | |
uses: actions/upload-artifact@v2 | |
with: | |
name: about-licenses | |
path: ./licenses.html | |
test: | |
name: Test with coverage | |
runs-on: ubuntu-latest | |
container: | |
image: xd009642/tarpaulin | |
options: --security-opt seccomp=unconfined | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Install stable toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
override: true | |
- name: Install libclang for bindgen | |
run: apt-get update && apt-get install llvm-dev libclang-dev clang -y | |
- name: Install nauty | |
run: apt-get install nauty libnauty2-dev -y | |
- name: Run tests with tarpaulin | |
run: cargo tarpaulin --avoid-cfg-tarpaulin --verbose --out Html | |
- name: Upload tarpaulin-report.html | |
uses: actions/upload-artifact@v2 | |
with: | |
name: tarpaulin-report | |
path: ./tarpaulin-report.html | |
flamegraph: | |
name: Flamegraph generation | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Install flamegraph | |
run: cargo install flamegraph | |
- name: Fix settings | |
run: echo -1 | sudo tee /proc/sys/kernel/perf_event_paranoid && | |
sudo chmod 666 /proc/kallsyms && | |
echo 0 | sudo tee /proc/sys/kernel/kptr_restrict | |
- name: Install nauty | |
run: sudo apt-get install nauty libnauty2-dev -y | |
- name: Use flamegraph | |
run: cargo flamegraph -c "record -F 997 --call-graph dwarf -g -o ./perf.data" -- -pclss ./example.dre | |
- name: Upload flamegraph.svg | |
uses: actions/upload-artifact@v2 | |
with: | |
name: flamegraph | |
path: ./flamegraph.svg | |
publish-pages: | |
name: Publish to pages | |
runs-on: ubuntu-latest | |
needs: [check, test, flamegraph] | |
steps: | |
- name: Download licenses.html | |
uses: actions/download-artifact@v2 | |
with: | |
name: about-licenses | |
path: public | |
- name: Download tarpaulin-report.html | |
uses: actions/download-artifact@v2 | |
with: | |
name: tarpaulin-report | |
path: public | |
- name: Download flamegraph.svg | |
uses: actions/download-artifact@v2 | |
with: | |
name: flamegraph | |
path: public | |
- name: Generate index.html | |
run: | | |
cat > public/index.html <<EOL | |
<!doctype html> | |
<html> | |
<head> | |
<title>Descriptive Quotient Graphs Working Repository Status</title> | |
</head> | |
<body> | |
<p> <a href="./licenses.html">Licenses</a> </p> | |
<p> <a href="./tarpaulin-report.html">Test Coverage</a> </p> | |
<p> <a href="./flamegraph.svg">Flamegraph</a> </p> | |
</body> | |
</html> | |
EOL | |
- name: Deploy to Github Pages | |
if: success() | |
uses: crazy-max/ghaction-github-pages@v2 | |
with: | |
target_branch: gh-pages | |
build_dir: public | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
Validate-CITATION-cff: | |
runs-on: ubuntu-latest | |
name: Validate CITATION.cff | |
env: | |
GITHUB_PAT: ${{ secrets.GITHUB_TOKEN }} | |
RSPM: "https://packagemanager.rstudio.com/cran/__linux__/focal/latest" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
# This is needed for workflows running on | |
# ubuntu-20.04 or later | |
- name: Install V8 | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get install -y libv8-dev | |
- name: Validate CITATION.cff | |
uses: dieghernan/cff-validator@main | |
# Upload artifact | |
- uses: actions/upload-artifact@v2 | |
if: failure() | |
with: | |
name: citation-cff-errors | |
path: citation_cff_errors.md |