Update README.md #2
Workflow file for this run
This file contains hidden or 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: 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 |