Skip to content

Commit 02ad285

Browse files
authored
Release tags (#343)
Sets things up so that we can deploy versioned releases.
1 parent 54bdc0b commit 02ad285

File tree

3 files changed

+151
-1
lines changed

3 files changed

+151
-1
lines changed

.github/workflows/create-release.yml

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
on:
2+
release:
3+
types: [edited, created]
4+
5+
name: Upload Release
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
continue-on-error: true
11+
strategy:
12+
matrix:
13+
include:
14+
- distro: centos
15+
release: 7
16+
pkg: rpm
17+
pkg_name: el
18+
- distro: centos
19+
release: 8
20+
pkg: rpm
21+
pkg_name: el
22+
23+
- distro: ubuntu
24+
release: focal
25+
pkg: deb
26+
pkg_name: ubuntu
27+
28+
- distro: debian
29+
release: bullseye
30+
pkg: deb
31+
pkg_name: debian
32+
33+
container:
34+
image: ${{ matrix.distro }}:${{ matrix.release }}
35+
36+
steps:
37+
- name: Checkout code
38+
uses: actions/checkout@v2
39+
40+
- name: Set Version
41+
run: |
42+
echo "KENTIK_KTRANSLATE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
43+
44+
- name: Setup Go
45+
uses: actions/setup-go@v2
46+
with:
47+
go-version: '1.18.3'
48+
49+
- name: Get Deps
50+
shell: bash
51+
run: |
52+
if [ "${{ matrix.distro }}" = "centos" ]
53+
then
54+
if [ "${{ matrix.release }}" = "7" ]
55+
then
56+
yum install -y centos-release-scl
57+
yum install -y make gcc diffutils libpcap-devel rh-ruby27 rh-ruby27-ruby-devel redhat-rpm-config gcc-c++ rh-ruby27-rubygems
58+
scl enable rh-ruby27 bash
59+
else
60+
dnf -y --disablerepo '*' --enablerepo=extras swap centos-linux-repos centos-stream-repos
61+
yum install -y make gcc diffutils ruby-devel redhat-rpm-config gcc-c++
62+
dnf -y --enablerepo=powertools install libpcap-devel
63+
fi
64+
else
65+
apt-get update
66+
apt-get -y install make libpcap-dev ca-certificates build-essential curl ruby ruby-dev
67+
fi
68+
69+
- name: Run Make
70+
run: |
71+
echo ${{ env.KENTIK_KTRANSLATE_VERSION }}
72+
KENTIK_KTRANSLATE_VERSION=${{ env.KENTIK_KTRANSLATE_VERSION }} make
73+
74+
- name: Run Test
75+
run: make test
76+
77+
- name: Install MM DBs
78+
run: |
79+
MM_DOWNLOAD_KEY=${{ secrets.MM_DOWNLOAD_KEY }} ./bin/get_mm.sh
80+
81+
- name: Install SNMP Profiles
82+
uses: actions/checkout@main
83+
with:
84+
repository: kentik/snmp-profiles
85+
path: ./config/profiles
86+
87+
- name: Create package
88+
id: package
89+
uses: kentik/pkg@master
90+
with:
91+
name: ktranslate
92+
version: ${{ env.KENTIK_KTRANSLATE_VERSION }}
93+
arch: x86_64
94+
format: ${{ matrix.pkg }}
95+
package: ktranslate-package.yml
96+
97+
- name: Upload Release Asset
98+
id: upload-release-asset
99+
uses: actions/upload-release-asset@v1
100+
env:
101+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
102+
with:
103+
upload_url: ${{ github.event.release.upload_url }}
104+
asset_path: ${{ steps.package.outputs.package }}
105+
asset_name: ${{ steps.package.outputs.package }}--${{ matrix.distro }}-${{ matrix.release }}
106+
asset_content_type: application/binary
107+
108+
- name: Send to packagecloud
109+
shell: bash
110+
env:
111+
PACKAGECLOUD_TOKEN: ${{ secrets.PACKAGECLOUD_TOKEN }}
112+
run: |
113+
if [ "${{ matrix.release }}" = "7" ] # Centos7 is extra hard to work with.
114+
then
115+
export PATH=/opt/rh/rh-ruby27/root/usr/local/bin:/opt/rh/rh-ruby27/root/usr/bin:/sbin:/bin:/usr/sbin:/usr/bin
116+
export LD_LIBRARY_PATH=/opt/rh/rh-ruby27/root/usr/local/lib64:/opt/rh/rh-ruby27/root/usr/lib64
117+
ruby -v
118+
gem -v
119+
fi
120+
REPO="${{ github.event.repository.name }}"
121+
gem install package_cloud
122+
package_cloud push kentik/$REPO/${{ matrix.pkg_name }}/${{ matrix.release }} ${{ steps.package.outputs.package }}

ktranslate-package.yml

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,18 @@ meta:
44
maintainer: Kentik
55

66
depends:
7-
- libpcap git-core
7+
- git-core
8+
9+
# All fields above marked as `overridable` can be overridden for a given package format in this section.
10+
overrides:
11+
deb:
12+
depends:
13+
- libpcap-dev
14+
- git-core
15+
rpm:
16+
depends:
17+
- libpcap
18+
- git-core
819

920
files:
1021
"/usr/bin/ktranslate":
@@ -98,6 +109,7 @@ dirs:
98109

99110
units:
100111
- ktranslate.service
112+
- ktranslate@.service
101113

102114
scripts:
103115
"post-install": scripts/post-install

ktranslate@.service

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
[Unit]
2+
Description=Kentik KTranslate Service
3+
After=network.target
4+
5+
[Service]
6+
EnvironmentFile=-/etc/default/ktranslate-%i.env
7+
Type=simple
8+
User=ktranslate
9+
WorkingDirectory=/etc/ktranslate
10+
ExecStart=/usr/bin/ktranslate -listen off -mapping /etc/ktranslate/config.json -geo /etc/ktranslate/GeoLite2-Country.mmdb -udrs /etc/ktranslate/udr.csv -api_devices /etc/ktranslate/devices.json -asn /etc/ktranslate/GeoLite2-ASN.mmdb -log_level info $KT_FLAGS
11+
Restart=on-failure
12+
RestartSec=3
13+
## Restart on failure but wait 3 sec.
14+
15+
[Install]
16+
WantedBy=multi-user.target

0 commit comments

Comments
 (0)