Skip to content

Commit ef44cc9

Browse files
ci: update ci
1 parent c72e454 commit ef44cc9

File tree

3 files changed

+111
-155
lines changed

3 files changed

+111
-155
lines changed

.github/workflows/release-pullrequest.yaml

Lines changed: 43 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -6,73 +6,67 @@ on:
66
- main
77

88
env:
9-
REGISTRY: ghcr.io
9+
GHCR_REPO: ghcr.io/${{ github.repository }}
1010

1111
jobs:
12-
package-amd64:
13-
runs-on: buildjet-2vcpu-ubuntu-2204
12+
build:
13+
name: Build and Push
14+
strategy:
15+
matrix:
16+
runner: [buildjet-2vcpu-ubuntu-2204-arm, buildjet-2vcpu-ubuntu-2204]
17+
include:
18+
- runner: buildjet-2vcpu-ubuntu-2204-arm
19+
platform: linux/arm64
20+
- runner: buildjet-2vcpu-ubuntu-2204
21+
platform: linux/amd64
22+
runs-on: ${{ matrix.runner }}
23+
1424
permissions:
15-
packages: write
1625
contents: read
26+
packages: write
27+
1728
steps:
18-
- name: Checkout
19-
uses: actions/checkout@v3
29+
- name: Prepare
30+
run: |
31+
platform=${{ matrix.platform }}
32+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
2033
2134
- name: Docker meta
2235
id: meta
23-
uses: docker/metadata-action@v4
36+
uses: docker/metadata-action@v5
2437
with:
25-
images: ${{ env.REGISTRY }}/${{ github.repository }}
26-
27-
- name: Set up Docker Buildx
28-
uses: docker/setup-buildx-action@v2
38+
images: ${{ env.GHCR_REPO }}
2939

30-
- name: Login to CR
31-
uses: docker/login-action@v2
40+
- name: Login to GHCR
41+
uses: docker/login-action@v3
3242
with:
33-
registry: ${{ env.REGISTRY }}
43+
registry: ghcr.io
3444
username: ${{ github.repository_owner }}
3545
password: ${{ secrets.GITHUB_TOKEN }}
3646

37-
- name: Build docker image and push
38-
id: docker_build_amd64
39-
uses: docker/build-push-action@v4
47+
- name: Set up Docker Buildx
48+
uses: docker/setup-buildx-action@v3
49+
50+
- name: Build and NOT push
51+
id: build
52+
uses: docker/build-push-action@v5
4053
with:
54+
platforms: ${{ matrix.platform }}
4155
push: false
42-
platforms: linux/amd64
4356
labels: ${{ steps.meta.outputs.labels }}
44-
outputs: type=image,name=${{ env.REGISTRY }}/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true
4557

46-
package-arm64:
47-
runs-on: buildjet-4vcpu-ubuntu-2204-arm
48-
permissions:
49-
packages: write
50-
contents: read
58+
test:
59+
runs-on: ubuntu-latest
5160
steps:
52-
- name: Checkout
53-
uses: actions/checkout@v3
54-
55-
- name: Docker meta
56-
id: meta
57-
uses: docker/metadata-action@v4
61+
- uses: actions/checkout@v4
62+
- uses: actions/setup-go@v5
5863
with:
59-
images: ${{ env.REGISTRY }}/${{ github.repository }}
60-
61-
- name: Set up Docker Buildx
62-
uses: docker/setup-buildx-action@v2
63-
64-
- name: Login to CR
65-
uses: docker/login-action@v2
64+
go-version: 'stable'
65+
- name: Gather dependencies
66+
run: go mod download
67+
- name: Run coverage
68+
run: go test -race -tags=unit,integration -p 1 -coverprofile=coverage.txt -timeout 20m -covermode=atomic ./...
69+
- name: Upload coverage to Codecov
70+
uses: codecov/codecov-action@v4
6671
with:
67-
registry: ${{ env.REGISTRY }}
68-
username: ${{ github.repository_owner }}
69-
password: ${{ secrets.GITHUB_TOKEN }}
70-
71-
- name: Build docker image and push
72-
id: docker_build_arm64
73-
uses: docker/build-push-action@v4
74-
with:
75-
push: false
76-
platforms: linux/arm64
77-
labels: ${{ steps.meta.outputs.labels }}
78-
outputs: type=image,name=${{ env.REGISTRY }}/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true
72+
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/release-tag.yaml

