92 lines
2.7 KiB
YAML
92 lines
2.7 KiB
YAML
|
name: test
|
||
|
on:
|
||
|
workflow_dispatch:
|
||
|
push:
|
||
|
branches: [main]
|
||
|
pull_request:
|
||
|
|
||
|
concurrency:
|
||
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
|
||
|
cancel-in-progress: true
|
||
|
|
||
|
jobs:
|
||
|
testbed:
|
||
|
runs-on: [self-hosted, intel-cpu, 8-cpu, ci]
|
||
|
container:
|
||
|
image: ubuntu:22.04
|
||
|
steps:
|
||
|
- name: Checkout repository
|
||
|
uses: actions/checkout@v4
|
||
|
|
||
|
- name: Install dependencies
|
||
|
run: |
|
||
|
apt update
|
||
|
DEBIAN_FRONTEND=noninteractive apt install -y pkg-config protobuf-compiler libssl-dev curl build-essential git-all gfortran
|
||
|
|
||
|
- name: Install Rust toolchain
|
||
|
uses: actions-rust-lang/setup-rust-toolchain@v1
|
||
|
with:
|
||
|
rustflags: ''
|
||
|
toolchain: nightly
|
||
|
|
||
|
- name: Install Python 3.10
|
||
|
uses: actions/setup-python@v4
|
||
|
with:
|
||
|
python-version: '3.10'
|
||
|
|
||
|
- name: Install node 18
|
||
|
uses: actions/setup-node@v3
|
||
|
with:
|
||
|
node-version: 18
|
||
|
|
||
|
- name: Install yarn
|
||
|
run: |
|
||
|
npm i -g yarn
|
||
|
|
||
|
- name: Set up cargo cache
|
||
|
uses: actions/cache@v3
|
||
|
continue-on-error: false
|
||
|
with:
|
||
|
path: |
|
||
|
~/.cargo/bin/
|
||
|
~/.cargo/registry/index/
|
||
|
~/.cargo/registry/cache/
|
||
|
~/.cargo/git/db/
|
||
|
target/
|
||
|
key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
|
||
|
restore-keys: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.lock') }}
|
||
|
|
||
|
- name: Build project
|
||
|
run: cargo build -r
|
||
|
|
||
|
- name: Run testbed
|
||
|
run: cargo run --bin testbed -r -- --api-token $API_TOKEN -r `pwd`/crates/testbed/repositories-ci.yaml
|
||
|
if: github.event_name == 'push' || github.event_name == 'pull_request'
|
||
|
env:
|
||
|
API_TOKEN: ${{ secrets.API_TOKEN }}
|
||
|
|
||
|
- name: Run testbed
|
||
|
run: cargo run --bin testbed -r -- --api-token $API_TOKEN
|
||
|
if: github.event_name == 'workflow_dispatch'
|
||
|
env:
|
||
|
API_TOKEN: ${{ secrets.API_TOKEN }}
|
||
|
|
||
|
- name: Find Comment
|
||
|
uses: peter-evans/find-comment@v2
|
||
|
id: fc
|
||
|
if: github.event_name == 'pull_request'
|
||
|
with:
|
||
|
issue-number: ${{ github.event.pull_request.number }}
|
||
|
comment-author: 'github-actions[bot]'
|
||
|
body-includes: '| Repository name | Source type | Average hole completion time (s) | Pass percentage |'
|
||
|
|
||
|
- name: Create or update comment
|
||
|
if: github.event_name == 'pull_request'
|
||
|
uses: peter-evans/create-or-update-comment@v3
|
||
|
with:
|
||
|
comment-id: ${{ steps.fc.outputs.comment-id }}
|
||
|
issue-number: ${{ github.event.pull_request.number }}
|
||
|
body-path: results.md
|
||
|
edit-mode: replace
|
||
|
|