diff --git a/.github/workflows/v2.yml b/.github/workflows/v2.yml index 7776ee5..1e94764 100644 --- a/.github/workflows/v2.yml +++ b/.github/workflows/v2.yml @@ -1,19 +1,18 @@ +--- name: v2 on: push: - tags: - - v2* + 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: @@ -21,13 +20,11 @@ jobs: 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 - + 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: @@ -35,13 +32,11 @@ jobs: 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/ - + 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/') @@ -49,26 +44,21 @@ jobs: files: chainsaw_x86_64-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: @@ -76,17 +66,14 @@ jobs: 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/ - + 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/') @@ -94,16 +81,13 @@ jobs: files: chainsaw_x86_64-pc-windows-msvc.zip env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - build-mac: - runs-on: macos-latest - + 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: @@ -111,13 +95,10 @@ jobs: 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: @@ -125,13 +106,10 @@ jobs: 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/') @@ -139,65 +117,96 @@ jobs: 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 + 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] + 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-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-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/ - + run: mv ./chainsaw-linux/chainsaw ./chainsaw/chainsaw_x86_64-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/')