Skip to content

Commit bdbee41

Browse files
committed
initial testing
Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try to build images again Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> ignore darwin ppc64le build Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try with conditional Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> fix expression Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try again Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> debugging Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> and again Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> disable windows/ppc64le Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> remove ppc64le from darwin and windows builds Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> more debugging Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try agian Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> again Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> more Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try using tojson and not fromjson Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> extract data from files directly Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> finally getting somewhere Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> more jq changes Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> more variables Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> remove newlines Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> remove quotes Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try removing quotes in jq commands Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> extract goos and goarch from tar.gz artifacts Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> use correct path Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try with different conditional Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> adjust paths again Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try adding quotes Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> try different conditional Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> dfebugging Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> sanity check Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> fix conditional, try to fix quotes Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> copy binary before building image Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> add first docker test steps Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> fix matrix reference Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> reduce pipeline debugging demand Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> exclude darwin and windows docker tests Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> remove darwin for now Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> debugging of paths Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> fix path Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> change from docker ps to docker logs Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> set entrypoint manually Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> change from import to load Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> almost there Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> fix version Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> set name explicitely Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> more output Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> redirect stderr to stdout Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> better output Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> more debug output Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> fix newlines Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> use special test config file Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> forgot backslash... Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> add pwd Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> do loopback Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> Revert "reduce pipeline debugging demand" This reverts commit b858523. remove maybe unneeded steps Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> add back download step Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> add back qemu action Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> add back checkout step Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> add back qemu step Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> revert removal of windows/ppc64le variant Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com> revert matrix configs Signed-off-by: Moritz Wiesinger <moritz.wiesinger@dynatrace.com>
1 parent 2095585 commit bdbee41

2 files changed

Lines changed: 125 additions & 0 deletions

File tree

.github/workflows/base-ci-goreleaser.yaml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ jobs:
4242
- GOOS: windows
4343
GOARCH: s390x
4444
runs-on: ubuntu-24.04
45+
outputs:
46+
version: ${{ steps.prep.outputs.version }}
4547

4648
steps:
4749
- name: Checkout
@@ -157,6 +159,9 @@ jobs:
157159
- name: Print built artifacts
158160
run: cat ./distributions/${{ inputs.distribution }}/dist/**/artifacts.json
159161

