1
+ name : Static Build
2
+
3
+ on :
4
+ workflow_dispatch :
5
+ pull_request :
6
+ branches :
7
+ - develop
8
+ - release
9
+ push :
10
+ branches :
11
+ - develop
12
+ - release
13
+
14
+ env :
15
+ # Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
16
+ BUILD_TYPE : Release
17
+ CTEST_OUTPUT_ON_FAILURE : 1
18
+
19
+ jobs :
20
+ build :
21
+ # The CMake configure and build commands are platform agnostic and should work equally
22
+ # well on Windows or Mac. You can convert this to a matrix build if you need
23
+ # cross-platform coverage.
24
+ # See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
25
+ strategy :
26
+ matrix :
27
+ os : [ ubuntu-latest ]
28
+ runs-on : ${{ matrix.os }}
29
+
30
+ steps :
31
+ - uses : actions/checkout@v2
32
+
33
+ - name : Build and test static base
34
+ run : |
35
+ docker build -f docker/Dockerfile.static-base -t ns1labs/static-base .
36
+
37
+ - name : Get branch name
38
+ shell : bash
39
+ run : echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV
40
+
41
+ - name : Debug branch name
42
+ run : echo ${{ env.BRANCH_NAME }}
43
+
44
+ - name : Get VERSION
45
+ run : |
46
+ echo "VERSION=`docker run --rm -a stdout --entrypoint cat ns1labs/static-base VERSION`" >> $GITHUB_ENV
47
+
48
+ - name : Debug version
49
+ run : echo ${{ env.VERSION }}
50
+
51
+ - name : Generate ref tag (master)
52
+ if : github.event_name != 'pull_request' && ${{ env.BRANCH_NAME == 'master' }}
53
+ run : |
54
+ echo "REF_TAG=latest" >> $GITHUB_ENV
55
+
56
+ - name : Generate ref tag (develop)
57
+ if : github.event_name != 'pull_request' && ${{ env.BRANCH_NAME == 'develop' }}
58
+ run : |
59
+ echo "REF_TAG=latest-develop" >> $GITHUB_ENV
60
+
61
+ - name : Generate ref tag (release candidate)
62
+ if : github.event_name != 'pull_request' && ${{ env.BRANCH_NAME == 'release' }}
63
+ run : |
64
+ echo "REF_TAG=latest-rc" >> $GITHUB_ENV
65
+
66
+ - name : Debug ref tag
67
+ if : github.event_name != 'pull_request'
68
+ run : echo ${{ env.REF_TAG }}
69
+
70
+ - name : Login to Docker Hub
71
+ if : github.event_name != 'pull_request'
72
+ uses : docker/login-action@v1
73
+ with :
74
+ username : ${{ secrets.DOCKERHUB_USERNAME }}
75
+ password : ${{ secrets.DOCKERHUB_TOKEN }}
76
+
77
+ - name : Build and push static pktvisord container
78
+ if : github.event_name != 'pull_request'
79
+ env :
80
+ BASE_BINARY : pktvisord
81
+ IMAGE_NAME : ns1labs/pktvisord-slim
82
+ run : |
83
+ docker build -f docker/Dockerfile.${{ env.BASE_BINARY }}-static -t ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} -t ${{ env.IMAGE_NAME }}:${{ env.VERSION }} .
84
+ docker push -a ${{ env.IMAGE_NAME }}
85
+ echo "CONT_ID=$(docker create --name ${{ env.BASE_BINARY }}-slim-tmp ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }})" >> $GITHUB_ENV
86
+
87
+ - name : Extract static pktvisord asset
88
+ if : github.event_name != 'pull_request'
89
+ env :
90
+ BASE_BINARY : pktvisord
91
+ IMAGE_NAME : ns1labs/pktvisord-slim
92
+ run : |
93
+ docker cp ${{ env.CONT_ID }}:/${{ env.BASE_BINARY }} ${{github.workspace}}/${{ env.BASE_BINARY }}-linux-x86_64-${{ env.VERSION }}
94
+
95
+ - name : Upload pktvisord artifact
96
+ if : github.event_name != 'pull_request'
97
+ env :
98
+ BINARY_NAME : pktvisord-linux-x86_64-${{ env.VERSION }}
99
+ uses : actions/upload-artifact@v2
100
+ with :
101
+ name : ${{ env.BINARY_NAME }}
102
+ path : ${{github.workspace}}/${{ env.BINARY_NAME }}
103
+
104
+ - name : Build and push static pktvisor-reader container
105
+ if : github.event_name != 'pull_request'
106
+ env :
107
+ BASE_BINARY : pktvisor-reader
108
+ IMAGE_NAME : ns1labs/pktvisor-reader
109
+ run : |
110
+ docker build -f docker/Dockerfile.${{ env.BASE_BINARY }}-static -t ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }} -t ${{ env.IMAGE_NAME }}:${{ env.VERSION }} .
111
+ docker push -a ${{ env.IMAGE_NAME }}
112
+ echo "CONT_ID=$(docker create --name ${{ env.BASE_BINARY }}-slim-tmp ${{ env.IMAGE_NAME }}:${{ env.REF_TAG }})" >> $GITHUB_ENV
113
+
114
+ - name : Extract static pktvisor-reader asset
115
+ if : github.event_name != 'pull_request'
116
+ env :
117
+ BASE_BINARY : pktvisor-reader
118
+ IMAGE_NAME : ns1labs/pktvisor-reader
119
+ run : |
120
+ docker cp ${{ env.CONT_ID }}:/${{ env.BASE_BINARY }} ${{github.workspace}}/${{ env.BASE_BINARY }}-linux-x86_64-${{ env.VERSION }}
121
+
122
+ - name : Upload pktvisor-reader artifact
123
+ if : github.event_name != 'pull_request'
124
+ env :
125
+ BINARY_NAME : pktvisor-reader-linux-x86_64-${{ env.VERSION }}
126
+ uses : actions/upload-artifact@v2
127
+ with :
128
+ name : ${{ env.BINARY_NAME }}
129
+ path : ${{github.workspace}}/${{ env.BINARY_NAME }}
0 commit comments