From 9ad31adedf083bde1aa41af3f4475ff0c5058c28 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Tue, 28 Sep 2021 15:17:19 -0700 Subject: [PATCH 01/97] packaging steps --- Makefile | 13 ++++ analysis/act_latency.py | 2 +- build/os_version | 139 ++++++++++++++++++++++++++++++++++++++++ build/version | 10 +++ pkg/Makefile.deb | 53 +++++++++++++++ pkg/Makefile.rpm | 44 +++++++++++++ pkg/deb/control | 8 +++ pkg/deb/postinst | 25 ++++++++ pkg/deb/prerm | 13 ++++ pkg/rpm/act.spec | 55 ++++++++++++++++ 10 files changed, 361 insertions(+), 1 deletion(-) create mode 100755 build/os_version create mode 100755 build/version create mode 100644 pkg/Makefile.deb create mode 100644 pkg/Makefile.rpm create mode 100644 pkg/deb/control create mode 100755 pkg/deb/postinst create mode 100755 pkg/deb/prerm create mode 100644 pkg/rpm/act.spec diff --git a/Makefile b/Makefile index 2b3fb7b..679831f 100755 --- a/Makefile +++ b/Makefile @@ -3,6 +3,8 @@ DIR_TARGET = target DIR_OBJ = $(DIR_TARGET)/obj DIR_BIN = $(DIR_TARGET)/bin +DIR_RPM = pkg/rpm/RPMS +DIR_DEB = pkg/deb/DEBS SRC_DIRS = common index prep storage OBJ_DIRS = $(SRC_DIRS:%=$(DIR_OBJ)/src/%) @@ -52,9 +54,20 @@ act_storage: target_dir $(STORAGE_OBJECTS) echo "Linking $@" $(CC) $(LDFLAGS) -o $(STORAGE_BINARY) $(STORAGE_OBJECTS) $(LIBRARIES) +.PHONY: rpm +rpm: + $(MAKE) -f pkg/Makefile.rpm + +.PHONY: deb +deb: + $(MAKE) -f pkg/Makefile.deb + # For now we only clean everything. +.PHONY: clean clean: /bin/rm -rf $(DIR_TARGET) + /bin/rm -rf $(DIR_RPM) + /bin/rm -rf $(DIR_DEB) -include $(ALL_DEPENDENCIES) diff --git a/analysis/act_latency.py b/analysis/act_latency.py index d337eb0..1ebb9da 100755 --- a/analysis/act_latency.py +++ b/analysis/act_latency.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # ------------------------------------------------ # act_latency.py diff --git a/build/os_version b/build/os_version new file mode 100755 index 0000000..07a072b --- /dev/null +++ b/build/os_version @@ -0,0 +1,139 @@ +#!/usr/bin/env bash +# ------------------------------------------------------------------------------ +# Copyright 2012-2015 Aerospike, Inc. +# +# Portions may be licensed to Aerospike, Inc. under one or more contributor +# license agreements. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# ------------------------------------------------------------------------------ + +OPT_LONG=0 + +if [ "$1" = "-long" ] +then + OPT_LONG=1 +fi + +error() { + echo 'error:' $* >&2 +} + +main() { + + local kernel='' + local distro_id='' + local distro_version='' + local distro_long='' + local distro_short='' + + # Make sure this script is running on Linux + # The script is not designed to work on non-Linux + # operating systems. + kernel=$(uname -s | tr '[:upper:]' '[:lower:]') + if [ "$kernel" != 'linux' ] + then + error "$kernel is not supported." + exit 1 + fi + + if [ -f /etc/os-release ] + then + . /etc/os-release + distro_id=${ID,,} + distro_version=${VERSION_ID} + elif [ -f /etc/issue ] + then + issue=$(cat /etc/issue | tr '[:upper:]' '[:lower:]') + case "$issue" in + *'centos'* ) + distro_id='centos' + ;; + *'redhat'* | *'rhel'* ) + distro_id='rhel' + ;; + *'debian'* ) + distro_id='debian' + ;; + * ) + error "/etc/issue contained an unsupported linux distibution: $issue" + exit 1 + ;; + esac + + case "$distro_id" in + 'centos' | 'rhel' ) + local release='' + if [ -f /etc/centos-release ]; then + release=$(cat /etc/centos-release | tr '[:upper:]' '[:lower:]') + elif [ -f /etc/redhat-release ]; then + release=$(cat /etc/redhat-release | tr '[:upper:]' '[:lower:]') + fi + release_version=${release##*release} + distro_version=${release_version%.*} + ;; + 'debian' ) + debian_version=$(cat /etc/debian_version | tr '[:upper:]' '[:lower:]') + distro_version=${debian_version%%.*} + ;; + * ) + error "/etc/issue contained an unsupported linux distibution: $issue" + exit 1 + ;; + esac + fi + + distro_id=${distro_id//[[:space:]]/} + distro_version=${distro_version//[[:space:]]/} + + case "$distro_id" in + 'centos' ) + distro_long="${distro_id}${distro_version%%.*}" + distro_short="el${distro_version%%.*}" + ;; + 'rhel' | 'redhat' | 'red hat' ) + distro_long="${distro_id}${distro_version%%.*}" + distro_short="el${distro_version%%.*}" + ;; + 'fedora' ) + if [ "$distro_version" -gt "15" ] + then + distro_version=7 + elif [ "$distro_version" -gt "10" ] + then + distro_version=6 + else + error "Unsupported linux distibution: $distro_id $distro_version" + exit 1 + fi + distro_long="centos${distro_version}" + distro_short="el${distro_version}" + ;; + 'amzn' ) + distro_long="ami" + distro_short="ami" + ;; + * ) + distro_long="${distro_id}${distro_version}" + distro_short="${distro_id}${distro_version}" + ;; + esac + + if [ "$OPT_LONG" = "1" ] + then + echo "${distro_long}" + else + echo "${distro_short}" + fi + exit 0 +} + +main diff --git a/build/version b/build/version new file mode 100755 index 0000000..2545f25 --- /dev/null +++ b/build/version @@ -0,0 +1,10 @@ +#!/bin/bash + +rev=`git describe` +subbuild=`echo $rev | awk -F'-' '{print $2}'` + +if [ "$subbuild" != "" ] +then + rev=`echo $rev | awk -F'-' '{printf("%s-%s\n",$1,$2)}'` +fi +echo $rev diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb new file mode 100644 index 0000000..13df2d3 --- /dev/null +++ b/pkg/Makefile.deb @@ -0,0 +1,53 @@ +# Build act distribution. + +export DEB_SOURCE_ROOT = $(shell echo `pwd`/dist) +export DEB_BUILD_ROOT = $(DEB_SOURCE_ROOT)/BUILD +export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike +export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike + +REV = $(shell build/version) +#REV = 6.2.0 +OS = $(shell build/os_version) +MANIFEST_DIR = manifest/TEMP + +.PHONY: default +default: dist + +.PHONY: dist +dist: + + # Build tools package. + rm -rf $(DEB_BUILD_ROOT)/* + mkdir -p $(DEB_BUILD_ROOT)/DEBIAN + mkdir -p $(DEB_BUILD_ROOT)/usr/bin + mkdir -p pkg/deb/DEBS + install -m 755 pkg/deb/postinst $(DEB_BUILD_ROOT)/DEBIAN/postinst + install -m 755 pkg/deb/prerm $(DEB_BUILD_ROOT)/DEBIAN/prerm + install -m 644 pkg/deb/control $(DEB_BUILD_ROOT)/DEBIAN/control + + mkdir -p $(CL_BASE) + mkdir -p $(ETC_BASE) + mkdir -p $(CL_BASE)/bin + + # act + install -m 755 target/bin/act_* $(CL_BASE)/bin/ + install -m 755 analysis/act_latency.py $(CL_BASE)/bin/ + install -m 755 config/act_index.conf $(ETC_BASE)/ + install -m 755 config/act_storage.conf $(ETC_BASE)/ + + # Create symlinks to /usr/bin + mkdir -p $(DEB_BUILD_ROOT)/usr/bin + ln -sf /opt/aerospike/bin/act_index $(DEB_BUILD_ROOT)/usr/bin/act_index + ln -sf /opt/aerospike/bin/act_prep $(DEB_BUILD_ROOT)/usr/bin/act_prep + ln -sf /opt/aerospike/bin/act_storage $(DEB_BUILD_ROOT)/usr/bin/act_storage + ln -sf /opt/aerospike/bin/act_latency.py $(DEB_BUILD_ROOT)/usr/bin/act_latency.py + + + sed 's/@VERSION@/'$(REV)'/g' $(DEB_BUILD_ROOT)/DEBIAN/control + + fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) pkg/deb/DEBS + rm -rf dist + +distclean: + rm -rf $(DEB_SOURCE_ROOT) + rm -rf pkg/deb/DEBS diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm new file mode 100644 index 0000000..4f20677 --- /dev/null +++ b/pkg/Makefile.rpm @@ -0,0 +1,44 @@ +# Build aerospike rpm distribution. + +export RPM_SOURCE_ROOT = $(shell echo `pwd`/dist) +export RPM_BUILD_ROOT = $(RPM_SOURCE_ROOT)/BUILD +export CL_BASE = $(RPM_BUILD_ROOT)/opt/aerospike +export ETC_BASE = $(RPM_BUILD_ROOT)/etc/aerospike + +MANIFEST_DIR = manifest/TEMP +TOOLS_VERSION = $(shell build/version | sed 's/-/_/g') +OS = $(shell build/os_version) +#TOOLS_VERSION = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +OS = el8 +TOOLS_VERSION = 6.2.0 + +.PHONY: default +default: dist + mkdir -p pkg/rpm/RPMS/x86_64 + mkdir -p $(RPM_BUILD_ROOT) + mkdir -p $(RPM_SOURCE_ROOT)/RPMS/x86_64 + mkdir -p $(RPM_BUILD_ROOT)/usr/bin + + sed 's/@VERSION@/'$(TOOLS_VERSION)'/g' pkg/act_v.spec + sed -i 's/@RELEASE@/'$(OS)'/g' pkg/act_v.spec + + rpmbuild -bb -vv --define "dist .$(OS)" --buildroot $(RPM_BUILD_ROOT) pkg/act_v.spec + find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} pkg/rpm/RPMS/x86_64 \; + rm -rf pkg/act_v.spec dist + +distclean: + rm -rf $(RPM_BUILD_ROOT) + rm -rf pkg/rpm/RPMS/x86_64/* + +.PHONY: dist +dist: + + mkdir -p $(CL_BASE) + mkdir -p $(ETC_BASE) + mkdir -p $(CL_BASE)/bin + + # act + install -m 755 target/bin/act_* $(CL_BASE)/bin/ + install -m 755 analysis/act_latency.py $(CL_BASE)/bin/ + install -m 755 config/act_index.conf $(ETC_BASE)/ + install -m 755 config/act_storage.conf $(ETC_BASE)/ diff --git a/pkg/deb/control b/pkg/deb/control new file mode 100644 index 0000000..44f1584 --- /dev/null +++ b/pkg/deb/control @@ -0,0 +1,8 @@ +Package: act +Version: @VERSION@ +Section: Databases +Priority: optional +Architecture: amd64 +Depends: libc6 (>= 2.7) +Maintainer: Aerospike, Inc. +Description: Aerospike Certification Tool diff --git a/pkg/deb/postinst b/pkg/deb/postinst new file mode 100755 index 0000000..020a549 --- /dev/null +++ b/pkg/deb/postinst @@ -0,0 +1,25 @@ +#!/bin/sh + +set -e + +case "$1" in + configure) + + echo Installing /opt/aerospike/bim/act + + # create aerospike group if it isn't already there + if ! getent group aerospike >/dev/null; then + groupadd -r aerospike + fi + + # create aerospike user if it isn't already there + if ! getent passwd aerospike >/dev/null; then + useradd -r -d /opt/aerospike -c 'Aerospike server' -g aerospike aerospike + fi + + chown -R aerospike:aerospike /opt/aerospike + + ;; +esac + +exit 0 diff --git a/pkg/deb/prerm b/pkg/deb/prerm new file mode 100755 index 0000000..1856125 --- /dev/null +++ b/pkg/deb/prerm @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +case "$1" in + remove) + + echo Removing /opt/aerospike/bin/act + rm -f /opt/aerospike/bin/act_* + ;; +esac + +exit 0 diff --git a/pkg/rpm/act.spec b/pkg/rpm/act.spec new file mode 100644 index 0000000..8076600 --- /dev/null +++ b/pkg/rpm/act.spec @@ -0,0 +1,55 @@ +Name: act +Version: @VERSION@ +Release: 1%{?dist} +Summary: The Aerospike Certification Tool +License: Apache 2.0 license +Group: Application +BuildArch: x86_64 +%description +ACT provides a pair of programs for testing and certifying flash/SSD devices' performance for Aerospike Database data and index storage. +%define _topdir dist +%define __spec_install_post /usr/lib/rpm/brp-compress + +%package tools +Summary: The Aerospike Certification Tool +Group: Applications +%description tools +Tools for use with the Aerospike database +%files +%defattr(-,aerospike,aerospike) +/opt/aerospike/bin/act_index +/opt/aerospike/bin/act_prep +/opt/aerospike/bin/act_storage +/opt/aerospike/bin/act_latency.py +%defattr(-,root,root) +/usr/bin/act_index +/usr/bin/act_prep +/usr/bin/act_storage +/usr/bin/act_latency.py + +%config(noreplace) +/etc/aerospike/act_storage.conf +/etc/aerospike/act_index.conf + +%prep +ln -sf /opt/aerospike/bin/act_index %{buildroot}/usr/bin/act_index +ln -sf /opt/aerospike/bin/act_prep %{buildroot}/usr/bin/act_prep +ln -sf /opt/aerospike/bin/act_storage %{buildroot}/usr/bin/act_storage +ln -sf /opt/aerospike/bin/act_latency.py %{buildroot}/usr/bin/act_latency.py + +%pre tools +echo Installing /opt/aerospike/act +if ! id -g aerospike >/dev/null 2>&1; then + echo "Adding group aerospike" + /usr/sbin/groupadd -r aerospike +fi +if ! id -u aerospike >/dev/null 2>&1; then + echo "Adding user aerospike" + /usr/sbin/useradd -r -d /opt/aerospike -c 'Aerospike server' -g aerospike aerospike +fi + +%preun tools +if [ $1 -eq 0 ] +then + echo Removing /opt/aerospike/act +fi From cf427808312498dd94af5b0713974de83762e996 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 15:34:53 -0700 Subject: [PATCH 02/97] Update build.yml --- .github/workflows/build.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 5c56727..a20797a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,9 +2,9 @@ name: Build ACT on: push: - branches: [ master ] + branches: [ PROD-2028 ] pull_request: - branches: [ naster ] + branches: [ PROD-2028 ] jobs: build: @@ -18,9 +18,11 @@ jobs: run: sudo apt-get install make gcc libc6-dev - name: build run: make + - name: packaging + run: make deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: name: act - path: target/bin/ + path: pkg/deb/DEBS if-no-files-found: error From c42c2b6181185b62427fe14ef15fdea7a4db27fc Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 15:37:36 -0700 Subject: [PATCH 03/97] Update Makefile.deb --- pkg/Makefile.deb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 13df2d3..6818e30 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -6,7 +6,7 @@ export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike REV = $(shell build/version) -#REV = 6.2.0 +REV = 6.2 OS = $(shell build/os_version) MANIFEST_DIR = manifest/TEMP From c09b11b64aae855cb2a6af8ca8034a0480348847 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 15:51:09 -0700 Subject: [PATCH 04/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a20797a..fb2fa2f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act + name: act-ubuntu-${GITGUB_REF} path: pkg/deb/DEBS if-no-files-found: error From 62ee9bdd77cb9a20ca68c31cc6f3597a896aa9a6 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 15:56:20 -0700 Subject: [PATCH 05/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb2fa2f..c98996b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-ubuntu-${GITGUB_REF} + name: act-ubuntu-${{GITHUB_REF}} path: pkg/deb/DEBS if-no-files-found: error From 4f0a588e1fa9d47263414c09bd0eb6a59dc980ca Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:01:09 -0700 Subject: [PATCH 06/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c98996b..b8a6ef3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-ubuntu-${{GITHUB_REF}} + name: act-ubuntu-${github.ref} path: pkg/deb/DEBS if-no-files-found: error From d1d7c5cd51d6ab3262eca8c8045801171f24d143 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:03:59 -0700 Subject: [PATCH 07/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b8a6ef3..275b8e3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-ubuntu-${github.ref} + name: "act-ubuntu-$GITHUB_REF" path: pkg/deb/DEBS if-no-files-found: error From 836bb98b33180d131cd987e1e4cd21a148dff9e8 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:06:20 -0700 Subject: [PATCH 08/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 275b8e3..693a43c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: "act-ubuntu-$GITHUB_REF" + name: act-ubuntu-${{github.ref}} path: pkg/deb/DEBS if-no-files-found: error From 8fe1b8b3526d4656a6b9092a690d1a38e687241b Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:09:33 -0700 Subject: [PATCH 09/97] Update Makefile.deb --- pkg/Makefile.deb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 6818e30..41704fa 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -6,7 +6,7 @@ export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike REV = $(shell build/version) -REV = 6.2 +#REV = 6.2 OS = $(shell build/os_version) MANIFEST_DIR = manifest/TEMP From 7fc14f2629f23eeb8d7f04c6ca9502b2b47952fd Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:10:18 -0700 Subject: [PATCH 10/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 693a43c..091868f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,6 +23,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-ubuntu-${{github.ref}} + name: act-ubuntu path: pkg/deb/DEBS if-no-files-found: error From 9e9401b61930522313a202eadf4862004bff503a Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:20:03 -0700 Subject: [PATCH 11/97] Update Makefile.deb --- pkg/Makefile.deb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 41704fa..7c452d4 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -5,8 +5,9 @@ export DEB_BUILD_ROOT = $(DEB_SOURCE_ROOT)/BUILD export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike -REV = $(shell build/version) +#REV = $(shell build/version) #REV = 6.2 +REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) OS = $(shell build/os_version) MANIFEST_DIR = manifest/TEMP From 967942d7eeecbd4336be9ca6a7120ba82e53a19f Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 16:54:24 -0700 Subject: [PATCH 12/97] Update Makefile.deb --- pkg/Makefile.deb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 7c452d4..4d55ac6 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -6,8 +6,8 @@ export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike #REV = $(shell build/version) -#REV = 6.2 -REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +#REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +REV = 6.2 OS = $(shell build/os_version) MANIFEST_DIR = manifest/TEMP From 907074fb0b17bd6dc49d86b407ebf975a8286cc8 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 28 Sep 2021 17:09:30 -0700 Subject: [PATCH 13/97] Update build.yml --- .github/workflows/build.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 091868f..a956671 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,3 +26,8 @@ jobs: name: act-ubuntu path: pkg/deb/DEBS if-no-files-found: error + - name: Download Package + uses: actions/download-artifact@v2.0.10 + with: + name: act-ubuntu + path: target/pkg From 437d41293b7a8197a4fcf5c3d9acbab1debfd5bf Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 10:37:42 -0700 Subject: [PATCH 14/97] Update build.yml --- .github/workflows/build.yml | 40 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 21 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a956671..eceb3cc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -8,26 +8,24 @@ on: jobs: build: - - runs-on: ubuntu-latest + strategy: + matrix: + os: ['ubuntu-latest'] + runs-on: ${{ matrix.os }} steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: configure - run: sudo apt-get install make gcc libc6-dev - - name: build - run: make - - name: packaging - run: make deb - - name: Upload Artifact - uses: actions/upload-artifact@v2.2.4 - with: - name: act-ubuntu - path: pkg/deb/DEBS - if-no-files-found: error - - name: Download Package - uses: actions/download-artifact@v2.0.10 - with: - name: act-ubuntu - path: target/pkg + - name: Get Tag + uses: olegtarasov/get-tag@2.1 + - name: Install Dependencies (Ubuntu) + run: sudo apt-get install make gcc libc6-dev + if: matrix.os == 'ubuntu-latest' + - name: Get Sources + uses: actions/checkout@v2 + - name: build + run: make deb + - name: Upload Artifact + uses: actions/upload-artifact@v2.2.4 + with: + name: act-linux-$GIT_TAG_NAME + path: pkg/deb/DEBS + if-no-files-found: error From 188d2ace82acf654ae5cc4316c67568e62fb8ce2 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 10:42:10 -0700 Subject: [PATCH 15/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index eceb3cc..47ac1f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -15,7 +15,7 @@ jobs: steps: - name: Get Tag - uses: olegtarasov/get-tag@2.1 + uses: olegtarasov/get-tag@v2.1 - name: Install Dependencies (Ubuntu) run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-latest' From e2f0393304c0fef5db7b11be424e6a9e82a95d42 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 10:45:21 -0700 Subject: [PATCH 16/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 47ac1f6..da6369c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -22,7 +22,7 @@ jobs: - name: Get Sources uses: actions/checkout@v2 - name: build - run: make deb + run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From d23ab8338b827eafd20cc1336123ae8d98869627 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 10:52:38 -0700 Subject: [PATCH 17/97] Update build.yml --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index da6369c..9c8b98c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -16,6 +16,7 @@ jobs: steps: - name: Get Tag uses: olegtarasov/get-tag@v2.1 + id: tagName - name: Install Dependencies (Ubuntu) run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-latest' @@ -26,6 +27,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-$GIT_TAG_NAME + name: act-linux-${{ steps.tagName.outputs.tag }} path: pkg/deb/DEBS if-no-files-found: error From 20342f4bf5619b2e2025f8b6ae6c83f24900b37d Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:02:29 -0700 Subject: [PATCH 18/97] Update build.yml --- .github/workflows/build.yml | 39 +++++++++++++++++++++---------------- 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9c8b98c..e6a3f65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -13,20 +13,25 @@ jobs: os: ['ubuntu-latest'] runs-on: ${{ matrix.os }} - steps: - - name: Get Tag - uses: olegtarasov/get-tag@v2.1 - id: tagName - - name: Install Dependencies (Ubuntu) - run: sudo apt-get install make gcc libc6-dev - if: matrix.os == 'ubuntu-latest' - - name: Get Sources - uses: actions/checkout@v2 - - name: build - run: make all deb - - name: Upload Artifact - uses: actions/upload-artifact@v2.2.4 - with: - name: act-linux-${{ steps.tagName.outputs.tag }} - path: pkg/deb/DEBS - if-no-files-found: error + steps: + - uses: olegtarasov/get-tag@v2.1 + id: tagName + with: + tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. + tagRegexGroup: 1 # Optional. Default is 1. + - name: Some other step # Output usage example + with: + tagname: ${{ steps.tagName.outputs.tag }} + - name: Install Dependencies (Ubuntu) + run: sudo apt-get install make gcc libc6-dev + if: matrix.os == 'ubuntu-latest' + - name: Get Sources + uses: actions/checkout@v2 + - name: build + run: make all deb + - name: Upload Artifact + uses: actions/upload-artifact@v2.2.4 + with: + name: act-linux-$GIT_TAG_NAME + path: pkg/deb/DEBS + if-no-files-found: error From ff959168f9d613f8525fe39441be1cb8b9930293 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:05:40 -0700 Subject: [PATCH 19/97] Update build.yml --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e6a3f65..8bd4389 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,8 @@ jobs: runs-on: ${{ matrix.os }} steps: - - uses: olegtarasov/get-tag@v2.1 + - name: Get Tag + uses: olegtarasov/get-tag@v2.1.1 id: tagName with: tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. From a36faf433e2686f4c401f591f6ebdbd9dc0ee4c7 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:08:37 -0700 Subject: [PATCH 20/97] Update build.yml --- .github/workflows/build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8bd4389..f26888d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,9 +20,6 @@ jobs: with: tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. tagRegexGroup: 1 # Optional. Default is 1. - - name: Some other step # Output usage example - with: - tagname: ${{ steps.tagName.outputs.tag }} - name: Install Dependencies (Ubuntu) run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-latest' From b2578387b76b1cb8a4f7ea9036f8c5fa451c35a0 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:10:43 -0700 Subject: [PATCH 21/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f26888d..ce8e1f6 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,6 +30,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-$GIT_TAG_NAME + name: act-linux-${{ steps.tagName.outputs.tag }} path: pkg/deb/DEBS if-no-files-found: error From ca23a71c4edea9f3a6aca3581f66da44746581bb Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:28:04 -0700 Subject: [PATCH 22/97] Update build.yml --- .github/workflows/build.yml | 38 ++++++++++++++++++------------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ce8e1f6..37e156d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,22 +14,22 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Get Tag - uses: olegtarasov/get-tag@v2.1.1 - id: tagName - with: - tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. - tagRegexGroup: 1 # Optional. Default is 1. - - name: Install Dependencies (Ubuntu) - run: sudo apt-get install make gcc libc6-dev - if: matrix.os == 'ubuntu-latest' - - name: Get Sources - uses: actions/checkout@v2 - - name: build - run: make all deb - - name: Upload Artifact - uses: actions/upload-artifact@v2.2.4 - with: - name: act-linux-${{ steps.tagName.outputs.tag }} - path: pkg/deb/DEBS - if-no-files-found: error + - name: Install Dependencies (Ubuntu) + run: sudo apt-get install make gcc libc6-dev + if: matrix.os == 'ubuntu-latest' + - name: Get Sources + uses: actions/checkout@v2 + - name: Get Latest Tag + uses: WyriHaximus/github-action-get-previous-tag@v1 + with: + # Fallback tag to use when no previous tag can be found + fallback: 6.3 + - name: build + run: make all deb + - name: Upload Artifact + id: tagName + uses: actions/upload-artifact@v2.2.4 + with: + name: act-linux-${{ steps.tagName.outputs.tag }} + path: pkg/deb/DEBS + if-no-files-found: error From 7603e82cc94c4c0e9d83c33af8bcd5a4b191c9d9 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:39:53 -0700 Subject: [PATCH 23/97] Update build.yml --- .github/workflows/build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 37e156d..9676661 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -20,16 +20,18 @@ jobs: - name: Get Sources uses: actions/checkout@v2 - name: Get Latest Tag + id: previoustag uses: WyriHaximus/github-action-get-previous-tag@v1 with: # Fallback tag to use when no previous tag can be found fallback: 6.3 - name: build + env: + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} run: make all deb - name: Upload Artifact - id: tagName uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-${{ steps.tagName.outputs.tag }} + name: act-linux-$GIT_TAG_NAME path: pkg/deb/DEBS if-no-files-found: error From 9840c24a7d4f153b0aeeca62d4574e841a0bee69 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:42:19 -0700 Subject: [PATCH 24/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 9676661..0416187 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-$GIT_TAG_NAME + name: act-linux-${{ steps.previoustag.outputs.tag }} path: pkg/deb/DEBS if-no-files-found: error From 738cf89b8dacf167f23d90305e0801f8236396c0 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 11:55:12 -0700 Subject: [PATCH 25/97] Update build.yml --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0416187..0f42d03 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,9 @@ jobs: - name: build env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} - run: make all deb + run: | + echo $GIT_TAG_NAME + make all deb REV=${{ steps.previoustag.outputs.tag }} - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From 7e0561aa91576cac289cc2bc4a6494493e276844 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 12:02:52 -0700 Subject: [PATCH 26/97] Update build.yml --- .github/workflows/build.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0f42d03..864d01f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,8 @@ jobs: matrix: os: ['ubuntu-latest'] runs-on: ${{ matrix.os }} - + env: + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} steps: - name: Install Dependencies (Ubuntu) run: sudo apt-get install make gcc libc6-dev @@ -26,8 +27,6 @@ jobs: # Fallback tag to use when no previous tag can be found fallback: 6.3 - name: build - env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} run: | echo $GIT_TAG_NAME make all deb REV=${{ steps.previoustag.outputs.tag }} From 3cc8fbd2f30f87155507a8dfaba34c4710000d6a Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 12:05:32 -0700 Subject: [PATCH 27/97] Update build.yml --- .github/workflows/build.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 864d01f..1ed1a1d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,8 +12,7 @@ jobs: matrix: os: ['ubuntu-latest'] runs-on: ${{ matrix.os }} - env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} + steps: - name: Install Dependencies (Ubuntu) run: sudo apt-get install make gcc libc6-dev @@ -27,12 +26,14 @@ jobs: # Fallback tag to use when no previous tag can be found fallback: 6.3 - name: build + env: + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} run: | echo $GIT_TAG_NAME make all deb REV=${{ steps.previoustag.outputs.tag }} - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-${{ steps.previoustag.outputs.tag }} + name: act-linux-$GIT_TAG_NAME path: pkg/deb/DEBS if-no-files-found: error From 84f29408224deed0bc53071be71f97e25734594c Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 13:30:35 -0700 Subject: [PATCH 28/97] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1ed1a1d..4be5849 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,10 +30,10 @@ jobs: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} run: | echo $GIT_TAG_NAME - make all deb REV=${{ steps.previoustag.outputs.tag }} + make all deb REV=$GIT_TAG_NAME - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-$GIT_TAG_NAME + name: act-linux-${{ steps.previoustag.outputs.tag }} path: pkg/deb/DEBS if-no-files-found: error From e4627654b219f1657fae7ad22c1e3edde70c5f91 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 13:34:23 -0700 Subject: [PATCH 29/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4be5849..80ea4f5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-${{ steps.previoustag.outputs.tag }} + name: act-linux-${{ GIT_TAG_NAME }} path: pkg/deb/DEBS if-no-files-found: error From e89512b396b00605c79808942d703d91d95e508a Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 13:35:39 -0700 Subject: [PATCH 30/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 80ea4f5..b007b9c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -34,6 +34,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-${{ GIT_TAG_NAME }} + name: act-linux-${ GIT_TAG_NAME } path: pkg/deb/DEBS if-no-files-found: error From c7ec80f0ec31bc6e125ea4e8edf649e1773d19e1 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 13:39:02 -0700 Subject: [PATCH 31/97] Update build.yml --- .github/workflows/build.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b007b9c..af84091 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,9 +31,11 @@ jobs: run: | echo $GIT_TAG_NAME make all deb REV=$GIT_TAG_NAME - - name: Upload Artifact + - name: Upload Artifact + env: + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-${ GIT_TAG_NAME } + name: act-linux-$GIT_TAG_NAME path: pkg/deb/DEBS if-no-files-found: error From 97e3a2751111bc8687aaee5ca2479634fe9f4a15 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 13:42:33 -0700 Subject: [PATCH 32/97] Update build.yml --- .github/workflows/build.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af84091..fe7a04f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,14 +28,10 @@ jobs: - name: build env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} - run: | - echo $GIT_TAG_NAME - make all deb REV=$GIT_TAG_NAME + run: make all deb REV=$GIT_TAG_NAME - name: Upload Artifact - env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-$GIT_TAG_NAME + name: act-linux-${{ steps.previoustag.outputs.tag }} path: pkg/deb/DEBS if-no-files-found: error From cc51ccbb67845ff50bd4af2bf630b82cb0ec06b9 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 13:52:52 -0700 Subject: [PATCH 33/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fe7a04f..1f5768f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,6 +32,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-linux-${{ steps.previoustag.outputs.tag }} + name: act-${{ matrix.os }}-${{ steps.previoustag.outputs.tag }} path: pkg/deb/DEBS if-no-files-found: error From b1165584a033da408da5bd9aa8129f448c1ba031 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:03:10 -0700 Subject: [PATCH 34/97] Update act_latency.py --- analysis/act_latency.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis/act_latency.py b/analysis/act_latency.py index 1ebb9da..d337eb0 100755 --- a/analysis/act_latency.py +++ b/analysis/act_latency.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/python # ------------------------------------------------ # act_latency.py From c26d94199c22e9e04d6c081fde84ddff4c717ddd Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:14:42 -0700 Subject: [PATCH 35/97] Update postinst --- pkg/deb/postinst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/deb/postinst b/pkg/deb/postinst index 020a549..d22a52c 100755 --- a/pkg/deb/postinst +++ b/pkg/deb/postinst @@ -5,7 +5,7 @@ set -e case "$1" in configure) - echo Installing /opt/aerospike/bim/act + echo Installing /opt/aerospike/bin/act # create aerospike group if it isn't already there if ! getent group aerospike >/dev/null; then From 0f50bc373212d559c9c3924711ced0d3a0eff139 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 14:18:04 -0700 Subject: [PATCH 36/97] Update Makefile.deb --- pkg/Makefile.deb | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 4d55ac6..f236661 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -5,10 +5,7 @@ export DEB_BUILD_ROOT = $(DEB_SOURCE_ROOT)/BUILD export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike -#REV = $(shell build/version) -#REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) -REV = 6.2 -OS = $(shell build/os_version) +REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) MANIFEST_DIR = manifest/TEMP .PHONY: default From e88bc620c5a1e33b027301b0b8faa25b43cc9262 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 14:34:19 -0700 Subject: [PATCH 37/97] Corrected ouput message --- pkg/deb/postinst | 2 +- pkg/deb/prerm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/deb/postinst b/pkg/deb/postinst index d22a52c..3e741a1 100755 --- a/pkg/deb/postinst +++ b/pkg/deb/postinst @@ -5,7 +5,7 @@ set -e case "$1" in configure) - echo Installing /opt/aerospike/bin/act + echo "Installing Aerospike Certification Tool" # create aerospike group if it isn't already there if ! getent group aerospike >/dev/null; then diff --git a/pkg/deb/prerm b/pkg/deb/prerm index 1856125..bddd382 100755 --- a/pkg/deb/prerm +++ b/pkg/deb/prerm @@ -5,8 +5,8 @@ set -e case "$1" in remove) - echo Removing /opt/aerospike/bin/act - rm -f /opt/aerospike/bin/act_* + echo "Removing Aerospike Certification Tool" +# rm -f /opt/aerospike/bin/act_* ;; esac From 73d76330a39a386c580aa0a674d0bfc5a4998376 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 15:10:46 -0700 Subject: [PATCH 38/97] Remove extra files --- .github/workflows/build.yml | 7 +- build/os_version | 139 ------------------------------------ build/version | 10 --- pkg/Makefile.rpm | 44 ------------ 4 files changed, 5 insertions(+), 195 deletions(-) delete mode 100755 build/os_version delete mode 100755 build/version delete mode 100644 pkg/Makefile.rpm diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1f5768f..b059f2a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,13 +10,16 @@ jobs: build: strategy: matrix: - os: ['ubuntu-latest'] + os: ['ubuntu-latest', 'ubuntu-18.04'] runs-on: ${{ matrix.os }} steps: - - name: Install Dependencies (Ubuntu) + - name: Install Dependencies (Ubuntu-latest) run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-latest' + - name: Install Dependencies (Ubuntu-18.04) + run: sudo apt-get install make gcc libc6-dev + if: matrix.os == 'ubuntu-18.04' - name: Get Sources uses: actions/checkout@v2 - name: Get Latest Tag diff --git a/build/os_version b/build/os_version deleted file mode 100755 index 07a072b..0000000 --- a/build/os_version +++ /dev/null @@ -1,139 +0,0 @@ -#!/usr/bin/env bash -# ------------------------------------------------------------------------------ -# Copyright 2012-2015 Aerospike, Inc. -# -# Portions may be licensed to Aerospike, Inc. under one or more contributor -# license agreements. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may not -# use this file except in compliance with the License. You may obtain a copy of -# the License at http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations under -# the License. -# ------------------------------------------------------------------------------ - -OPT_LONG=0 - -if [ "$1" = "-long" ] -then - OPT_LONG=1 -fi - -error() { - echo 'error:' $* >&2 -} - -main() { - - local kernel='' - local distro_id='' - local distro_version='' - local distro_long='' - local distro_short='' - - # Make sure this script is running on Linux - # The script is not designed to work on non-Linux - # operating systems. - kernel=$(uname -s | tr '[:upper:]' '[:lower:]') - if [ "$kernel" != 'linux' ] - then - error "$kernel is not supported." - exit 1 - fi - - if [ -f /etc/os-release ] - then - . /etc/os-release - distro_id=${ID,,} - distro_version=${VERSION_ID} - elif [ -f /etc/issue ] - then - issue=$(cat /etc/issue | tr '[:upper:]' '[:lower:]') - case "$issue" in - *'centos'* ) - distro_id='centos' - ;; - *'redhat'* | *'rhel'* ) - distro_id='rhel' - ;; - *'debian'* ) - distro_id='debian' - ;; - * ) - error "/etc/issue contained an unsupported linux distibution: $issue" - exit 1 - ;; - esac - - case "$distro_id" in - 'centos' | 'rhel' ) - local release='' - if [ -f /etc/centos-release ]; then - release=$(cat /etc/centos-release | tr '[:upper:]' '[:lower:]') - elif [ -f /etc/redhat-release ]; then - release=$(cat /etc/redhat-release | tr '[:upper:]' '[:lower:]') - fi - release_version=${release##*release} - distro_version=${release_version%.*} - ;; - 'debian' ) - debian_version=$(cat /etc/debian_version | tr '[:upper:]' '[:lower:]') - distro_version=${debian_version%%.*} - ;; - * ) - error "/etc/issue contained an unsupported linux distibution: $issue" - exit 1 - ;; - esac - fi - - distro_id=${distro_id//[[:space:]]/} - distro_version=${distro_version//[[:space:]]/} - - case "$distro_id" in - 'centos' ) - distro_long="${distro_id}${distro_version%%.*}" - distro_short="el${distro_version%%.*}" - ;; - 'rhel' | 'redhat' | 'red hat' ) - distro_long="${distro_id}${distro_version%%.*}" - distro_short="el${distro_version%%.*}" - ;; - 'fedora' ) - if [ "$distro_version" -gt "15" ] - then - distro_version=7 - elif [ "$distro_version" -gt "10" ] - then - distro_version=6 - else - error "Unsupported linux distibution: $distro_id $distro_version" - exit 1 - fi - distro_long="centos${distro_version}" - distro_short="el${distro_version}" - ;; - 'amzn' ) - distro_long="ami" - distro_short="ami" - ;; - * ) - distro_long="${distro_id}${distro_version}" - distro_short="${distro_id}${distro_version}" - ;; - esac - - if [ "$OPT_LONG" = "1" ] - then - echo "${distro_long}" - else - echo "${distro_short}" - fi - exit 0 -} - -main diff --git a/build/version b/build/version deleted file mode 100755 index 2545f25..0000000 --- a/build/version +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash - -rev=`git describe` -subbuild=`echo $rev | awk -F'-' '{print $2}'` - -if [ "$subbuild" != "" ] -then - rev=`echo $rev | awk -F'-' '{printf("%s-%s\n",$1,$2)}'` -fi -echo $rev diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm deleted file mode 100644 index 4f20677..0000000 --- a/pkg/Makefile.rpm +++ /dev/null @@ -1,44 +0,0 @@ -# Build aerospike rpm distribution. - -export RPM_SOURCE_ROOT = $(shell echo `pwd`/dist) -export RPM_BUILD_ROOT = $(RPM_SOURCE_ROOT)/BUILD -export CL_BASE = $(RPM_BUILD_ROOT)/opt/aerospike -export ETC_BASE = $(RPM_BUILD_ROOT)/etc/aerospike - -MANIFEST_DIR = manifest/TEMP -TOOLS_VERSION = $(shell build/version | sed 's/-/_/g') -OS = $(shell build/os_version) -#TOOLS_VERSION = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) -OS = el8 -TOOLS_VERSION = 6.2.0 - -.PHONY: default -default: dist - mkdir -p pkg/rpm/RPMS/x86_64 - mkdir -p $(RPM_BUILD_ROOT) - mkdir -p $(RPM_SOURCE_ROOT)/RPMS/x86_64 - mkdir -p $(RPM_BUILD_ROOT)/usr/bin - - sed 's/@VERSION@/'$(TOOLS_VERSION)'/g' pkg/act_v.spec - sed -i 's/@RELEASE@/'$(OS)'/g' pkg/act_v.spec - - rpmbuild -bb -vv --define "dist .$(OS)" --buildroot $(RPM_BUILD_ROOT) pkg/act_v.spec - find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} pkg/rpm/RPMS/x86_64 \; - rm -rf pkg/act_v.spec dist - -distclean: - rm -rf $(RPM_BUILD_ROOT) - rm -rf pkg/rpm/RPMS/x86_64/* - -.PHONY: dist -dist: - - mkdir -p $(CL_BASE) - mkdir -p $(ETC_BASE) - mkdir -p $(CL_BASE)/bin - - # act - install -m 755 target/bin/act_* $(CL_BASE)/bin/ - install -m 755 analysis/act_latency.py $(CL_BASE)/bin/ - install -m 755 config/act_index.conf $(ETC_BASE)/ - install -m 755 config/act_storage.conf $(ETC_BASE)/ From 4ed1f4ed63c99212ebb0caffa8317e263ba8c499 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 15:37:17 -0700 Subject: [PATCH 39/97] change package name --- .github/workflows/build.yml | 7 +- build/os_version | 139 ++++++++++++++++++ build/version | 10 ++ pkg/Makefile.deb | 7 +- .../act-6.2-37.ubuntu20.04.x86_64.deb | Bin 0 -> 47608 bytes 5 files changed, 158 insertions(+), 5 deletions(-) create mode 100755 build/os_version create mode 100755 build/version create mode 100644 pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b059f2a..57aec22 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,11 +30,12 @@ jobs: fallback: 6.3 - name: build env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} - run: make all deb REV=$GIT_TAG_NAME + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} + OS_VER: ${{ matrix.os }} + run: make all deb REV=$GIT_TAG_NAME OS=$OS_VER - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: name: act-${{ matrix.os }}-${{ steps.previoustag.outputs.tag }} - path: pkg/deb/DEBS + path: pkg/packages if-no-files-found: error diff --git a/build/os_version b/build/os_version new file mode 100755 index 0000000..07a072b --- /dev/null +++ b/build/os_version @@ -0,0 +1,139 @@ +#!/usr/bin/env bash +# ------------------------------------------------------------------------------ +# Copyright 2012-2015 Aerospike, Inc. +# +# Portions may be licensed to Aerospike, Inc. under one or more contributor +# license agreements. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may not +# use this file except in compliance with the License. You may obtain a copy of +# the License at http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations under +# the License. +# ------------------------------------------------------------------------------ + +OPT_LONG=0 + +if [ "$1" = "-long" ] +then + OPT_LONG=1 +fi + +error() { + echo 'error:' $* >&2 +} + +main() { + + local kernel='' + local distro_id='' + local distro_version='' + local distro_long='' + local distro_short='' + + # Make sure this script is running on Linux + # The script is not designed to work on non-Linux + # operating systems. + kernel=$(uname -s | tr '[:upper:]' '[:lower:]') + if [ "$kernel" != 'linux' ] + then + error "$kernel is not supported." + exit 1 + fi + + if [ -f /etc/os-release ] + then + . /etc/os-release + distro_id=${ID,,} + distro_version=${VERSION_ID} + elif [ -f /etc/issue ] + then + issue=$(cat /etc/issue | tr '[:upper:]' '[:lower:]') + case "$issue" in + *'centos'* ) + distro_id='centos' + ;; + *'redhat'* | *'rhel'* ) + distro_id='rhel' + ;; + *'debian'* ) + distro_id='debian' + ;; + * ) + error "/etc/issue contained an unsupported linux distibution: $issue" + exit 1 + ;; + esac + + case "$distro_id" in + 'centos' | 'rhel' ) + local release='' + if [ -f /etc/centos-release ]; then + release=$(cat /etc/centos-release | tr '[:upper:]' '[:lower:]') + elif [ -f /etc/redhat-release ]; then + release=$(cat /etc/redhat-release | tr '[:upper:]' '[:lower:]') + fi + release_version=${release##*release} + distro_version=${release_version%.*} + ;; + 'debian' ) + debian_version=$(cat /etc/debian_version | tr '[:upper:]' '[:lower:]') + distro_version=${debian_version%%.*} + ;; + * ) + error "/etc/issue contained an unsupported linux distibution: $issue" + exit 1 + ;; + esac + fi + + distro_id=${distro_id//[[:space:]]/} + distro_version=${distro_version//[[:space:]]/} + + case "$distro_id" in + 'centos' ) + distro_long="${distro_id}${distro_version%%.*}" + distro_short="el${distro_version%%.*}" + ;; + 'rhel' | 'redhat' | 'red hat' ) + distro_long="${distro_id}${distro_version%%.*}" + distro_short="el${distro_version%%.*}" + ;; + 'fedora' ) + if [ "$distro_version" -gt "15" ] + then + distro_version=7 + elif [ "$distro_version" -gt "10" ] + then + distro_version=6 + else + error "Unsupported linux distibution: $distro_id $distro_version" + exit 1 + fi + distro_long="centos${distro_version}" + distro_short="el${distro_version}" + ;; + 'amzn' ) + distro_long="ami" + distro_short="ami" + ;; + * ) + distro_long="${distro_id}${distro_version}" + distro_short="${distro_id}${distro_version}" + ;; + esac + + if [ "$OPT_LONG" = "1" ] + then + echo "${distro_long}" + else + echo "${distro_short}" + fi + exit 0 +} + +main diff --git a/build/version b/build/version new file mode 100755 index 0000000..2545f25 --- /dev/null +++ b/build/version @@ -0,0 +1,10 @@ +#!/bin/bash + +rev=`git describe` +subbuild=`echo $rev | awk -F'-' '{print $2}'` + +if [ "$subbuild" != "" ] +then + rev=`echo $rev | awk -F'-' '{printf("%s-%s\n",$1,$2)}'` +fi +echo $rev diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index f236661..525ca25 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -5,7 +5,10 @@ export DEB_BUILD_ROOT = $(DEB_SOURCE_ROOT)/BUILD export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike -REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +#REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +REV = $(shell build/version) +OS = $(shell build/os_version) + MANIFEST_DIR = manifest/TEMP .PHONY: default @@ -43,7 +46,7 @@ dist: sed 's/@VERSION@/'$(REV)'/g' $(DEB_BUILD_ROOT)/DEBIAN/control - fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) pkg/deb/DEBS + fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) pkg/packages/act-$(REV).$(OS).x86_64.deb rm -rf dist distclean: diff --git a/pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb b/pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb new file mode 100644 index 0000000000000000000000000000000000000000..6eeac54c774b3aeb0a083086dd5d6b1c326b073e GIT binary patch literal 47608 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 literal 0 HcmV?d00001 From 14bd8918a31f8f2156d81f67c6e3f9b912c1a598 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 15:43:20 -0700 Subject: [PATCH 40/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 57aec22..6b379a1 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} OS_VER: ${{ matrix.os }} - run: make all deb REV=$GIT_TAG_NAME OS=$OS_VER + run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From 630e9b197392f26dab38b739732d492827b598b0 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 15:47:18 -0700 Subject: [PATCH 41/97] update workflow --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b379a1..e2d6e90 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -10,13 +10,13 @@ jobs: build: strategy: matrix: - os: ['ubuntu-latest', 'ubuntu-18.04'] + os: ['ubuntu-20.04', 'ubuntu-18.04'] runs-on: ${{ matrix.os }} steps: - name: Install Dependencies (Ubuntu-latest) run: sudo apt-get install make gcc libc6-dev - if: matrix.os == 'ubuntu-latest' + if: matrix.os == 'ubuntu-20.04' - name: Install Dependencies (Ubuntu-18.04) run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-18.04' From 0d7316c72e2b8c0f63c73e2c31f53fbb681f698b Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 15:52:39 -0700 Subject: [PATCH 42/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e2d6e90..fb49f30 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,7 @@ jobs: env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} OS_VER: ${{ matrix.os }} - run: make all deb + run: make all deb REV=$GIT_TAG_NAME OS=$OS_VER - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From 931ef9d997d9ba6ec7d29dcdc3eed98bd12640b5 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 16:03:21 -0700 Subject: [PATCH 43/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fb49f30..4759304 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,6 +36,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ matrix.os }}-${{ steps.previoustag.outputs.tag }} + name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From c49f37d7a9310f91840fede9fb099539572ea883 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 16:18:08 -0700 Subject: [PATCH 44/97] Update build.yml --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4759304..cd75b32 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -32,7 +32,9 @@ jobs: env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} OS_VER: ${{ matrix.os }} - run: make all deb REV=$GIT_TAG_NAME OS=$OS_VER + run: | + echo $GIT_TAG_NAME $OS_VER + make all deb REV=$GIT_TAG_NAME OS=$OS_VER - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From 0e45c3ba1a47b455d5723ec3136ab41bf6125d75 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 16:23:40 -0700 Subject: [PATCH 45/97] Delete act-6.2-37.ubuntu20.04.x86_64.deb --- pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb | Bin 47608 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb diff --git a/pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb b/pkg/packages/act-6.2-37.ubuntu20.04.x86_64.deb deleted file mode 100644 index 6eeac54c774b3aeb0a083086dd5d6b1c326b073e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47608 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 From 6b8004fe8e452f30d51c77cdac812b64c3ea5a1f Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 16:27:59 -0700 Subject: [PATCH 46/97] add debug message --- pkg/Makefile.deb | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 525ca25..bedf5eb 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -18,6 +18,8 @@ default: dist dist: # Build tools package. + @echo $(REV) + @echo $(OS) rm -rf $(DEB_BUILD_ROOT)/* mkdir -p $(DEB_BUILD_ROOT)/DEBIAN mkdir -p $(DEB_BUILD_ROOT)/usr/bin From fca508717bf95291f56a1f25a1d7395828e01940 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 16:36:36 -0700 Subject: [PATCH 47/97] add packages dir --- pkg/Makefile.deb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index bedf5eb..e41fea0 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -23,7 +23,7 @@ dist: rm -rf $(DEB_BUILD_ROOT)/* mkdir -p $(DEB_BUILD_ROOT)/DEBIAN mkdir -p $(DEB_BUILD_ROOT)/usr/bin - mkdir -p pkg/deb/DEBS + mkdir -p pkg/packages install -m 755 pkg/deb/postinst $(DEB_BUILD_ROOT)/DEBIAN/postinst install -m 755 pkg/deb/prerm $(DEB_BUILD_ROOT)/DEBIAN/prerm install -m 644 pkg/deb/control $(DEB_BUILD_ROOT)/DEBIAN/control From 637c8ebf9d4b1cc4ec3eab314ad857ffcb7d516f Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 16:59:07 -0700 Subject: [PATCH 48/97] Update build.yml --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index cd75b32..71574ef 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,8 @@ jobs: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} OS_VER: ${{ matrix.os }} run: | - echo $GIT_TAG_NAME $OS_VER + echo $GIT_TAG_NAME + echo $OS_VER make all deb REV=$GIT_TAG_NAME OS=$OS_VER - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From ce0a59ec18121a6eedb4c832ba0657587e6cff6d Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 17:08:55 -0700 Subject: [PATCH 49/97] Update build.yml --- .github/workflows/build.yml | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 71574ef..306f9d5 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,10 +24,7 @@ jobs: uses: actions/checkout@v2 - name: Get Latest Tag id: previoustag - uses: WyriHaximus/github-action-get-previous-tag@v1 - with: - # Fallback tag to use when no previous tag can be found - fallback: 6.3 + uses: little-core-labs/get-git-tag@v3.0.2 - name: build env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} From 67c44682bd7d01a671598f56f9c6b14540579fe6 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 17:38:32 -0700 Subject: [PATCH 50/97] Update build.yml --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 306f9d5..baf692e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,7 +24,9 @@ jobs: uses: actions/checkout@v2 - name: Get Latest Tag id: previoustag - uses: little-core-labs/get-git-tag@v3.0.2 + uses: "WyriHaximus/github-action-get-previous-tag@v1" + with: + fallback: 6.3 - name: build env: GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} From 6824c6e148fb25d34aa37800a0e0f460c0be1937 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 17:45:03 -0700 Subject: [PATCH 51/97] Update build.yml --- .github/workflows/build.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index baf692e..ae5aa7c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,7 +21,8 @@ jobs: run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-18.04' - name: Get Sources - uses: actions/checkout@v2 + uses: actions/checkout@v2 + - run: git fetch --prune --unshallow - name: Get Latest Tag id: previoustag uses: "WyriHaximus/github-action-get-previous-tag@v1" From 88228089f808a53ca957148460397b5e8fc09e2c Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 20:49:26 -0700 Subject: [PATCH 52/97] Update build.yml --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ae5aa7c..c30b908 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -21,8 +21,9 @@ jobs: run: sudo apt-get install make gcc libc6-dev if: matrix.os == 'ubuntu-18.04' - name: Get Sources - uses: actions/checkout@v2 - - run: git fetch --prune --unshallow + uses: actions/checkout@v2 + - name: Fetch repo history + run: git fetch --prune --unshallow - name: Get Latest Tag id: previoustag uses: "WyriHaximus/github-action-get-previous-tag@v1" From 116c25769718f71eff55b57e115f8139e6bc4374 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 20:54:07 -0700 Subject: [PATCH 53/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c30b908..0361c4e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -36,7 +36,7 @@ jobs: run: | echo $GIT_TAG_NAME echo $OS_VER - make all deb REV=$GIT_TAG_NAME OS=$OS_VER + make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From 4de8f945b13b68a1672cdcd0e22ebcce4c2a9d2a Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 20:59:07 -0700 Subject: [PATCH 54/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0361c4e..ee40f92 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} + name: act-$GIT_TAG_NAME-$OS_VER path: pkg/packages if-no-files-found: error From 7099e721eb61973bbdd4f8dd25721d9bfa9fd039 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:06:01 -0700 Subject: [PATCH 55/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index ee40f92..01af628 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-$GIT_TAG_NAME-$OS_VER + name: act-${GIT_TAG_NAME}-${OS_VER} path: pkg/packages if-no-files-found: error From 25c4d58804127f3a9c854b695cbe3f70ce22e670 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:07:40 -0700 Subject: [PATCH 56/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 01af628..6f9e44d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${GIT_TAG_NAME}-${OS_VER} + name: act-${{ GIT_TAG_NAME }}-${{ OS_VER }} path: pkg/packages if-no-files-found: error From 073a0ef8fbe19b14cd13df34af8eb150bf0cb827 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:09:13 -0700 Subject: [PATCH 57/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6f9e44d..4f1be6e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -40,6 +40,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ GIT_TAG_NAME }}-${{ OS_VER }} + name: act-$(GIT_TAG_NAME)-$(OS_VER) path: pkg/packages if-no-files-found: error From b53f78e965f522d2d4fba6b05015524b3b5320bf Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:22:37 -0700 Subject: [PATCH 58/97] Update build.yml --- .github/workflows/build.yml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 4f1be6e..1e39784 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,17 +29,18 @@ jobs: uses: "WyriHaximus/github-action-get-previous-tag@v1" with: fallback: 6.3 + - uses: olegtarasov/get-tag@v2.1 + id: tagName + with: + tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. + tagRegexGroup: 1 - name: build - env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} - OS_VER: ${{ matrix.os }} run: | - echo $GIT_TAG_NAME - echo $OS_VER + echo "tag: $GIT_TAG_NAME" make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-$(GIT_TAG_NAME)-$(OS_VER) + name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From c71574bbbe5e13af45e090b1ea174557b938a858 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:26:11 -0700 Subject: [PATCH 59/97] Update build.yml --- .github/workflows/build.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1e39784..f4c97de 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -35,8 +35,10 @@ jobs: tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. tagRegexGroup: 1 - name: build + env: + GIT_TAG_NAME: ${{ steps.tagName.outputs.tag }} run: | - echo "tag: $GIT_TAG_NAME" + echo $GIT_TAG_NAME make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From ab559da6373c3bbcbfb05ebfc82a29ce0fceb8d2 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:30:42 -0700 Subject: [PATCH 60/97] Update build.yml --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f4c97de..e8eeca7 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,8 @@ jobs: uses: "WyriHaximus/github-action-get-previous-tag@v1" with: fallback: 6.3 - - uses: olegtarasov/get-tag@v2.1 + - name: Get tag + uses: olegtarasov/get-tag@v2.1 id: tagName with: tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. @@ -38,7 +39,7 @@ jobs: env: GIT_TAG_NAME: ${{ steps.tagName.outputs.tag }} run: | - echo $GIT_TAG_NAME + echo $GIT_TAG_NAME ${{ steps.tagName.outputs.tag }} make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From efe4732fe17678976df4fe5399db8ab56d3f7699 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:32:39 -0700 Subject: [PATCH 61/97] Update build.yml --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e8eeca7..6a96e65 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,13 +33,12 @@ jobs: uses: olegtarasov/get-tag@v2.1 id: tagName with: - tagRegex: "(.*)" # Optional. Returns specified group text as tag name. Full tag string is returned if regex is not defined. tagRegexGroup: 1 - name: build env: GIT_TAG_NAME: ${{ steps.tagName.outputs.tag }} run: | - echo $GIT_TAG_NAME ${{ steps.tagName.outputs.tag }} + echo $GIT_TAG_NAME make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From ffd85378a9e56b125f1691ed0b4a65d51cc858dd Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:35:26 -0700 Subject: [PATCH 62/97] Update build.yml --- .github/workflows/build.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6a96e65..8154aee 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,14 +29,9 @@ jobs: uses: "WyriHaximus/github-action-get-previous-tag@v1" with: fallback: 6.3 - - name: Get tag - uses: olegtarasov/get-tag@v2.1 - id: tagName - with: - tagRegexGroup: 1 - name: build env: - GIT_TAG_NAME: ${{ steps.tagName.outputs.tag }} + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} run: | echo $GIT_TAG_NAME make all deb From f5640a74ea889e2c4829fca7a79e2d6e13226ca4 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:43:50 -0700 Subject: [PATCH 63/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8154aee..a4a0ba0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,7 +26,7 @@ jobs: run: git fetch --prune --unshallow - name: Get Latest Tag id: previoustag - uses: "WyriHaximus/github-action-get-previous-tag@v1" + uses: "WyriHaximus/github-action-get-previous-tag@v1.1.0" with: fallback: 6.3 - name: build From 20b4f71fc18fbbf391a37b6ddb86cca41d985f84 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 21:55:25 -0700 Subject: [PATCH 64/97] Update build.yml --- .github/workflows/build.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a4a0ba0..224bb17 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,18 +26,17 @@ jobs: run: git fetch --prune --unshallow - name: Get Latest Tag id: previoustag - uses: "WyriHaximus/github-action-get-previous-tag@v1.1.0" - with: - fallback: 6.3 + uses: nimblehq/branch-tag-action@v1.2 - name: build env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} + GIT_TAG_NAME: ${{ steps.previoustag.outputs.branch_tag }} run: | echo $GIT_TAG_NAME + echo "or ${{ env.BRANCH_TAG }}" make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} + name: act-${{ steps.previoustag.outputs.branch_tag }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From 66e2a2faf279393becc3310641e59f0a1e072738 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:02:47 -0700 Subject: [PATCH 65/97] Update build.yml --- .github/workflows/build.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 224bb17..1f971af 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,17 +26,18 @@ jobs: run: git fetch --prune --unshallow - name: Get Latest Tag id: previoustag - uses: nimblehq/branch-tag-action@v1.2 + uses: WyriHaximus/github-action-get-previous-tag@v1.1.0 + with: + fallback: 0.0 - name: build env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.branch_tag }} + GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} run: | echo $GIT_TAG_NAME - echo "or ${{ env.BRANCH_TAG }}" make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ steps.previoustag.outputs.branch_tag }}-${{ matrix.os }} + name: act-${{ env.GIT_TAG_NAME }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From 025feeddcd7383ff58e83c8785f3b9f151541dac Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:06:25 -0700 Subject: [PATCH 66/97] Update build.yml --- .github/workflows/build.yml | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1f971af..f191b27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,14 +30,10 @@ jobs: with: fallback: 0.0 - name: build - env: - GIT_TAG_NAME: ${{ steps.previoustag.outputs.tag }} - run: | - echo $GIT_TAG_NAME - make all deb + run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ env.GIT_TAG_NAME }}-${{ matrix.os }} + name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From 7027284d188fd1ebb444535212d572021e0ceab4 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:32:53 -0700 Subject: [PATCH 67/97] Update build.yml --- .github/workflows/build.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f191b27..b3986ec 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,9 +26,10 @@ jobs: run: git fetch --prune --unshallow - name: Get Latest Tag id: previoustag - uses: WyriHaximus/github-action-get-previous-tag@v1.1.0 + uses: olegtarasov/get-tag@v2.1 with: - fallback: 0.0 + tagRegex: "(.*)-(.*)-.*" + tagRegexGroup: 2 - name: build run: make all deb - name: Upload Artifact From 652bf59bb520090a902bb7520e949f091fcf731f Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:35:01 -0700 Subject: [PATCH 68/97] Update build.yml --- .github/workflows/build.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b3986ec..7abd5c2 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,8 +28,7 @@ jobs: id: previoustag uses: olegtarasov/get-tag@v2.1 with: - tagRegex: "(.*)-(.*)-.*" - tagRegexGroup: 2 + tagRegexGroup: 0 - name: build run: make all deb - name: Upload Artifact From 28a81cee973745c94357cbbc2e0c0eaf8ae4a1e6 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:37:15 -0700 Subject: [PATCH 69/97] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7abd5c2..002bc91 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: - name: Fetch repo history run: git fetch --prune --unshallow - name: Get Latest Tag - id: previoustag + id: tagName uses: olegtarasov/get-tag@v2.1 with: tagRegexGroup: 0 @@ -34,6 +34,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} + name: act-${{ steps.tagName.outputs.tag }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From a122383a463bb76e167edd7e30fe338abac8971d Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:39:12 -0700 Subject: [PATCH 70/97] Update build.yml --- .github/workflows/build.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 002bc91..62a33e0 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -27,8 +27,6 @@ jobs: - name: Get Latest Tag id: tagName uses: olegtarasov/get-tag@v2.1 - with: - tagRegexGroup: 0 - name: build run: make all deb - name: Upload Artifact From e75da8c72df91168eddd0d7f514f616d6563b064 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 22:44:29 -0700 Subject: [PATCH 71/97] Update build.yml --- .github/workflows/build.yml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 62a33e0..f191b27 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,13 +25,15 @@ jobs: - name: Fetch repo history run: git fetch --prune --unshallow - name: Get Latest Tag - id: tagName - uses: olegtarasov/get-tag@v2.1 + id: previoustag + uses: WyriHaximus/github-action-get-previous-tag@v1.1.0 + with: + fallback: 0.0 - name: build run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ steps.tagName.outputs.tag }}-${{ matrix.os }} + name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From 142f71cc7b9703d3cb602311f35c3bfa5384559b Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 22:58:20 -0700 Subject: [PATCH 72/97] Test export env --- .github/workflows/build.yml | 5 ++++- pkg/Makefile.deb | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f191b27..b93d084 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,7 +30,10 @@ jobs: with: fallback: 0.0 - name: build - run: make all deb + run: | + make all deb + echo $REV + echo $OS - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index e41fea0..fd0875a 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -6,8 +6,8 @@ export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike #REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) -REV = $(shell build/version) -OS = $(shell build/os_version) +export REV = $(shell build/version) +export OS = $(shell build/os_version) MANIFEST_DIR = manifest/TEMP From 3d1180f726015d12123c35ef30f1e99c8ecf8b7b Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Wed, 29 Sep 2021 23:25:38 -0700 Subject: [PATCH 73/97] export env --- .github/workflows/build.yml | 5 ++++- pkg/Makefile.deb | 6 ++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b93d084..f609f3f 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,10 +30,13 @@ jobs: with: fallback: 0.0 - name: build + env: + REV: make -f pkg/Makefile print-REV + OS: make -f pkg/Makefile print-OS run: | - make all deb echo $REV echo $OS + make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index fd0875a..722bf70 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -6,8 +6,8 @@ export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike #REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) -export REV = $(shell build/version) -export OS = $(shell build/os_version) +REV = $(shell build/version) +OS = $(shell build/os_version) MANIFEST_DIR = manifest/TEMP @@ -54,3 +54,5 @@ dist: distclean: rm -rf $(DEB_SOURCE_ROOT) rm -rf pkg/deb/DEBS + +print-% : ; @echo $($*) From 36235d62030bc640fa950c9725c2c17bd5ae53cb Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 23:37:56 -0700 Subject: [PATCH 74/97] Update build.yml --- .github/workflows/build.yml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f609f3f..df11b0e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,13 +29,14 @@ jobs: uses: WyriHaximus/github-action-get-previous-tag@v1.1.0 with: fallback: 0.0 + - name: Set env + run: echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV + - name: Test + run: echo $GITHUB_SHA_SHORT - name: build - env: - REV: make -f pkg/Makefile print-REV - OS: make -f pkg/Makefile print-OS run: | - echo $REV - echo $OS + echo $GITHUB_SHA_SHORT + echo $GITHUB_SHA make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From c8dc36cac68a3eb711e2276059a16057e14bb48b Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 23:44:35 -0700 Subject: [PATCH 75/97] Update build.yml --- .github/workflows/build.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index df11b0e..0b764ed 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -30,13 +30,21 @@ jobs: with: fallback: 0.0 - name: Set env - run: echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV + run: | + echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV + echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV + echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - name: Test - run: echo $GITHUB_SHA_SHORT + run: | + echo $GITHUB_SHA_SHORT + echo $REV + echo $OS - name: build run: | echo $GITHUB_SHA_SHORT echo $GITHUB_SHA + echo $REV + echo $OS make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From 6413a4cec652b248793aa378db39872f5ce3e9cc Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 23:48:22 -0700 Subject: [PATCH 76/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0b764ed..0c8f46a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -49,6 +49,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ steps.previoustag.outputs.tag }}-${{ matrix.os }} + name: act-$REV-${{ matrix.os }} path: pkg/packages if-no-files-found: error From feed66b66ab54a7ec631e8c15022e58a8c06266c Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 23:51:59 -0700 Subject: [PATCH 77/97] Update build.yml --- .github/workflows/build.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c8f46a..d25c436 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -31,24 +31,16 @@ jobs: fallback: 0.0 - name: Set env run: | - echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - - name: Test - run: | - echo $GITHUB_SHA_SHORT - echo $REV - echo $OS - name: build run: | - echo $GITHUB_SHA_SHORT - echo $GITHUB_SHA echo $REV echo $OS make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-$REV-${{ matrix.os }} + name: act-${{ env.REV }}-${{ matrix.os }} path: pkg/packages if-no-files-found: error From eb29b71c271c2b94a8ea76427d70741b92625baa Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 29 Sep 2021 23:56:57 -0700 Subject: [PATCH 78/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index d25c436..6880ecc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,6 +41,6 @@ jobs: - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ env.REV }}-${{ matrix.os }} + name: act-${{ env.REV }}-${{ env.OS }} path: pkg/packages if-no-files-found: error From e553e739b2773489afceda640247c64f973edd45 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Thu, 30 Sep 2021 00:25:32 -0700 Subject: [PATCH 79/97] Update build.yml --- .github/workflows/build.yml | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6880ecc..83a2c6b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -24,20 +24,12 @@ jobs: uses: actions/checkout@v2 - name: Fetch repo history run: git fetch --prune --unshallow - - name: Get Latest Tag - id: previoustag - uses: WyriHaximus/github-action-get-previous-tag@v1.1.0 - with: - fallback: 0.0 - name: Set env run: | echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - name: build - run: | - echo $REV - echo $OS - make all deb + run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From a19ee63ad76a2848ab29f9c729cc467842425390 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Thu, 30 Sep 2021 01:48:09 -0700 Subject: [PATCH 80/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 83a2c6b..0c1d1bc 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - name: build - run: make all deb + run: make all deb REV=6.2 - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From e02f0ab6910e1155ba7a65f08d9cad5152d54225 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Thu, 30 Sep 2021 02:05:05 -0700 Subject: [PATCH 81/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c1d1bc..83a2c6b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -29,7 +29,7 @@ jobs: echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - name: build - run: make all deb REV=6.2 + run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From b04872b57739f66ab7ebea713d46141b236d5485 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Thu, 30 Sep 2021 09:58:51 -0700 Subject: [PATCH 82/97] Update build.yml --- .github/workflows/build.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 83a2c6b..60b23b9 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,11 +1,8 @@ name: Build ACT on: - push: - branches: [ PROD-2028 ] - pull_request: - branches: [ PROD-2028 ] - + workflow_dispatch: + jobs: build: strategy: From 67ae41bfe3c751e74832c4ad515b975d026950b4 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Thu, 30 Sep 2021 10:12:21 -0700 Subject: [PATCH 83/97] Update build.yml --- .github/workflows/build.yml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 60b23b9..8884570 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,7 +2,16 @@ name: Build ACT on: workflow_dispatch: - + inputs: + name: + description: 'Person to greet' + required: true + default: 'Aerospike' + home: + description: 'location' + required: false + default: 'The Aerospike' + jobs: build: strategy: From 622a2e9589ed594643fa6a3a21a44e999c72f725 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Fri, 1 Oct 2021 09:42:04 -0700 Subject: [PATCH 84/97] add rpm package --- .github/workflows/build.yml | 12 ++--------- pkg/Makefile.deb | 3 ++- pkg/Makefile.rpm | 41 +++++++++++++++++++++++++++++++++++++ 3 files changed, 45 insertions(+), 11 deletions(-) create mode 100644 pkg/Makefile.rpm diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 8884570..328e50a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -1,16 +1,8 @@ name: Build ACT on: - workflow_dispatch: - inputs: - name: - description: 'Person to greet' - required: true - default: 'Aerospike' - home: - description: 'location' - required: false - default: 'The Aerospike' + push: + branch: [ PROD-2028 ] jobs: build: diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index 722bf70..a677ca2 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -17,7 +17,7 @@ default: dist .PHONY: dist dist: - # Build tools package. + # Build act package. @echo $(REV) @echo $(OS) rm -rf $(DEB_BUILD_ROOT)/* @@ -54,5 +54,6 @@ dist: distclean: rm -rf $(DEB_SOURCE_ROOT) rm -rf pkg/deb/DEBS + rm -rf pkg/packages print-% : ; @echo $($*) diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm new file mode 100644 index 0000000..4711370 --- /dev/null +++ b/pkg/Makefile.rpm @@ -0,0 +1,41 @@ +# Build ACT rpm distribution. + +export RPM_SOURCE_ROOT = $(shell echo `pwd`/dist) +export RPM_BUILD_ROOT = $(RPM_SOURCE_ROOT)/BUILD +export CL_BASE = $(RPM_BUILD_ROOT)/opt/aerospike +export ETC_BASE = $(RPM_BUILD_ROOT)/etc/aerospike + +MANIFEST_DIR = manifest/TEMP +REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +OS = ubuntu + +.PHONY: default +default: dist + mkdir -p pkg/packages + mkdir -p $(RPM_BUILD_ROOT) + mkdir -p $(RPM_SOURCE_ROOT)/RPMS/x86_64 + mkdir -p $(RPM_BUILD_ROOT)/usr/bin + + sed 's/@VERSION@/'$(REV)'/g' pkg/act_v.spec + sed -i 's/@RELEASE@/'$(OS)'/g' pkg/act_v.spec + + rpmbuild -bb -vv --define "dist .$(OS)" --buildroot $(RPM_BUILD_ROOT) pkg/act_v.spec + find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} pkg/packages \; + rm -rf pkg/act_v.spec dist + +distclean: + rm -rf $(RPM_BUILD_ROOT) + rm -rf pkg/packages: + +.PHONY: dist +dist: + + mkdir -p $(CL_BASE) + mkdir -p $(ETC_BASE) + mkdir -p $(CL_BASE)/bin + + # act + install -m 755 target/bin/act_* $(CL_BASE)/bin/ + install -m 755 analysis/act_latency.py $(CL_BASE)/bin/ + install -m 755 config/act_index.conf $(ETC_BASE)/ + install -m 755 config/act_storage.conf $(ETC_BASE)/ From 6bb81cf9eb1d1d1bb960d41298169959855610a4 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Fri, 1 Oct 2021 11:06:03 -0700 Subject: [PATCH 85/97] rpm packaging --- .gitignore | 6 ++++++ Makefile | 3 +++ analysis/act_latency.py | 2 +- build/version | 4 ++-- pkg/Makefile.rpm | 9 ++++++--- 5 files changed, 18 insertions(+), 6 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..74e51f4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +bin +obj +target +dist +act_v.spec +pkg/packages diff --git a/Makefile b/Makefile index 679831f..5685039 100755 --- a/Makefile +++ b/Makefile @@ -5,6 +5,7 @@ DIR_OBJ = $(DIR_TARGET)/obj DIR_BIN = $(DIR_TARGET)/bin DIR_RPM = pkg/rpm/RPMS DIR_DEB = pkg/deb/DEBS +DIR_PKG = pkg/packages SRC_DIRS = common index prep storage OBJ_DIRS = $(SRC_DIRS:%=$(DIR_OBJ)/src/%) @@ -68,6 +69,8 @@ clean: /bin/rm -rf $(DIR_TARGET) /bin/rm -rf $(DIR_RPM) /bin/rm -rf $(DIR_DEB) + /bin/rm -rf $(DIR_PKG) + /bin/rm -rf dist -include $(ALL_DEPENDENCIES) diff --git a/analysis/act_latency.py b/analysis/act_latency.py index d337eb0..1ebb9da 100755 --- a/analysis/act_latency.py +++ b/analysis/act_latency.py @@ -1,4 +1,4 @@ -#!/usr/bin/python +#!/usr/bin/python3 # ------------------------------------------------ # act_latency.py diff --git a/build/version b/build/version index 2545f25..2efb85a 100755 --- a/build/version +++ b/build/version @@ -2,9 +2,9 @@ rev=`git describe` subbuild=`echo $rev | awk -F'-' '{print $2}'` - if [ "$subbuild" != "" ] then - rev=`echo $rev | awk -F'-' '{printf("%s-%s\n",$1,$2)}'` +# rev=`echo $rev | awk -F'-' '{printf("%s-%s\n",$1,$2)}'` + rev=`echo $rev | awk -F'-' '{printf("%s\n",$1)}'` fi echo $rev diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm index 4711370..b269d0b 100644 --- a/pkg/Makefile.rpm +++ b/pkg/Makefile.rpm @@ -6,8 +6,9 @@ export CL_BASE = $(RPM_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(RPM_BUILD_ROOT)/etc/aerospike MANIFEST_DIR = manifest/TEMP -REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) -OS = ubuntu +#REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +REV = $(shell build/version) +OS = $(shell build/os_version) .PHONY: default default: dist @@ -38,4 +39,6 @@ dist: install -m 755 target/bin/act_* $(CL_BASE)/bin/ install -m 755 analysis/act_latency.py $(CL_BASE)/bin/ install -m 755 config/act_index.conf $(ETC_BASE)/ - install -m 755 config/act_storage.conf $(ETC_BASE)/ + install -m 755 config/act_storage.conf $(ETC_BASE)/ + +print-% : ; @echo $($*) From 63a3d7b159cfa1f3780ad931a77c4ec8e0b4221b Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Fri, 1 Oct 2021 11:26:18 -0700 Subject: [PATCH 86/97] Update build.yml --- .github/workflows/build.yml | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 328e50a..c981609 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,12 +12,6 @@ jobs: runs-on: ${{ matrix.os }} steps: - - name: Install Dependencies (Ubuntu-latest) - run: sudo apt-get install make gcc libc6-dev - if: matrix.os == 'ubuntu-20.04' - - name: Install Dependencies (Ubuntu-18.04) - run: sudo apt-get install make gcc libc6-dev - if: matrix.os == 'ubuntu-18.04' - name: Get Sources uses: actions/checkout@v2 - name: Fetch repo history @@ -26,8 +20,16 @@ jobs: run: | echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - - name: build - run: make all deb + - name: Config Build Package (Ubuntu-latest) + run: | + sudo apt-get install make gcc libc6-dev + make all deb + if: matrix.os == 'ubuntu-20.04' + - name: Config Build Package (Ubuntu-18.04) + run: | + sudo apt-get install make gcc libc6-dev + make all deb + if: matrix.os == 'ubuntu-18.04' - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: From 6af2cea8aa324293263263f6f580a029ac1dada9 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Fri, 1 Oct 2021 11:32:00 -0700 Subject: [PATCH 87/97] Update build.yml --- .github/workflows/build.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c981609..b633c81 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -23,12 +23,12 @@ jobs: - name: Config Build Package (Ubuntu-latest) run: | sudo apt-get install make gcc libc6-dev - make all deb + make all deb rpm if: matrix.os == 'ubuntu-20.04' - name: Config Build Package (Ubuntu-18.04) run: | sudo apt-get install make gcc libc6-dev - make all deb + make all deb rpm if: matrix.os == 'ubuntu-18.04' - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From 02cb65aba0a3d153a1da30fc9f8b649f07947fc2 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Fri, 1 Oct 2021 14:39:09 -0700 Subject: [PATCH 88/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index b633c81..985836a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -28,7 +28,7 @@ jobs: - name: Config Build Package (Ubuntu-18.04) run: | sudo apt-get install make gcc libc6-dev - make all deb rpm + make all deb if: matrix.os == 'ubuntu-18.04' - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 From b797542ea16bca205070b04170017faf69d20427 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Fri, 1 Oct 2021 14:40:02 -0700 Subject: [PATCH 89/97] Update Makefile.rpm --- pkg/Makefile.rpm | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm index b269d0b..37c850b 100644 --- a/pkg/Makefile.rpm +++ b/pkg/Makefile.rpm @@ -9,6 +9,7 @@ MANIFEST_DIR = manifest/TEMP #REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) REV = $(shell build/version) OS = $(shell build/os_version) +OS = linux .PHONY: default default: dist From b6ebda942fae9c3ff00bcbf58dfee5aaf4d02ce7 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 12 Oct 2021 10:44:54 -0700 Subject: [PATCH 90/97] Update build.yml --- .github/workflows/build.yml | 72 ++++++++++++++++++++++++++++--------- 1 file changed, 56 insertions(+), 16 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 985836a..0d9e279 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -2,37 +2,77 @@ name: Build ACT on: push: - branch: [ PROD-2028 ] + branches: [ PROD-2028 ] jobs: + buils_atl: + runs-on: ubuntu-latest + strategy: + matrix: + container: [ 'centos:7', 'centos:8', 'debian:8', 'debian:9', 'debian:10' ] + container: + image: ${{ matrix.container }} + options: "--entrypoint /bin/bash" + steps: + - name: Install Dependencies (centos) + run: | + yum install -y make gcc git rpm-build + if: matrix.container == 'centos:7' || matrix.container == 'centos:8' + - name: Install Dependencies (Debian) + run: | + apt-get -y update + apt-get -y install make gcc libc6-dev git build-essential + if: | + matrix.container == 'debian:8' || matrix.container == 'debian:9' || matrix.container == 'debian:10' + - name: Clone Source + run: git clone --branch OPS-2028 https://github.com/aerospike/act.git + - name: buils act (centos) + working-directory: ./act + if: matrix.container == 'centos:7' || matrix.container == 'centos:8' + run: | + echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV + echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV + echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV + make act rpm + - name: build act (debian) + working-directory: ./act + if: | + matrix.container == 'debian:8' || matrix.container == 'debian:9' || matrix.container == 'debian:10' + run: | + echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV + echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV + echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV + make act deb + - name: Upload Artifacts + uses: actions/upload-artifact@v2.2.4 + with: + name: act-${{ env.REV }}-${{ env.OS }}-${{ env.GITHUB_SHA_SHORT }} + path: /__w/act/act/act/target/packages/act-* + if-no-files-found: error build: strategy: matrix: - os: ['ubuntu-20.04', 'ubuntu-18.04'] + os: [ 'ubuntu-20.04', 'ubuntu-18.04' ] runs-on: ${{ matrix.os }} steps: + - name: Install Dependencies + run: sudo apt-get install make gcc libc6-dev - name: Get Sources uses: actions/checkout@v2 - - name: Fetch repo history - run: git fetch --prune --unshallow + with: + fetch-depth: 0 - name: Set env run: | echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV - - name: Config Build Package (Ubuntu-latest) - run: | - sudo apt-get install make gcc libc6-dev - make all deb rpm - if: matrix.os == 'ubuntu-20.04' - - name: Config Build Package (Ubuntu-18.04) - run: | - sudo apt-get install make gcc libc6-dev - make all deb - if: matrix.os == 'ubuntu-18.04' + echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV + ls -la + - name: build + run: make act deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: - name: act-${{ env.REV }}-${{ env.OS }} - path: pkg/packages + name: act-${{ env.REV }}-${{ env.OS }}-${{ env.GITHUB_SHA_SHORT }} + path: target/packages if-no-files-found: error From 80828850a4d72870c8fed979a3ac27616aab4dfa Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 12 Oct 2021 10:49:56 -0700 Subject: [PATCH 91/97] Update Makefile --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 5685039..44012aa 100755 --- a/Makefile +++ b/Makefile @@ -3,9 +3,9 @@ DIR_TARGET = target DIR_OBJ = $(DIR_TARGET)/obj DIR_BIN = $(DIR_TARGET)/bin +DIR_PKG = $(DIR_TARGET)/packages DIR_RPM = pkg/rpm/RPMS DIR_DEB = pkg/deb/DEBS -DIR_PKG = pkg/packages SRC_DIRS = common index prep storage OBJ_DIRS = $(SRC_DIRS:%=$(DIR_OBJ)/src/%) From bfdf4acd07b0a2d2288db3c4bf46eb532d2c87df Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Tue, 12 Oct 2021 11:02:39 -0700 Subject: [PATCH 92/97] update makefile & yml file --- .github/workflows/build.yml | 6 +++--- pkg/Makefile.deb | 5 ++--- pkg/Makefile.rpm | 4 ++-- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d9e279..bfdab1c 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -33,7 +33,7 @@ jobs: echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV - make act rpm + make all rpm - name: build act (debian) working-directory: ./act if: | @@ -42,7 +42,7 @@ jobs: echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV - make act deb + make all deb - name: Upload Artifacts uses: actions/upload-artifact@v2.2.4 with: @@ -69,7 +69,7 @@ jobs: echo "GITHUB_SHA_SHORT=$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV ls -la - name: build - run: make act deb + run: make all deb - name: Upload Artifact uses: actions/upload-artifact@v2.2.4 with: diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index a677ca2..acbe00e 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -48,12 +48,11 @@ dist: sed 's/@VERSION@/'$(REV)'/g' $(DEB_BUILD_ROOT)/DEBIAN/control - fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) pkg/packages/act-$(REV).$(OS).x86_64.deb + fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) target/packages/act-$(REV).$(OS).x86_64.deb rm -rf dist distclean: rm -rf $(DEB_SOURCE_ROOT) - rm -rf pkg/deb/DEBS - rm -rf pkg/packages + rm -rf target/packages print-% : ; @echo $($*) diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm index 37c850b..8a9625e 100644 --- a/pkg/Makefile.rpm +++ b/pkg/Makefile.rpm @@ -22,12 +22,12 @@ default: dist sed -i 's/@RELEASE@/'$(OS)'/g' pkg/act_v.spec rpmbuild -bb -vv --define "dist .$(OS)" --buildroot $(RPM_BUILD_ROOT) pkg/act_v.spec - find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} pkg/packages \; + find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} target/packages \; rm -rf pkg/act_v.spec dist distclean: rm -rf $(RPM_BUILD_ROOT) - rm -rf pkg/packages: + rm -rf target/packages: .PHONY: dist dist: From 47a30b9a0442a1a21f8254e3372d039c68371a99 Mon Sep 17 00:00:00 2001 From: Phuc Vinh Date: Tue, 12 Oct 2021 11:17:37 -0700 Subject: [PATCH 93/97] Update makefiles --- Makefile | 1 - pkg/Makefile.deb | 6 ++++-- pkg/Makefile.rpm | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/Makefile b/Makefile index 44012aa..5a25025 100755 --- a/Makefile +++ b/Makefile @@ -69,7 +69,6 @@ clean: /bin/rm -rf $(DIR_TARGET) /bin/rm -rf $(DIR_RPM) /bin/rm -rf $(DIR_DEB) - /bin/rm -rf $(DIR_PKG) /bin/rm -rf dist -include $(ALL_DEPENDENCIES) diff --git a/pkg/Makefile.deb b/pkg/Makefile.deb index acbe00e..562792e 100644 --- a/pkg/Makefile.deb +++ b/pkg/Makefile.deb @@ -5,7 +5,9 @@ export DEB_BUILD_ROOT = $(DEB_SOURCE_ROOT)/BUILD export CL_BASE = $(DEB_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(DEB_BUILD_ROOT)/etc/aerospike + #REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) +DIR_PKG = target/packages REV = $(shell build/version) OS = $(shell build/os_version) @@ -23,7 +25,7 @@ dist: rm -rf $(DEB_BUILD_ROOT)/* mkdir -p $(DEB_BUILD_ROOT)/DEBIAN mkdir -p $(DEB_BUILD_ROOT)/usr/bin - mkdir -p pkg/packages + mkdir -p $(DIR_PKG) install -m 755 pkg/deb/postinst $(DEB_BUILD_ROOT)/DEBIAN/postinst install -m 755 pkg/deb/prerm $(DEB_BUILD_ROOT)/DEBIAN/prerm install -m 644 pkg/deb/control $(DEB_BUILD_ROOT)/DEBIAN/control @@ -48,7 +50,7 @@ dist: sed 's/@VERSION@/'$(REV)'/g' $(DEB_BUILD_ROOT)/DEBIAN/control - fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) target/packages/act-$(REV).$(OS).x86_64.deb + fakeroot dpkg-deb --build $(DEB_BUILD_ROOT) $(DIR_PKG)/act-$(REV).$(OS).x86_64.deb rm -rf dist distclean: diff --git a/pkg/Makefile.rpm b/pkg/Makefile.rpm index 8a9625e..b4ecfb1 100644 --- a/pkg/Makefile.rpm +++ b/pkg/Makefile.rpm @@ -6,14 +6,14 @@ export CL_BASE = $(RPM_BUILD_ROOT)/opt/aerospike export ETC_BASE = $(RPM_BUILD_ROOT)/etc/aerospike MANIFEST_DIR = manifest/TEMP +DIR_PKG = target/packages #REV = $(shell git describe 2>/dev/null; if [ $${?} != 0 ]; then echo 'unknown'; fi) REV = $(shell build/version) OS = $(shell build/os_version) -OS = linux .PHONY: default default: dist - mkdir -p pkg/packages + mkdir -p $(DIR_PKG) mkdir -p $(RPM_BUILD_ROOT) mkdir -p $(RPM_SOURCE_ROOT)/RPMS/x86_64 mkdir -p $(RPM_BUILD_ROOT)/usr/bin @@ -22,7 +22,7 @@ default: dist sed -i 's/@RELEASE@/'$(OS)'/g' pkg/act_v.spec rpmbuild -bb -vv --define "dist .$(OS)" --buildroot $(RPM_BUILD_ROOT) pkg/act_v.spec - find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} target/packages \; + find $(RPM_SOURCE_ROOT)/RPMS -type f -exec mv {} $(DIR_PKG) \; rm -rf pkg/act_v.spec dist distclean: From 559a7e1cff2ddb1aa44dd3288565327a28bb0e09 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 12 Oct 2021 11:20:56 -0700 Subject: [PATCH 94/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index bfdab1c..0d8e06a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: if: | matrix.container == 'debian:8' || matrix.container == 'debian:9' || matrix.container == 'debian:10' - name: Clone Source - run: git clone --branch OPS-2028 https://github.com/aerospike/act.git + run: git clone --branch PROD-2028 https://github.com/aerospike/act.git - name: buils act (centos) working-directory: ./act if: matrix.container == 'centos:7' || matrix.container == 'centos:8' From 78435c1cc1c9eb971e2c8c769d90602f8cc8be70 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 12 Oct 2021 11:56:21 -0700 Subject: [PATCH 95/97] Update build.yml --- .github/workflows/build.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0d8e06a..af8b222 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -9,7 +9,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - container: [ 'centos:7', 'centos:8', 'debian:8', 'debian:9', 'debian:10' ] + container: [ 'centos:7', 'centos:8', 'debian:9', 'debian:10', 'debian:11' ] container: image: ${{ matrix.container }} options: "--entrypoint /bin/bash" @@ -23,7 +23,7 @@ jobs: apt-get -y update apt-get -y install make gcc libc6-dev git build-essential if: | - matrix.container == 'debian:8' || matrix.container == 'debian:9' || matrix.container == 'debian:10' + matrix.container == 'debian:9' || matrix.container == 'debian:10' || matrix.container == 'debian:11' - name: Clone Source run: git clone --branch PROD-2028 https://github.com/aerospike/act.git - name: buils act (centos) @@ -37,7 +37,7 @@ jobs: - name: build act (debian) working-directory: ./act if: | - matrix.container == 'debian:8' || matrix.container == 'debian:9' || matrix.container == 'debian:10' + matrix.container == 'debian:9' || matrix.container == 'debian:10' || matrix.container == 'debian:11' run: | echo "REV=$(make -f pkg/Makefile.deb print-REV)" >> $GITHUB_ENV echo "OS=$(make -f pkg/Makefile.deb print-OS)" >> $GITHUB_ENV @@ -49,12 +49,12 @@ jobs: name: act-${{ env.REV }}-${{ env.OS }}-${{ env.GITHUB_SHA_SHORT }} path: /__w/act/act/act/target/packages/act-* if-no-files-found: error + build: strategy: matrix: os: [ 'ubuntu-20.04', 'ubuntu-18.04' ] runs-on: ${{ matrix.os }} - steps: - name: Install Dependencies run: sudo apt-get install make gcc libc6-dev From ebd6aa94607545e3b8375770caea0c066b9b2b4b Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Wed, 13 Oct 2021 16:31:46 -0700 Subject: [PATCH 96/97] Update build.yml --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af8b222..ae5a647 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -14,7 +14,7 @@ jobs: image: ${{ matrix.container }} options: "--entrypoint /bin/bash" steps: - - name: Install Dependencies (centos) + - name: Install Dependencies (centos 7 & 8) run: | yum install -y make gcc git rpm-build if: matrix.container == 'centos:7' || matrix.container == 'centos:8' From 57679a76b466d55a7c461b9e5fa96b89e174bce7 Mon Sep 17 00:00:00 2001 From: pvinh-spike <81987648+pvinh-spike@users.noreply.github.com> Date: Tue, 19 Oct 2021 15:27:04 -0700 Subject: [PATCH 97/97] Update act_latency.py --- analysis/act_latency.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/analysis/act_latency.py b/analysis/act_latency.py index 1ebb9da..d337eb0 100755 --- a/analysis/act_latency.py +++ b/analysis/act_latency.py @@ -1,4 +1,4 @@ -#!/usr/bin/python3 +#!/usr/bin/python # ------------------------------------------------ # act_latency.py