Skip to content

Commit 49720f6

Browse files
authored
Merge pull request #163 from flant/fix_update_libjq-go
fix: update libjq-go: better compile performance
2 parents 9a4c460 + 6249e5b commit 49720f6

9 files changed

+41
-44
lines changed

.github/workflows/build.yaml

+4-5
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ jobs:
4646
# Restore libjq-go-build directory from cache or build it, upload it as artifact for other jobs.
4747
- name: Extract libjq-go.lock from go.mod
4848
run: |
49-
grep 'flant/libjq-go' go.mod > libjq-go.lock
50-
cat libjq-go.lock
49+
go list -m github.com/flant/libjq-go | tee > libjq-go.lock
5150
5251
- name: Cache libjq libraries
5352
id: libjq-cache
@@ -64,7 +63,7 @@ jobs:
6463
6564
git clone https://github.com/flant/libjq-go libjq-go
6665
cd libjq-go
67-
git submodule update --init
66+
git submodule update --init --recursive
6867
sudo ./scripts/install-libjq-dependencies-ubuntu.sh
6968
7069
./scripts/build-libjq-static.sh ${GITHUB_WORKSPACE}/libjq-go ${GITHUB_WORKSPACE}/libjq
@@ -75,10 +74,10 @@ jobs:
7574
run: |
7675
echo ::set-env name=CGO_ENABLED::1
7776
78-
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/build/jq/include"
77+
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/include"
7978
echo ::set-env name=CGO_CFLAGS::${CGO_CFLAGS}
8079
81-
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/build/onig/lib -L$GITHUB_WORKSPACE/libjq/build/jq/lib"
80+
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/lib"
8281
echo ::set-env name=CGO_LDFLAGS::${CGO_LDFLAGS}
8382
8483
echo ::set-env name=GOOS::linux

.github/workflows/lint.yaml

+4-5
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,7 @@ jobs:
4747
# Restore libjq-go-build directory from cache or build it, upload it as artifact for other jobs.
4848
- name: Extract libjq-go.lock from go.mod
4949
run: |
50-
grep 'flant/libjq-go' go.mod > libjq-go.lock
51-
cat libjq-go.lock
50+
go list -m github.com/flant/libjq-go | tee > libjq-go.lock
5251
5352
- name: Cache libjq libraries
5453
id: libjq-cache
@@ -65,7 +64,7 @@ jobs:
6564
6665
git clone https://github.com/flant/libjq-go libjq-go
6766
cd libjq-go
68-
git submodule update --init
67+
git submodule update --init --recursive
6968
sudo ./scripts/install-libjq-dependencies-ubuntu.sh
7069
7170
./scripts/build-libjq-static.sh ${GITHUB_WORKSPACE}/libjq-go ${GITHUB_WORKSPACE}/libjq
@@ -76,10 +75,10 @@ jobs:
7675
run: |
7776
echo ::set-env name=CGO_ENABLED::1
7877
79-
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/build/jq/include"
78+
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/include"
8079
echo ::set-env name=CGO_CFLAGS::${CGO_CFLAGS}
8180
82-
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/build/onig/lib -L$GITHUB_WORKSPACE/libjq/build/jq/lib"
81+
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/lib"
8382
echo ::set-env name=CGO_LDFLAGS::${CGO_LDFLAGS}
8483
8584
echo ::set-env name=GOOS::linux

.github/workflows/tests.yaml

