Skip to content

whamCloud Release

whamCloud Release #8

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: Install RPM build tools
run: |
if ! command -v rpmbuild &> /dev/null; then
echo "Installing RPM build tools..."
sudo dnf install -y rpm-build rpmdevtools
else
echo "RPM build tools already installed"
fi
- name: Build RPMs for EL8 and EL9
working-directory: victorialogs-rpm
run: |
echo "Building RPMs for version ${{ github.event.inputs.version }}..."
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