Skip to content

v2

v2 #42

Workflow file for this run

name: v2
on:
push:
tags:
- v2*
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: x86_64-unknown-linux-gnu
- name: Create artifacts directory
run: mkdir chainsaw
- name: Build
run: cargo build --all --release --target x86_64-unknown-linux-gnu && strip target/x86_64-unknown-linux-gnu/release/chainsaw
- name: Upload binary artifact
uses: actions/upload-artifact@v3
with:
name: linux-binary
path: target/x86_64-unknown-linux-gnu/release/chainsaw
if-no-files-found: error
retention-days: 1
- name: Move files to artifacts
run: mv target/x86_64-unknown-linux-gnu/release/chainsaw mappings LICENCE README.md chainsaw/
- name: Create ZIP File
run: tar -czf chainsaw_x86_64-unknown-linux-gnu.tar.gz chainsaw/*
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: chainsaw_x86_64-unknown-linux-gnu.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-linux-static:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install musl toolchain
run: sudo apt-get install -y linux-musl-dev musl-dev musl-tools
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
profile: minimal
override: true
target: x86_64-unknown-linux-musl
- name: Create artifacts directory
run: mkdir chainsaw
- name: Build
run: cargo build --all --release --target x86_64-unknown-linux-musl && strip target/x86_64-unknown-linux-musl/release/chainsaw
- name: Upload binary artifact
uses: actions/upload-artifact@v3
with:
name: linux-static-binary
path: target/x86_64-unknown-linux-musl/release/chainsaw
if-no-files-found: error
retention-days: 1
- name: Move files to artifacts
run: mv target/x86_64-unknown-linux-musl/release/chainsaw mappings LICENCE README.md chainsaw/
- name: Create ZIP File
run: tar -czf chainsaw_x86_64-unknown-linux-musl.tar.gz chainsaw/*
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: chainsaw_x86_64-unknown-linux-musl.tar.gz
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-win:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install latest rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
default: true
override: true
- name: Build
run: cargo build --all --release
- name: Upload binary artifact
uses: actions/upload-artifact@v3
with:
name: win-binary
path: target/release/chainsaw.exe
if-no-files-found: error
retention-days: 1
- name: Create artifacts directory
run: mkdir chainsaw
- name: Move files to artifacts
run: move target/release/chainsaw.exe chainsaw/ ; move chainsaw/ ; move mappings chainsaw; move LICENCE chainsaw; move README.md chainsaw/
- name: Create ZIP File
shell: pwsh
run: Compress-Archive -Path .\chainsaw\ -Destination chainsaw_x86_64-pc-windows-msvc.zip
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: chainsaw_x86_64-pc-windows-msvc.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-mac:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive
- name: Install latest rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: x86_64-apple-darwin
default: true
override: true
- name: Create artifacts directory
run: mkdir chainsaw
- name: Build for mac
run: cargo build --all --release && strip target/release/chainsaw
- name: Upload binary artifact
uses: actions/upload-artifact@v3
with:
name: mac-binary
path: target/release/chainsaw
if-no-files-found: error
retention-days: 1
- name: Move files to artifacts
run: mv target/release/chainsaw mappings LICENCE README.md chainsaw/
- name: Create ZIP File
run: zip -qq -r chainsaw_x86_64-apple-darwin.zip chainsaw
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: chainsaw_x86_64-apple-darwin.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
build-complete:
needs: [build-linux, build-linux-static, build-win, build-mac]
runs-on: ubuntu-latest
steps:
- name: Create artifacts directory
run: mkdir chainsaw
- name: Checkout
uses: actions/checkout@v2
with:
path: ./chainsaw-root
- name: Checkout Sigma Repo
uses: actions/checkout@v3
with:
repository: SigmaHQ/sigma
path: ./sigma
- name: Checkout EVTX Samples Repo
uses: actions/checkout@v3
with:
repository: sbousseaden/EVTX-ATTACK-SAMPLES
path: ./EVTX-ATTACK-SAMPLES
- name: Move files to artifacts
run: mv sigma EVTX-ATTACK-SAMPLES chainsaw/
- name: Download build-linux binary
uses: actions/download-artifact@v3
with:
name: linux-binary
path: ./chainsaw-linux
- name: Download build-linux-static binary
uses: actions/download-artifact@v3
with:
name: linux-static-binary
path: ./chainsaw-linux-static
- name: Download build-win binary
uses: actions/download-artifact@v3
with:
name: win-binary
path: ./chainsaw-win
- name: Download build-mac binary
uses: actions/download-artifact@v3
with:
name: mac-binary
path: ./chainsaw-mac
- name: build zip file content
run: mv ./chainsaw-linux/chainsaw ./chainsaw/chainsaw_x86_64-unknown-linux-gnu; mv ./chainsaw-linux-static/chainsaw ./chainsaw/chainsaw_x86_64-unknown-linux-mus; mv ./chainsaw-win/chainsaw.exe ./chainsaw/chainsaw_x86_64-pc-windows-msvc.exe; mv ./chainsaw-mac/chainsaw ./chainsaw/chainsaw_x86_64-apple-darwin ; mv ./chainsaw-root/mappings ./chainsaw-root/LICENCE ./chainsaw-root/README.md ./chainsaw-root/rules/ ./chainsaw/
- name: Create ZIP File
run: zip -r chainsaw_all_platforms+rules+examples.zip chainsaw/
- name: Remove Samples
run: rm -rf chainsaw/EVTX-ATTACK-SAMPLES/
- name: Create ZIP File
run: zip -r chainsaw_all_platforms+rules.zip chainsaw/
- name: Release
uses: softprops/action-gh-release@v1
if: startsWith(github.ref, 'refs/tags/')
with:
files: |
chainsaw_all_platforms+rules.zip
chainsaw_all_platforms+rules+examples.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}