Lines changed: 68 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -5,142 +5,124 @@ on:
55
tags: [ '[0-9]+.[0-9]+.[0-9]+' ]
66

77
env:
8-
REGISTRY: ghcr.io
8+
GHCR_REPO: ghcr.io/${{ github.repository }}
99

1010
jobs:
11-
package-amd64:
12-
runs-on: buildjet-2vcpu-ubuntu-2204
11+
build:
12+
name: Build and Push
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
runner: [buildjet-2vcpu-ubuntu-2204-arm, buildjet-2vcpu-ubuntu-2204]
17+
include:
18+
- runner: buildjet-2vcpu-ubuntu-2204-arm
19+
platform: linux/arm64
20+
- runner: buildjet-2vcpu-ubuntu-2204
21+
platform: linux/amd64
22+
runs-on: ${{ matrix.runner }}
23+
1324
permissions:
14-
packages: write
1525
contents: read
26+
packages: write
27+
1628
steps:
17-
- name: Checkout
18-
uses: actions/checkout@v3
29+
- name: Prepare
30+
run: |
31+
platform=${{ matrix.platform }}
32+
echo "PLATFORM_PAIR=${platform//\//-}" >> $GITHUB_ENV
1933
2034
- name: Docker meta
2135
id: meta
22-
uses: docker/metadata-action@v4
36+
uses: docker/metadata-action@v5
2337
with:
24-
images: ${{ env.REGISTRY }}/${{ github.repository }}
25-
26-
- name: Set up Docker Buildx
27-
uses: docker/setup-buildx-action@v2
38+
images: ${{ env.GHCR_REPO }}
2839

29-
- name: Login to CR
30-
uses: docker/login-action@v2
40+
- name: Login to GHCR
41+
uses: docker/login-action@v3
3142
with:
32-
registry: ${{ env.REGISTRY }}
43+
registry: ghcr.io
3344
username: ${{ github.repository_owner }}
3445
password: ${{ secrets.GITHUB_TOKEN }}
3546