+10-13
Original file line numberDiff line numberDiff line change
@@ -76,8 +76,7 @@ jobs:
7676
# Restore libjq-go-build directory from cache or build it, upload it as artifact for other jobs.
7777
- name: Extract libjq-go.lock from go.mod
7878
run: |
79-
grep 'flant/libjq-go' go.mod > libjq-go.lock
80-
cat libjq-go.lock
79+
go list -m github.com/flant/libjq-go | tee > libjq-go.lock
8180
8281
- name: Cache libjq libraries
8382
id: libjq-cache
@@ -94,7 +93,7 @@ jobs:
9493
9594
git clone https://github.com/flant/libjq-go libjq-go
9695
cd libjq-go
97-
git submodule update --init
96+
git submodule update --init --recursive
9897
sudo ./scripts/install-libjq-dependencies-ubuntu.sh
9998
10099
./scripts/build-libjq-static.sh ${GITHUB_WORKSPACE}/libjq-go ${GITHUB_WORKSPACE}/libjq
@@ -105,10 +104,10 @@ jobs:
105104
run: |
106105
echo ::set-env name=CGO_ENABLED::1
107106
108-
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/build/jq/include"
107+
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/include"
109108
echo ::set-env name=CGO_CFLAGS::${CGO_CFLAGS}
110109
111-
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/build/onig/lib -L$GITHUB_WORKSPACE/libjq/build/jq/lib"
110+
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/lib"
112111
echo ::set-env name=CGO_LDFLAGS::${CGO_LDFLAGS}
113112
114113
echo ::set-env name=GOOS::linux
@@ -165,8 +164,7 @@ jobs:
165164
# Restore libjq-go-build directory from cache or build it, upload it as artifact for other jobs.
166165
- name: Extract libjq-go.lock from go.mod
167166
run: |
168-
grep 'flant/libjq-go' go.mod > libjq-go.lock
169-
cat libjq-go.lock
167+
go list -m github.com/flant/libjq-go | tee > libjq-go.lock
170168
171169
- name: Cache libjq libraries
172170
id: libjq-cache
@@ -183,13 +181,12 @@ jobs:
183181
184182
git clone https://github.com/flant/libjq-go libjq-go
185183
cd libjq-go
186-
git submodule update --init
184+
git submodule update --init --recursive
187185
sudo ./scripts/install-libjq-dependencies-ubuntu.sh
188186
189187
./scripts/build-libjq-static.sh ${GITHUB_WORKSPACE}/libjq-go ${GITHUB_WORKSPACE}/libjq
190188
191189
tree ${GITHUB_WORKSPACE}/libjq
192-
shell: bash
193190
194191
- name: Upload libjq libraries
195192
uses: actions/upload-artifact@master
@@ -236,10 +233,10 @@ jobs:
236233
237234
echo ::set-env name=CGO_ENABLED::1
238235
239-
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/build/jq/include"
236+
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/include"
240237
echo ::set-env name=CGO_CFLAGS::${CGO_CFLAGS}
241238
242-
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/build/onig/lib -L$GITHUB_WORKSPACE/libjq/build/jq/lib"
239+
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/lib"
243240
echo ::set-env name=CGO_LDFLAGS::${CGO_LDFLAGS}
244241
245242
echo ::set-env name=GOOS::linux
@@ -310,10 +307,10 @@ jobs:
310307
311308
echo ::set-env name=CGO_ENABLED::1
312309
313-
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/build/jq/include"
310+
CGO_CFLAGS="-I$GITHUB_WORKSPACE/libjq/include"
314311
echo ::set-env name=CGO_CFLAGS::${CGO_CFLAGS}
315312
316-
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/build/onig/lib -L$GITHUB_WORKSPACE/libjq/build/jq/lib"
313+
CGO_LDFLAGS="-L$GITHUB_WORKSPACE/libjq/lib"
317314
echo ::set-env name=CGO_LDFLAGS::${CGO_LDFLAGS}
318315
319316
echo ::set-env name=GOOS::linux

Dockerfile

+5-5
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@ RUN apt-get update && \
99
apt-get install -y git ca-certificates && \
1010
git clone https://github.com/flant/libjq-go /libjq-go && \
1111
cd /libjq-go && \
12-
git submodule update --init && \
12+
git submodule update --init --recursive && \
1313
/libjq-go/scripts/install-libjq-dependencies-ubuntu.sh && \
14-
/libjq-go/scripts/build-libjq-static.sh /libjq-go /out
14+
/libjq-go/scripts/build-libjq-static.sh /libjq-go /libjq
1515

1616

1717
# build shell-operator binary
@@ -23,12 +23,12 @@ ADD go.mod go.sum /src/shell-operator/
2323
WORKDIR /src/shell-operator
2424
RUN go mod download
2525

26-
COPY --from=libjq /out/build /build
26+
COPY --from=libjq /libjq /libjq
2727
ADD . /src/shell-operator
2828

2929
RUN CGO_ENABLED=1 \
30-
CGO_CFLAGS="-I/build/jq/include" \
31-
CGO_LDFLAGS="-L/build/onig/lib -L/build/jq/lib" \
30+
CGO_CFLAGS="-I/libjq/include" \
31+
CGO_LDFLAGS="-L/libjq/lib" \
3232
GOOS=linux \
3333
go build -ldflags="-s -w -X 'github.com/flant/shell-operator/pkg/app.Version=$appVersion'" \
3434
-o shell-operator \

Dockerfile-alpine3.10

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ FROM alpine:3.10 AS libjq
33
RUN apk --no-cache add git ca-certificates && \
44
git clone https://github.com/flant/libjq-go /libjq-go && \
55
cd /libjq-go && \
6-
git submodule update --init && \
6+
git submodule update --init --recursive && \
77
/libjq-go/scripts/install-libjq-dependencies-alpine.sh && \
8-
/libjq-go/scripts/build-libjq-static.sh /libjq-go /out
8+
/libjq-go/scripts/build-libjq-static.sh /libjq-go /libjq
99

1010

1111
# build shell-operator binary
@@ -18,12 +18,12 @@ ADD go.mod go.sum /src/shell-operator/
1818
WORKDIR /src/shell-operator
1919
RUN go mod download
2020

21-
COPY --from=libjq /out/build /build
21+
COPY --from=libjq /libjq /libjq
2222
ADD . /src/shell-operator
2323

2424
RUN CGO_ENABLED=1 \
25-
CGO_CFLAGS="-I/build/jq/include" \
26-
CGO_LDFLAGS="-L/build/onig/lib -L/build/jq/lib" \
25+
CGO_CFLAGS="-I/libjq/include" \
26+
CGO_LDFLAGS="-L/libjq/lib" \
2727
GOOS=linux \
2828
go build -ldflags="-s -w -X 'github.com/flant/shell-operator/pkg/app.Version=$appVersion'" \
2929
-o shell-operator \

