Skip to content

Update README.md

Update README.md #2

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
env:
CARGO_TERM_COLOR: always
jobs:
build-release:
name: Build Release Assets
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
name: vulfy-x86_64-unknown-linux-gnu
- os: windows-latest
target: x86_64-pc-windows-msvc
name: vulfy-x86_64-pc-windows-msvc.exe
- os: macos-13 # Intel runner for x86_64
target: x86_64-apple-darwin
name: vulfy-x86_64-apple-darwin
- os: macos-latest # Apple Silicon runner for arm64
target: aarch64-apple-darwin
name: vulfy-aarch64-apple-darwin
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Cache Cargo registry
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-${{ matrix.target }}-cargo-release-${{ hashFiles('**/Cargo.lock') }}
restore-keys: |
${{ runner.os }}-${{ matrix.target }}-cargo-
- name: Install system dependencies (Ubuntu)
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install -y libssl-dev pkg-config
- name: Install system dependencies (macOS)
if: startsWith(matrix.os, 'macos')
run: |
brew install openssl pkg-config
echo "OPENSSL_ROOT_DIR=$(brew --prefix openssl)" >> $GITHUB_ENV
echo "PKG_CONFIG_PATH=$(brew --prefix openssl)/lib/pkgconfig" >> $GITHUB_ENV
- name: Build release binary
run: cargo build --release --target ${{ matrix.target }}
- name: Strip binary (Unix)
if: matrix.os != 'windows-latest'
run: strip target/${{ matrix.target }}/release/vulfy
- name: Copy and rename binary (Unix)
if: matrix.os != 'windows-latest'
run: cp target/${{ matrix.target }}/release/vulfy ${{ matrix.name }}
- name: Copy and rename binary (Windows)
if: matrix.os == 'windows-latest'
run: cp target/${{ matrix.target }}/release/vulfy.exe ${{ matrix.name }}
- name: Upload binary artifact
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.name }}
path: ${{ matrix.name }}
create-release:
name: Create Release
runs-on: ubuntu-latest
needs: build-release
permissions:
contents: write
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts
- name: Get version from tag
id: get_version
run: echo "version=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Create Release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
name: Release ${{ steps.get_version.outputs.version }}
body: |
# Vulfy ${{ steps.get_version.outputs.version }}
Cross-language vulnerability scanner with automation features.
## Features
- Multi-language support (Rust, Node.js, Python, PHP, .NET, C++)
- Automation and scheduling capabilities
- Webhook notifications (Discord, Slack)
- Advanced filtering and policies
## Binaries
Choose the appropriate binary for your platform:
- **Linux x64**: `vulfy-x86_64-unknown-linux-gnu`
- **Windows x64**: `vulfy-x86_64-pc-windows-msvc.exe`
- **macOS Intel**: `vulfy-x86_64-apple-darwin`
- **macOS Apple Silicon**: `vulfy-aarch64-apple-darwin`
## Installation
1. Download the appropriate binary
2. Make it executable: `chmod +x vulfy-*` (Linux/macOS)
3. Move to PATH: `sudo mv vulfy-* /usr/local/bin/vulfy`
4. Run: `vulfy --help`
files: |
./artifacts/vulfy-x86_64-unknown-linux-gnu/vulfy-x86_64-unknown-linux-gnu
./artifacts/vulfy-x86_64-pc-windows-msvc.exe/vulfy-x86_64-pc-windows-msvc.exe
./artifacts/vulfy-x86_64-apple-darwin/vulfy-x86_64-apple-darwin
./artifacts/vulfy-aarch64-apple-darwin/vulfy-aarch64-apple-darwin
draft: false
prerelease: false
publish-crates:
name: Publish to crates.io
needs: create-release
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/v')
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@stable
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install -y libssl-dev pkg-config
- name: Login to crates.io
run: cargo login ${{ secrets.CRATES_TOKEN }}
- name: Publish to crates.io
run: cargo publish --allow-dirty