36-
- name: Build docker image and push
37-
id: docker_build_amd64
38-
uses: docker/build-push-action@v4
39-
with:
40-
push: true
41-
platforms: linux/amd64
42-
labels: ${{ steps.meta.outputs.labels }}
43-
outputs: type=image,name=${{ env.REGISTRY }}/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true
44-
45-
- name: Export digest
46-
run: |
47-
mkdir -p /tmp/digests
48-
digest="${{ steps.docker_build_amd64.outputs.digest }}"
49-
touch "/tmp/digests/${digest#sha256:}"
50-
51-
- name: Upload digest
52-
uses: actions/upload-artifact@v3
53-
with:
54-
name: digests
55-
path: /tmp/digests/*
56-
if-no-files-found: error
57-
retention-days: 1
58-
59-
package-arm64:
60-
runs-on: buildjet-2vcpu-ubuntu-2204-arm
61-
permissions:
62-
packages: write
63-
contents: read
64-
steps:
65-
- name: Checkout
66-
uses: actions/checkout@v3
67-
68-
- name: Docker meta
69-
id: meta
70-
uses: docker/metadata-action@v4
71-
with:
72-
images: ${{ env.REGISTRY }}/${{ github.repository }}
73-
7447
- name: Set up Docker Buildx
75-
uses: docker/setup-buildx-action@v2
48+
uses: docker/setup-buildx-action@v3
7649

77-
- name: Login to CR
78-
uses: docker/login-action@v2
79-
with:
80-
registry: ${{ env.REGISTRY }}
81-
username: ${{ github.repository_owner }}
82-
password: ${{ secrets.GITHUB_TOKEN }}
83-
84-
- name: Build docker image and push
85-
id: docker_build_arm64
86-
uses: docker/build-push-action@v4
50+
- name: Build and push by digest
51+
id: build
52+
uses: docker/build-push-action@v5
8753
with:
54+
platforms: ${{ matrix.platform }}
8855
push: true
89-
platforms: linux/arm64
9056
labels: ${{ steps.meta.outputs.labels }}
91-
outputs: type=image,name=${{ env.REGISTRY }}/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true
57+
outputs: type=image,"name=${{ env.GHCR_REPO }}",push-by-digest=true,name-canonical=true,push=true
9258

9359
- name: Export digest
9460
run: |
9561
mkdir -p /tmp/digests
96-
digest="${{ steps.docker_build_arm64.outputs.digest }}"
62+
digest="${{ steps.build.outputs.digest }}"
9763
touch "/tmp/digests/${digest#sha256:}"
9864
9965
- name: Upload digest
100-
uses: actions/upload-artifact@v3
66+
uses: actions/upload-artifact@v4
10167
with:
102-
name: digests
68+
name: digests-${{ env.PLATFORM_PAIR }}
10369
path: /tmp/digests/*
10470
if-no-files-found: error
10571
retention-days: 1
10672

10773
merge:
108-
runs-on: buildjet-2vcpu-ubuntu-2204
74+
runs-on: ubuntu-latest
10975
needs:
110-
- package-amd64
111-
- package-arm64
76+
- build
11277
permissions:
113-
packages: write
11478
contents: read
79+
packages: write
11580
steps:
11681
- name: Download digests
117-
uses: actions/download-artifact@v3
82+
uses: actions/download-artifact@v4
11883
with:
119-
name: digests
12084
path: /tmp/digests
85+
pattern: digests-*
86+
merge-multiple: true
87+
88+
- name: Login to GHCR
89+
uses: docker/login-action@v3
90+
with:
91+
registry: ghcr.io
92+
username: ${{ github.repository_owner }}
93+
password: ${{ secrets.GITHUB_TOKEN }}
12194

12295
- name: Set up Docker Buildx
123-
uses: docker/setup-buildx-action@v2
96+
uses: docker/setup-buildx-action@v3
12497

12598
- name: Docker meta
12699
id: meta
127-
uses: docker/metadata-action@v4
128-
with:
129-
images: ${{ env.REGISTRY }}/${{ github.repository }}
130-
131-
- name: Login to CR
132-
uses: docker/login-action@v2
100+
uses: docker/metadata-action@v5
133101
with:
134-
registry: ${{ env.REGISTRY }}
135-
username: ${{ github.repository_owner }}
136-
password: ${{ secrets.GITHUB_TOKEN }}
102+
images: ${{ env.GHCR_REPO }}
137103

138104
- name: Create manifest list and push
139105
working-directory: /tmp/digests
140106
run: |
141107
docker buildx imagetools create $(jq -cr '.tags | map("-t " + .) | join(" ")' <<< "$DOCKER_METADATA_OUTPUT_JSON") \
142-
$(printf '${{ env.REGISTRY }}/${{ github.repository }}@sha256:%s ' *)
108+
$(printf '${{ env.GHCR_REPO }}@sha256:%s ' *)
143109
144110
- name: Inspect image
145111
run: |
146-
docker buildx imagetools inspect ${{ env.REGISTRY }}/${{ github.repository }}:${{ steps.meta.outputs.version }}
112+
docker buildx imagetools inspect ${{ env.GHCR_REPO }}:${{ steps.meta.outputs.version }}
113+
114+
test:
115+
runs-on: ubuntu-latest
116+
steps:
117+
- uses: actions/checkout@v4
118+
- uses: actions/setup-go@v5
119+
with:
120+
go-version: 'stable'
121+
- name: Gather dependencies
122+
run: go mod download
123+
- name: Run coverage
124+
run: go test -race -tags=unit,integration -p 1 -coverprofile=coverage.txt -timeout 20m -covermode=atomic ./...
125+
- name: Upload coverage to Codecov
126+
uses: codecov/codecov-action@v4
127+
with:
128+
token: ${{ secrets.CODECOV_TOKEN }}

.github/workflows/test.yaml

Lines changed: 0 additions & 20 deletions
This file was deleted.

0 commit comments

Comments
 (0)