162+
- name: Print metadata
163+
run: cat ./distributions/${{ inputs.distribution }}/dist/**/metadata.json
164+
160165
- name: Print dist folder contents
161166
if: always()
162167
run: ls -laR ./distributions/${{ inputs.distribution }}/dist
@@ -176,3 +181,106 @@ jobs:
176181
name: msi-packages
177182
path: distributions/${{ inputs.distribution }}/dist/windows_amd64_v1/**/*.msi
178183
if-no-files-found: error
184+
185+
- name: Prepare variables
186+
id: prep
187+
run: |
188+
# Find version number and types of built artifacts
189+
echo "version=$(cat ./distributions/${{ inputs.distribution }}/dist/**/metadata.json | jq -r '.version')" >> "$GITHUB_OUTPUT"
190+
echo "types=$(cat ./distributions/${{ inputs.distribution }}/dist/**/artifacts.json | jq '[.[].type]' | tr -d '\n' )" >> "$GITHUB_OUTPUT"
191+
192+
# Find GOOS and GOARCH
193+
os=$(cat ./distributions/${{ inputs.distribution }}/dist/**/artifacts.json | jq -r '.[] | select(.name | contains(".tar.gz")) | .goos')
194+
arch=$(cat ./distributions/${{ inputs.distribution }}/dist/**/artifacts.json | jq -r '.[] | select(.name | contains(".tar.gz")) | .goarch')
195+
echo "arch=$os-$arch" >> "$GITHUB_OUTPUT"
196+
197+
# Find binary path
198+
echo "binary-path=$(cat ./distributions/${{ inputs.distribution }}/dist/**/artifacts.json | jq -r 'map(select(any(.type; contains("Binary")))) | .[].path' )" >> "$GITHUB_OUTPUT"
199+
200+
- name: Print version and target
201+
run: |
202+
echo 'Version: ${{ steps.prep.outputs.version }}'
203+
echo 'Types: ${{ steps.prep.outputs.types }}'
204+
echo 'Arch: ${{ steps.prep.outputs.arch }}'
205+
echo 'Images?: ${{ steps.prep.outputs.container-images }}'
206+
207+
- name: Copy binary to distro root folder
208+
run: cp ./distributions/${{ inputs.distribution }}/${{ steps.prep.outputs.binary-path }} ./distributions/${{ inputs.distribution }}
209+
210+
- name: Build container images locally
211+
if: contains(steps.prep.outputs.types, 'Docker Image')
212+
uses: docker/build-push-action@0adf9959216b96bec444f325f1e493d4aa344497 # v6.14.0
213+
with:
214+
context: ./distributions/${{ inputs.distribution }}
215+
push: false
216+
load: true
217+
tags: ${{ inputs.distribution }}:${{ steps.prep.outputs.version }}-${{ steps.prep.outputs.arch }}
218+
219+
- name: Export container image to tarball
220+
if: contains(steps.prep.outputs.types, 'Docker Image')
221+
run: |
222+
docker save ${{ inputs.distribution }}:${{ steps.prep.outputs.version }}-${{ steps.prep.outputs.arch }} > /tmp/${{ inputs.distribution }}.tar
223+
224+
- name: Upload container image artifact
225+
if: contains(steps.prep.outputs.types, 'Docker Image')
226+
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0
227+
with:
228+
name: ${{ inputs.distribution }}-image-${{ steps.prep.outputs.version }}-${{ steps.prep.outputs.arch }}
229+
path: /tmp/${{ inputs.distribution }}.tar
230+
retention-days: 7
231+
232+
docker-tests:
233+
needs:
234+
- check-goreleaser
235+
strategy:
236+
matrix:
237+
GOOS: ${{ fromJSON( inputs.goos) }}
238+
GOARCH: ${{ fromJSON( inputs.goarch) }}
239+
exclude:
240+
- GOOS: darwin
241+
- GOOS: windows
242+
runs-on: ubuntu-24.04
243+
steps:
244+
- name: Checkout
245+
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
246+
247+
- name: Setup QEMU
248+
uses: docker/setup-qemu-action@4574d27a4764455b42196d70a065bc6853246a25 # v3.4.0
249+
with:
250+
platforms: arm64,ppc64le,linux/arm/v7,s390x
251+
252+
- name: Download container image artifact
253+
uses: actions/download-artifact@cc203385981b70ca67e1cc392babf9cc229d5806 #v4.1.9
254+
with:
255+
name: ${{ inputs.distribution }}-image-${{ needs.check-goreleaser.outputs.version }}-${{ matrix.GOOS }}-${{ matrix.GOARCH }}
256+
257+
- name: Load image into docker
258+
run: |
259+
docker image load --input ./${{ inputs.distribution }}.tar
260+
docker image ls
261+
docker image inspect ${{ inputs.distribution }}:${{ needs.check-goreleaser.outputs.version }}-${{ matrix.GOOS }}-${{ matrix.GOARCH }}
262+
263+
- name: Run container image
264+
run: |
265+
echo "Running container..."
266+
docker run --name ${{ inputs.distribution }} \
267+
-d \
268+
-v ${PWD}/tests/docker-tests/default-config.yaml:/config.yaml \
269+
${{ inputs.distribution }}:${{ needs.check-goreleaser.outputs.version }}-${{ matrix.GOOS }}-${{ matrix.GOARCH }} \
270+
--config /config.yaml
271+
echo "docker ps:"
272+
echo ""
273+
docker ps
274+
echo "Sleeping for a bit..."
275+
sleep 10
276+
echo "Checking logs for correct startup..."
277+
docker logs ${{ inputs.distribution }} >& docker-logs-${{ inputs.distribution }}.log
278+
if cat docker-logs-${{ inputs.distribution }}.log | grep "Everything is ready."; then
279+
echo "${{ inputs.distribution }} started up correctly"
280+
else
281+
echo "${{ inputs.distribution }} failed to start"
282+
echo "Printing container logs below..."
283+
echo ""
284+
cat docker-logs-${{ inputs.distribution }}.log
285+
exit 1
286+
fi
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
2+
receivers:
3+
otlp:
4+
protocols:
5+
grpc:
6+
endpoint: 0.0.0.0:4317
7+
8+
exporters:
9+
otlphttp:
10+
endpoint: "http://0.0.0.0:4317"
11+
12+
service:
13+
pipelines:
14+
metrics:
15+
receivers: [otlp]
16+
processors: []
17+
exporters: [otlphttp]

0 commit comments

Comments
 (0)