Skip to content

test(ci): Bundle

test(ci): Bundle #13

Workflow file for this run

name: Build
on:
push:
pull_request:
jobs:
build:
name: Build
runs-on: windows-latest
strategy:
fail-fast: false
matrix:
component: [shellcode_utils, loader, shellcode_stage1, shellcode_stage1_network, shellcode_stage2, shellcode_gen, daemon, server]
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@master
with:
toolchain: nightly
- name: Build ${{ matrix.component }}
working-directory: crates/${{ matrix.component }}
run: cargo build --release --all-features
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: Binaries-${{ matrix.component }}
path: |
README.md
LICENSE
crates/${{ matrix.component }}/target/release/${{ matrix.component }}.exe
crates/${{ matrix.component }}/target/x86_64-pc-windows-msvc/release/${{ matrix.component }}.exe
generate:
name: Generate payloads
runs-on: windows-latest
needs: build
steps:
- name: Download All Artifacts
uses: actions/download-artifact@v4
with:
path: .
pattern: Binaries-*
merge-multiple: true
- name: List files
run: |
mkdir output
tree
- name: Generate payloads
working-directory: crates\shellcode_gen
run: |
.\target\release\shellcode_gen.exe ${{ github.workspace }}\output\
- name: List files
run: dir output\
- name: Copy artifact binaries to output directory
run: |
xcopy README.md output\
xcopy LICENSE output\
xcopy crates\daemon\target\release\daemon.exe output\
xcopy crates\server\target\release\server.exe output\
- name: List files
run: dir output\
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: Release
path: |
output\**
bundle:
name: Bundle
runs-on: windows-latest
needs: [generate]
steps:
- name: Download artifacts
uses: actions/download-artifact@v4
with:
name: Release
path: release\
- run: |
tree
dir
ls -R
- name: Bundle binaries
run: 7z a -tzip Solstice.zip .\release\**
- name: Release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
with:
files: Solstice.zip