mirror of
https://github.com/mandiant/capa-rules
synced 2026-06-08 15:41:20 +00:00
63 lines
1.9 KiB
YAML
63 lines
1.9 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches: [ master ]
|
|
pull_request:
|
|
branches: [ master ]
|
|
|
|
jobs:
|
|
rule_linter:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# We check the submodules separately as the rules submodule's reference may not be our PR/master
|
|
- name: Checkout capa without submodules
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: fireeye/capa
|
|
- name: Checkout capa-rules
|
|
uses: actions/checkout@v2
|
|
with:
|
|
path: rules
|
|
- name: Checkout capa-testfiles
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: fireeye/capa-testfiles
|
|
path: tests/data
|
|
- name: Set up Python 3.8
|
|
uses: actions/setup-python@v2
|
|
with:
|
|
python-version: 3.8
|
|
# We don't need vivisect, so we can install capa using Python3
|
|
- name: Install capa
|
|
run: pip install -e .
|
|
- name: Run rule linter
|
|
run: python scripts/lint.py rules/
|
|
# Ensure that new rules are compatible with latest release
|
|
rules_latest_release:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout capa-rules
|
|
uses: actions/checkout@v2
|
|
with:
|
|
path: rules
|
|
- name: Checkout capa-testfiles
|
|
uses: actions/checkout@v2
|
|
with:
|
|
repository: fireeye/capa-testfiles
|
|
path: tests/data
|
|
- name: Get latest release executable name
|
|
run: echo "zip_name=capa-$(curl -s https://api.github.com/repos/fireeye/capa/releases/latest |
|
|
jq .name |
|
|
tr -d '"')-linux.zip" >> $GITHUB_ENV
|
|
- name: Fetch latest capa release executable
|
|
uses: robinraju/release-downloader@v1
|
|
with:
|
|
repository: "fireeye/capa"
|
|
latest: true
|
|
fileName: ${{ env.zip_name }}
|
|
- name: Unzip
|
|
run: unzip ${{ env.zip_name }} -d latest-release
|
|
- name: Run latest release with current rules
|
|
run: latest-release/capa -r rules/ tests/data/9324d1a8ae37a36ae560c37448c9705a.exe_
|