Skip to content

Commit 4a02445

Browse files
authored
Build multiple operation system artifacts when releasing the new tag (apache#262)
1 parent 01d8cf7 commit 4a02445

File tree

3 files changed

+127
-44
lines changed

3 files changed

+127
-44
lines changed

.github/workflows/docker_image.yaml

-42
This file was deleted.

.github/workflows/release.yaml

+125
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,125 @@
1+
name: release linux packages and docker image
2+
3+
on:
4+
push:
5+
tags:
6+
- v*
7+
8+
env:
9+
FPM_OPTS: "-s dir --prefix '/www/kvrocks' -n kvrocks --epoch 7 \
10+
--config-files /www/kvrocks/conf/kvrocks.conf --iteration release \
11+
--verbose --category 'bitleak/projects' --description 'kvrocks' \
12+
--url 'https://github.com/bitleak' --license 'BSD'"
13+
14+
jobs:
15+
build-deb-packages-and-push-docker-image:
16+
name: Build Deb Packages And Push Docker Image
17+
runs-on: ubuntu-18.04
18+
steps:
19+
20+
- name: Checkout Code Base
21+
uses: actions/[email protected]
22+
with:
23+
fetch-depth: 64
24+
25+
- name: Install Dependencies
26+
run: |
27+
sudo apt-get install -y tar libsnappy-dev
28+
mkdir -p build/bin
29+
mkdir -p build/conf
30+
31+
- name: Build
32+
run: |
33+
make -j4
34+
cp src/kvrocks build/bin/
35+
cp src/kvrocks2redis build/bin/
36+
cp kvrocks.conf build/conf/
37+
38+
- name: Set ENV
39+
run: |
40+
echo "RELEASE_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
41+
echo "VERSION=${GITHUB_REF#refs/*/v}" >> $GITHUB_ENV
42+
43+
- name: Package Deb
44+
uses: bpicode/[email protected]
45+
with:
46+
fpm_args: '.'
47+
fpm_opts: '-t deb -v ${{ env.VERSION }} -C ./build --depends libsnappy-dev ${{ env.FPM_OPTS }}'
48+
49+
- name: Upload Deb package
50+
uses: kittaakos/[email protected]
51+
with:
52+
path: ./*.deb
53+
54+
- name: Login Docker Hub
55+
uses: docker/login-action@v1
56+
with:
57+
username: ${{ secrets.DOCKER_USERNAME }}
58+
password: ${{ secrets.DOCKER_PASSWORD }}
59+
60+
- name: Build And Push Docker Image
61+
run: |
62+
docker build -t bitleak/kvrocks:$RELEASE_TAG .
63+
docker tag bitleak/kvrocks:$RELEASE_TAG bitleak/kvrocks:latest
64+
docker push bitleak/kvrocks:$RELEASE_TAG
65+
docker push bitleak/kvrocks:latest
66+
67+
build-rpm-packages:
68+
name: Build Rpm Packages
69+
runs-on: ubuntu-18.04
70+
container: centos:7
71+
steps:
72+
73+
- name: Install Dependencies
74+
run: |
75+
yum install -y epel-release
76+
yum install -y https://packages.endpoint.com/rhel/7/os/x86_64/endpoint-repo-1.7-1.x86_64.rpm
77+
yum install -y git gcc gcc-c++ make snappy snappy-devel autoconf automake libtool which gtest gtest-devel
78+
79+
- name: Checkout Code Base
80+
uses: actions/[email protected]
81+
with:
82+
fetch-depth: 64
83+
84+
- name: Build
85+
run: |
86+
make -j4
87+
mkdir -p build/bin
88+
mkdir -p build/conf
89+
cp src/kvrocks build/bin/
90+
cp src/kvrocks2redis build/bin/
91+
cp kvrocks.conf build/conf/
92+
93+
- name: Set ENV
94+
run: |
95+
echo "VERSION=${GITHUB_REF#refs/*/v}" >> $GITHUB_ENV
96+
97+
- name: Package Rpm
98+
uses: bpicode/[email protected]
99+
with:
100+
fpm_args: '.'
101+
fpm_opts: "-t rpm -v ${{ env.VERSION }} -C ./build --depends snappy ${{ env.FPM_OPTS }}"
102+
103+
- name: Upload Rpm Package
104+
uses: kittaakos/[email protected]
105+
with:
106+
path: ./*.rpm
107+
108+
release:
109+
name: Release Linux Packages
110+
needs: [ build-deb-packages-and-push-docker-image, build-rpm-packages ]
111+
runs-on: ubuntu-18.04
112+
steps:
113+
114+
- name: Download Linux Packages
115+
uses: actions/download-artifact@v2
116+
117+
- name: Release
118+
uses: softprops/action-gh-release@v1
119+
with:
120+
files: |
121+
./*.deb
122+
./*.rpm
123+
env:
124+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
125+

Dockerfile

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ FROM ubuntu:18.04
33
RUN apt update && apt install -y libsnappy-dev
44
WORKDIR /kvrocks
55

6-
RUN mkdir /data
7-
COPY ./build/kvrocks ./bin/
6+
RUN mkdir /data
7+
COPY ./build/bin/kvrocks ./bin/
88
COPY ./kvrocks.conf ./conf/
99

1010
EXPOSE 6666:6666

0 commit comments

Comments
 (0)