whamCloud Release #11
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: whamCloud Release | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| description: 'Release version (e.g., 1.0.0)' | |
| required: true | |
| default: '1.0.0' | |
| prerelease: | |
| description: 'Mark as pre-release' | |
| required: false | |
| type: boolean | |
| default: false | |
| permissions: | |
| contents: write | |
| jobs: | |
| build-and-release: | |
| name: Build and Release VictoriaLogs | |
| runs-on: [self-hosted, victoria-logs] | |
| steps: | |
| - name: Checkout VictoriaLogs repository | |
| uses: actions/checkout@v5 | |
| with: | |
| fetch-depth: 0 | |
| path: VictoriaLogs | |
| - name: Build VictoriaLogs tarballs | |
| working-directory: VictoriaLogs | |
| run: | | |
| make -f Makefile.whamcloud whamcloud-release VERSION=${{ github.event.inputs.version }} | |
| env: | |
| WHAMCLOUD_VERSION: ${{ github.event.inputs.version }} | |
| - name: List build artifacts | |
| working-directory: VictoriaLogs | |
| run: | | |
| echo "Build artifacts:" | |
| ls -lh bin/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| ls -lh bin/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| ls -lh bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| ls -lh bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| - name: Create Release | |
| id: create_release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: v${{ github.event.inputs.version }} | |
| release_name: VictoriaLogs v${{ github.event.inputs.version }} | |
| body: | | |
| # VictoriaLogs v${{ github.event.inputs.version }} | |
| whamCloud custom build of VictoriaLogs for Linux AMD64. | |
| ## 📦 What's Included | |
| This release contains: | |
| - **victoria-logs** - Main VictoriaLogs server for log management and analytics | |
| - **vlagent** - Log collection agent for shipping logs to VictoriaLogs | |
| - **vlogscli** - Interactive command-line tool for querying VictoriaLogs | |
| ## 🚀 Installation Options | |
| ### Option 1: RPM Packages (Recommended for EL8/EL9/RHEL) | |
| #### Enterprise Linux 8 / RHEL 8 / Rocky Linux 8 / AlmaLinux 8 | |
| ```bash | |
| # Download and install victorialogs | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/victorialogs-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| sudo dnf install -y ./victorialogs-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| # Download and install vlagent (optional) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlagent-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| sudo dnf install -y ./vlagent-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| # Download and install vlogscli (optional) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlogscli-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| sudo dnf install -y ./vlogscli-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| # Start services | |
| sudo systemctl enable --now victorialogs | |
| sudo systemctl status victorialogs | |
| ``` | |
| #### Enterprise Linux 9 / RHEL 9 / Rocky Linux 9 / AlmaLinux 9 | |
| ```bash | |
| # Download and install victorialogs | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/victorialogs-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| sudo dnf install -y ./victorialogs-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| # Download and install vlagent (optional) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlagent-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| sudo dnf install -y ./vlagent-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| # Download and install vlogscli (optional) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlogscli-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| sudo dnf install -y ./vlogscli-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| # Start services | |
| sudo systemctl enable --now victorialogs | |
| sudo systemctl status victorialogs | |
| ``` | |
| ### Option 2: Tarball Installation (Any Linux Distribution) | |
| #### VictoriaLogs Server | |
| ```bash | |
| # Download the tarball | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| # Verify checksum (optional) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| sha256sum -c victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| # Extract and run | |
| tar -xzf victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| ./victoria-logs-prod -storageDataPath=/var/lib/victorialogs | |
| ``` | |
| ### vlagent (Log Collection Agent) | |
| ```bash | |
| # Download the vlutils tarball | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| # Verify checksum (optional) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| sha256sum -c vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| # Extract | |
| tar -xzf vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| # Run vlagent | |
| ./vlagent-prod -remoteWrite.url=http://localhost:9428/insert/jsonline | |
| ``` | |
| ### vlogscli (Query CLI) | |
| ```bash | |
| # Download the vlutils tarball (if not already downloaded) | |
| wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| # Extract | |
| tar -xzf vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| # Run vlogscli | |
| ./vlogscli-prod -datasource.url=http://localhost:9428 | |
| ``` | |
| ## Documentation | |
| - [VictoriaLogs Documentation](https://docs.victoriametrics.com/victorialogs/) | |
| - [vlagent Documentation](https://docs.victoriametrics.com/victorialogs/vlagent/) | |
| - [vlogscli Documentation](https://docs.victoriametrics.com/victorialogs/querying/vlogscli/) | |
| ## Checksums | |
| SHA256 checksums are provided for all tarballs to verify integrity. | |
| draft: false | |
| prerelease: ${{ github.event.inputs.prerelease }} | |
| - name: Upload tarball | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./VictoriaLogs/bin/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| asset_name: victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| asset_content_type: application/gzip | |
| - name: Upload checksums | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./VictoriaLogs/bin/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| asset_name: victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| asset_content_type: text/plain | |
| - name: Upload vlutils tarball | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./VictoriaLogs/bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| asset_name: vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz | |
| asset_content_type: application/gzip | |
| - name: Upload vlutils checksums | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./VictoriaLogs/bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| asset_name: vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt | |
| asset_content_type: text/plain | |
| # ======================================== | |
| # RPM Building Section | |
| # ======================================== | |
| - name: Checkout victorialogs-rpm repository | |
| uses: actions/checkout@v5 | |
| with: | |
| repository: whamCloud/victorialogs-rpm | |
| path: victorialogs-rpm | |
| - name: Build EL8 RPMs using Rocky Linux 8 container | |
| run: | | |
| echo "Building EL8 RPMs for version ${{ github.event.inputs.version }}..." | |
| docker run --rm \ | |
| -v $(pwd)/victorialogs-rpm:/build \ | |
| -v $(pwd)/VictoriaLogs/bin:/binaries \ | |
| -w /build \ | |
| rockylinux:8 \ | |
| bash -c " | |
| set -e | |
| echo 'Installing RPM build tools...' | |
| dnf install -y rpm-build systemd-rpm-macros rpmdevtools make | |
| echo 'Building EL8 RPMs...' | |
| make rpm VERSION=${{ github.event.inputs.version }} | |
| " | |
| - name: Build EL9 RPMs using Rocky Linux 9 container | |
| run: | | |
| echo "Building EL9 RPMs for version ${{ github.event.inputs.version }}..." | |
| docker run --rm \ | |
| -v $(pwd)/victorialogs-rpm:/build \ | |
| -v $(pwd)/VictoriaLogs/bin:/binaries \ | |
| -w /build \ | |
| rockylinux:9 \ | |
| bash -c " | |
| set -e | |
| echo 'Installing RPM build tools...' | |
| dnf install -y rpm-build systemd-rpm-macros rpmdevtools make | |
| echo 'Building EL9 RPMs...' | |
| make rpm VERSION=${{ github.event.inputs.version }} | |
| " | |
| - name: List built RPMs | |
| working-directory: victorialogs-rpm | |
| run: | | |
| echo "Built RPMs:" | |
| ls -lh output/*.rpm | |
| - name: Upload victorialogs EL8 RPM | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./victorialogs-rpm/output/victorialogs-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| asset_name: victorialogs-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| asset_content_type: application/x-rpm | |
| - name: Upload victorialogs EL9 RPM | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./victorialogs-rpm/output/victorialogs-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| asset_name: victorialogs-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| asset_content_type: application/x-rpm | |
| - name: Upload vlagent EL8 RPM | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./victorialogs-rpm/output/vlagent-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| asset_name: vlagent-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| asset_content_type: application/x-rpm | |
| - name: Upload vlagent EL9 RPM | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./victorialogs-rpm/output/vlagent-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| asset_name: vlagent-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| asset_content_type: application/x-rpm | |
| - name: Upload vlogscli EL8 RPM | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./victorialogs-rpm/output/vlogscli-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| asset_name: vlogscli-${{ github.event.inputs.version }}-1.el8.x86_64.rpm | |
| asset_content_type: application/x-rpm | |
| - name: Upload vlogscli EL9 RPM | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./victorialogs-rpm/output/vlogscli-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| asset_name: vlogscli-${{ github.event.inputs.version }}-1.el9.x86_64.rpm | |
| asset_content_type: application/x-rpm | |
| # ======================================== | |
| # Cleanup Section | |
| # ======================================== | |
| - name: Clean up build artifacts | |
| if: always() | |
| working-directory: VictoriaLogs | |
| run: | | |
| make -f Makefile.whamcloud whamcloud-clean VERSION=${{ github.event.inputs.version }} | |
| - name: Clean up RPM build artifacts | |
| if: always() | |
| working-directory: victorialogs-rpm | |
| run: | | |
| make clean | |