Dockerfile-alpine3.11

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ FROM alpine:3.11 AS libjq
33
RUN apk --no-cache add git ca-certificates && \
44
git clone https://github.com/flant/libjq-go /libjq-go && \
55
cd /libjq-go && \
6-
git submodule update --init && \
6+
git submodule update --init --recursive && \
77
/libjq-go/scripts/install-libjq-dependencies-alpine.sh && \
8-
/libjq-go/scripts/build-libjq-static.sh /libjq-go /out
8+
/libjq-go/scripts/build-libjq-static.sh /libjq-go /libjq
99

1010

1111
# build shell-operator binary
@@ -18,12 +18,12 @@ ADD go.mod go.sum /src/shell-operator/
1818
WORKDIR /src/shell-operator
1919
RUN go mod download
2020

21-
COPY --from=libjq /out/build /build
21+
COPY --from=libjq /libjq /libjq
2222
ADD . /src/shell-operator
2323

2424
RUN CGO_ENABLED=1 \
25-
CGO_CFLAGS="-I/build/jq/include" \
26-
CGO_LDFLAGS="-L/build/onig/lib -L/build/jq/lib" \
25+
CGO_CFLAGS="-I/libjq/include" \
26+
CGO_LDFLAGS="-L/libjq/lib" \
2727
GOOS=linux \
2828
go build -ldflags="-s -w -X 'github.com/flant/shell-operator/pkg/app.Version=$appVersion'" \
2929
-o shell-operator \

Dockerfile-alpine3.9

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ FROM alpine:3.9 AS libjq
33
RUN apk --no-cache add git ca-certificates && \
44
git clone https://github.com/flant/libjq-go /libjq-go && \
55
cd /libjq-go && \
6-
git submodule update --init && \
6+
git submodule update --init --recursive && \
77
/libjq-go/scripts/install-libjq-dependencies-alpine.sh && \
8-
/libjq-go/scripts/build-libjq-static.sh /libjq-go /out
8+
/libjq-go/scripts/build-libjq-static.sh /libjq-go /libjq
99

1010

1111
# build shell-operator binary
@@ -18,12 +18,12 @@ ADD go.mod go.sum /src/shell-operator/
1818
WORKDIR /src/shell-operator
1919
RUN go mod download
2020

21-
COPY --from=libjq /out/build /build
21+
COPY --from=libjq /libjq /libjq
2222
ADD . /src/shell-operator
2323

2424
RUN CGO_ENABLED=1 \
25-
CGO_CFLAGS="-I/build/jq/include" \
26-
CGO_LDFLAGS="-L/build/onig/lib -L/build/jq/lib" \
25+
CGO_CFLAGS="-I/libjq/include" \
26+
CGO_LDFLAGS="-L/libjq/lib" \
2727
GOOS=linux \
2828
go build -ldflags="-s -w -X 'github.com/flant/shell-operator/pkg/app.Version=$appVersion'" \
2929
-o shell-operator \

go.mod

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ module github.com/flant/shell-operator
33
go 1.12
44

55
require (
6-
github.com/flant/libjq-go v1.0.1-0.20200205115921-27e93c18c17f // downgrade jq to 1.6
6+
github.com/flant/libjq-go v1.6.1-0.20200401092614-198670408da1 // branch: master
77
github.com/go-chi/chi v4.0.3+incompatible
88
github.com/go-openapi/errors v0.19.2
99
github.com/go-openapi/spec v0.19.3

go.sum

+2
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,8 @@ github.com/flant/go-openapi-validate v0.19.4-0.20200313141509-0c0fba4d39e1 h1:Td
9898
github.com/flant/go-openapi-validate v0.19.4-0.20200313141509-0c0fba4d39e1/go.mod h1:8DJv2CVJQ6kGNpFW6eV9N3JviE1C85nY1c2z52x1Gk4=
9999
github.com/flant/libjq-go v1.0.1-0.20200205115921-27e93c18c17f h1:3tmztWJjf61sHfHYLSMi5TDdz5jtmcVqe43PSwsxNvE=
100100
github.com/flant/libjq-go v1.0.1-0.20200205115921-27e93c18c17f/go.mod h1:+SYqi5wsNjtQVlkPg0Ep5IOuN+ydg79Jo/gk4/PuS8c=
101+
github.com/flant/libjq-go v1.6.1-0.20200331115542-04a1a2e80daa/go.mod h1:+SYqi5wsNjtQVlkPg0Ep5IOuN+ydg79Jo/gk4/PuS8c=
102+
github.com/flant/libjq-go v1.6.1-0.20200401092614-198670408da1/go.mod h1:+SYqi5wsNjtQVlkPg0Ep5IOuN+ydg79Jo/gk4/PuS8c=
101103
github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
102104
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
103105
github.com/ghodss/yaml v0.0.0-20150909031657-73d445a93680/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=

0 commit comments

Comments
 (0)