Skip to content

Commit f18c69d

Browse files
authored
Merge pull request #7 from whamcloud/sagar-gharte/EHT-1293
[EHT-1293] Build workflow for vlagent and vlogscli
2 parents 309c4c8 + b5f49a2 commit f18c69d

File tree

2 files changed

+107
-15
lines changed

2 files changed

+107
-15
lines changed

.github/workflows/whamcloud-release.yml

Lines changed: 70 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ jobs:
3838
echo "Build artifacts:"
3939
ls -lh bin/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
4040
ls -lh bin/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
41+
ls -lh bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
42+
ls -lh bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
4143
4244
- name: Create Release
4345
id: create_release
@@ -54,13 +56,22 @@ jobs:
5456
5557
## Compatibility
5658
57-
This is a statically-linked Go binary that works on:
59+
These are statically-linked Go binaries that work on:
5860
- Enterprise Linux 8/9 (CentOS Stream, Rocky Linux, AlmaLinux)
5961
- Red Hat Enterprise Linux 8/9
6062
- Any modern Linux distribution with AMD64 architecture
6163
64+
## What's Included
65+
66+
This release contains:
67+
- **victoria-logs** - Main VictoriaLogs server for log management and analytics
68+
- **vlagent** - Log collection agent for shipping logs to VictoriaLogs
69+
- **vlogscli** - Interactive command-line tool for querying VictoriaLogs
70+
6271
## Installation
6372
73+
### VictoriaLogs Server
74+
6475
```bash
6576
# Download the tarball
6677
wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
@@ -71,12 +82,48 @@ jobs:
7182
7283
# Extract and run
7384
tar -xzf victoria-logs-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
74-
./victoria-logs
85+
./victoria-logs-prod -storageDataPath=/var/lib/victorialogs
86+
```
87+
88+
### vlagent (Log Collection Agent)
89+
90+
```bash
91+
# Download the vlutils tarball
92+
wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
93+
94+
# Verify checksum (optional)
95+
wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
96+
sha256sum -c vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
97+
98+
# Extract
99+
tar -xzf vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
100+
101+
# Run vlagent
102+
./vlagent-prod -remoteWrite.url=http://localhost:9428/insert/jsonline
103+
```
104+
105+
### vlogscli (Query CLI)
106+
107+
```bash
108+
# Download the vlutils tarball (if not already downloaded)
109+
wget https://github.com/whamCloud/VictoriaLogs/releases/download/v${{ github.event.inputs.version }}/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
110+
111+
# Extract
112+
tar -xzf vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
113+
114+
# Run vlogscli
115+
./vlogscli-prod -datasource.url=http://localhost:9428
75116
```
76117
118+
## Documentation
119+
120+
- [VictoriaLogs Documentation](https://docs.victoriametrics.com/victorialogs/)
121+
- [vlagent Documentation](https://docs.victoriametrics.com/victorialogs/vlagent/)
122+
- [vlogscli Documentation](https://docs.victoriametrics.com/victorialogs/querying/vlogscli/)
123+
77124
## Checksums
78125
79-
SHA256 checksums are provided to verify integrity.
126+
SHA256 checksums are provided for all tarballs to verify integrity.
80127
draft: false
81128
prerelease: ${{ github.event.inputs.prerelease }}
82129

@@ -100,6 +147,26 @@ jobs:
100147
asset_name: victoria-logs-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
101148
asset_content_type: text/plain
102149

150+
- name: Upload vlutils tarball
151+
uses: actions/upload-release-asset@v1
152+
env:
153+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
154+
with:
155+
upload_url: ${{ steps.create_release.outputs.upload_url }}
156+
asset_path: ./bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
157+
asset_name: vlutils-linux-amd64-v${{ github.event.inputs.version }}.tar.gz
158+
asset_content_type: application/gzip
159+
160+
- name: Upload vlutils checksums
161+
uses: actions/upload-release-asset@v1
162+
env:
163+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
164+
with:
165+
upload_url: ${{ steps.create_release.outputs.upload_url }}
166+
asset_path: ./bin/vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
167+
asset_name: vlutils-linux-amd64-v${{ github.event.inputs.version }}_checksums.txt
168+
asset_content_type: text/plain
169+
103170
- name: Clean up build artifacts
104171
if: always()
105172
run: |

Makefile.whamcloud

Lines changed: 37 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,34 +18,58 @@ WHAMCLOUD_PKG_TAG := v$(WHAMCLOUD_VERSION)
1818
# Override PKG_TAG for whamCloud builds
1919
export PKG_TAG := $(WHAMCLOUD_PKG_TAG)
2020

21-
.PHONY: whamcloud-release whamcloud-clean whamcloud-release-victoria-logs-linux-amd64
21+
# Override TAR_OWNERSHIP for macOS compatibility
22+
# macOS uses BSD tar which doesn't support --owner/--group
23+
UNAME_S := $(shell uname -s)
24+
ifeq ($(UNAME_S),Darwin)
25+
override TAR_OWNERSHIP :=
26+
endif
27+
28+
.PHONY: whamcloud-release whamcloud-clean whamcloud-release-victoria-logs-linux-amd64 whamcloud-release-vlutils-linux-amd64
2229

23-
# Main target to build victoria-logs
30+
# Main target to build all tarballs
2431
whamcloud-release: whamcloud-clean
2532
@echo "Building whamCloud VictoriaLogs $(WHAMCLOUD_PKG_TAG) for linux-amd64..."
2633
@$(MAKE) -f Makefile.whamcloud whamcloud-release-victoria-logs-linux-amd64 WHAMCLOUD_VERSION=$(WHAMCLOUD_VERSION)
27-
@echo "Build complete! Tarball is in bin/"
28-
@ls -lh bin/victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz
34+
@$(MAKE) -f Makefile.whamcloud whamcloud-release-vlutils-linux-amd64 WHAMCLOUD_VERSION=$(WHAMCLOUD_VERSION)
35+
@echo "Build complete! Tarballs are in bin/"
36+
@ls -lh bin/*-$(WHAMCLOUD_PKG_TAG).tar.gz
2937

3038
# Build victoria-logs for linux-amd64
3139
whamcloud-release-victoria-logs-linux-amd64:
3240
@echo "Building victoria-logs for linux-amd64..."
3341
GOOS=linux GOARCH=amd64 $(MAKE) victoria-logs-linux-amd64-prod
3442
@echo "Creating tarball..."
3543
cd bin && \
36-
tar $(TAR_OWNERSHIP) --transform="s|victoria-logs-linux-amd64-prod|victoria-logs|" \
37-
-czf victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz \
38-
victoria-logs-linux-amd64-prod && \
44+
cp victoria-logs-linux-amd64-prod victoria-logs-prod && \
45+
tar $(TAR_OWNERSHIP) -czf victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz victoria-logs-prod && \
3946
sha256sum victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz \
4047
> victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG)_checksums.txt
41-
@echo "Cleaning up intermediate binary..."
42-
cd bin && rm -f victoria-logs-linux-amd64-prod
48+
@echo "Cleaning up intermediate binaries..."
49+
cd bin && rm -f victoria-logs-linux-amd64-prod victoria-logs-prod
50+
51+
# Build vlutils (vlagent + vlogscli) for linux-amd64
52+
whamcloud-release-vlutils-linux-amd64:
53+
@echo "Building vlutils (vlagent + vlogscli) for linux-amd64..."
54+
GOOS=linux GOARCH=amd64 $(MAKE) vlagent-linux-amd64-prod
55+
GOOS=linux GOARCH=amd64 $(MAKE) vlogscli-linux-amd64-prod
56+
@echo "Creating vlutils tarball..."
57+
cd bin && \
58+
cp vlagent-linux-amd64-prod vlagent-prod && \
59+
cp vlogscli-linux-amd64-prod vlogscli-prod && \
60+
tar $(TAR_OWNERSHIP) -czf vlutils-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz vlagent-prod vlogscli-prod && \
61+
sha256sum vlutils-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz vlagent-prod vlogscli-prod \
62+
| sed 's/-linux-amd64-prod/-prod/' > vlutils-linux-amd64-$(WHAMCLOUD_PKG_TAG)_checksums.txt
63+
@echo "Cleaning up intermediate binaries..."
64+
cd bin && rm -f vlagent-linux-amd64-prod vlogscli-linux-amd64-prod vlagent-prod vlogscli-prod
4365

4466
# Clean whamCloud build artifacts
4567
whamcloud-clean:
4668
@echo "Cleaning whamCloud build artifacts..."
4769
rm -f bin/victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz
4870
rm -f bin/victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG)_checksums.txt
71+
rm -f bin/vlutils-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz
72+
rm -f bin/vlutils-linux-amd64-$(WHAMCLOUD_PKG_TAG)_checksums.txt
4973

5074
# Build with custom version
5175
whamcloud-release-version:
@@ -58,10 +82,11 @@ endif
5882
whamcloud-help:
5983
@echo "whamCloud VictoriaLogs Build Targets:"
6084
@echo ""
61-
@echo " whamcloud-release - Build tarball for linux-amd64"
85+
@echo " whamcloud-release - Build all tarballs for linux-amd64"
6286
@echo " whamcloud-release-version VERSION=X - Build with custom version number"
6387
@echo " whamcloud-clean - Clean whamCloud build artifacts"
6488
@echo ""
6589
@echo "Current version: $(WHAMCLOUD_PKG_TAG)"
66-
@echo "Output: victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz"
67-
90+
@echo "Output:"
91+
@echo " - victoria-logs-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz"
92+
@echo " - vlutils-linux-amd64-$(WHAMCLOUD_PKG_TAG).tar.gz (vlagent + vlogscli)"

0 commit comments

Comments
 (0)