ci: add in compiler for target #57
Workflow file for this run
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: 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-arm: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
with: | |
submodules: recursive | |
- name: Install Target | |
run: apt install gcc-aarch64-linux-gnu | |
- name: Install Rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
profile: minimal | |
override: true | |
target: aarch64-unknown-linux-gnu | |
- name: Create artifacts directory | |
run: mkdir chainsaw | |
- name: Build | |
run: cargo build --all --release --target aarch64-unknown-linux-gnu && strip | |
target/aarch64-unknown-linux-gnu/release/chainsaw | |
- name: Upload binary artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: linux-binary | |
path: target/aarch64-unknown-linux-gnu/release/chainsaw | |
if-no-files-found: error | |
retention-days: 1 | |
- name: Move files to artifacts | |
run: mv target/aarch64-unknown-linux-gnu/release/chainsaw mappings LICENCE | |
README.md chainsaw/ | |
- name: Create ZIP File | |
run: tar -czf chainsaw_aarch64-unknown-linux-gnu.tar.gz chainsaw/* | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: chainsaw_aarch64-unknown-linux-gnu.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-13 | |
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-mac-arm: | |
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: aarch64-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-arm | |
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_aarch64-apple-darwin.zip chainsaw | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
if: startsWith(github.ref, 'refs/tags/') | |
with: | |
files: chainsaw_aarch64-apple-darwin.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
build-complete: | |
needs: [build-linux, build-win, build-mac, build-mac-arm] | |
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-arm binary | |
uses: actions/download-artifact@v3 | |
with: | |
name: linux-binary-arm | |
path: ./chainsaw-linux-arm | |
- 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: Download build-mac-arm binary | |
uses: actions/download-artifact@v3 | |
with: | |
name: mac-binary-arm | |
path: ./chainsaw-mac-arm | |
- name: build zip file content | |
run: mv ./chainsaw-linux/chainsaw ./chainsaw/chainsaw_x86_64-unknown-linux-gnu; | |
mv ./chainsaw-linux-arm/chainsaw ./chainsaw/chainsaw_aarch64-unknown-linux-gnu; | |
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-mac-arm/chainsaw | |
./chainsaw/chainsaw_aarch64-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 }} |