@@ -22,16 +22,12 @@ jobs:
22
22
uses : " WyriHaximus/github-action-get-previous-tag@04e8485ecb6487243907e330d522ff60f02283ce" # v1.4.0
23
23
generate-artifacts :
24
24
needs : get-latest-tag
25
- runs-on : ${{ matrix.os }}
26
- strategy :
27
- matrix :
28
- os : [ubuntu-20.04]
29
- arch : [amd64, arm64]
25
+ runs-on : ubuntu-20.04
30
26
env :
27
+ # Set during setup.
31
28
RELEASE_TAG : ${{ needs.get-latest-tag.outputs.tag }}
32
29
DYNAMIC_BINARY_NAME : ' '
33
30
STATIC_BINARY_NAME : ' '
34
- RELEASE_VERSION : ' '
35
31
steps :
36
32
- uses : actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
37
33
with :
@@ -46,104 +42,68 @@ jobs:
46
42
run : |
47
43
export release_tag=${{ env.RELEASE_TAG }}
48
44
export release_version=${release_tag/v/} # Remove v from tag name
49
- echo "DYNAMIC_BINARY_NAME=finch-daemon-${release_version}-linux-${{ matrix.arch }} .tar.gz" >> $GITHUB_ENV
50
- echo "STATIC_BINARY_NAME=finch-daemon-${release_version}-linux-${{ matrix.arch }} -static.tar.gz" >> $GITHUB_ENV
51
- echo "RELEASE_VERSION=${release_version}" >> $GITHUB_ENV
45
+ echo "DYNAMIC_BINARY_NAME=finch-daemon-${release_version}-linux-amd64 .tar.gz" >> $GITHUB_ENV
46
+ echo "STATIC_BINARY_NAME=finch-daemon-${release_version}-linux-amd64 -static.tar.gz" >> $GITHUB_ENV
47
+
52
48
mkdir release
53
49
- name : Install Go licenses
54
50
run : go install github.com/google/go-licenses@latest
55
- - name : Install Cross Arch dependencies
56
- run : |
57
- if [ "${{ matrix.arch }}" = "arm64" ]; then
58
- sudo apt update
59
- sudo apt install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
60
- fi
61
51
- name : Create Third Party Licences File
62
52
run : make licenses
63
- - name : setup static dependencies
53
+ - name : setup static dependecies
64
54
run : |
65
55
sudo apt-get update
66
56
sudo apt-get install libc6-dev -f
67
57
- name : Create release binaries
68
- run : |
69
- if [ "${{ matrix.arch }}" = "amd64" ]; then
70
- make TARGET_ARCH=${{ matrix.arch }} RELEASE_TAG=${{ env.RELEASE_TAG }} release
71
- elif [ "${{ matrix.arch }}" = "arm64" ]; then
72
- make CC=aarch64-linux-gnu-gcc TARGET_ARCH=${{ matrix.arch }} RELEASE_TAG=${{ env.RELEASE_TAG }} release
73
- fi
58
+ run : make RELEASE_TAG=${{ env.RELEASE_TAG }} release
74
59
- name : Verify Release version
75
60
run : |
76
- export HOST_ARCH=''
77
- case $(uname -m) in
78
- x86_64) HOST_ARCH="amd64" ;;
79
- aarch64) HOST_ARCH="arm64" ;;
80
- *) echo "Error: Unsupported arch $(uname -m)"; exit 1 ;;
81
- esac
82
- echo "Host Arch: $HOST_ARCH"
83
- if [ "${{ matrix.arch }}" = "$HOST_ARCH" ]; then
84
- mkdir -p output/static output/dynamic
85
- tar -xzf release/${{ env.DYNAMIC_BINARY_NAME }} -C ./output/dynamic
86
- tar -xzf release/${{ env.STATIC_BINARY_NAME }} -C ./output/static
87
- DYNAMIC_BINARY_VERSION=$(./output/dynamic/finch-daemon --version | grep -oP '\d+\.\d+\.\d+')
88
- STATIC_BINARY_VERSION=$(./output/static/finch-daemon --version | grep -oP '\d+\.\d+\.\d+')
89
- export release_tag=${{ env.RELEASE_TAG }}
90
- export release_version=${release_tag/v/}
91
- echo "Dynamic version $DYNAMIC_BINARY_VERSION"
92
- else
93
- echo "Architecture mismatch: Cross Arch validation is not supported. Skipping version verification"
94
- fi
61
+ mkdir -p output/static output/dynamic
62
+ tar -xzf release/${{ env.DYNAMIC_BINARY_NAME }} -C ./output/dynamic
63
+ tar -xzf release/${{ env.STATIC_BINARY_NAME }} -C ./output/static
64
+ DYNAMIC_BINARY_VERSION=$(./output/dynamic/finch-daemon --version | grep -oP '\d+\.\d+\.\d+')
65
+ STATIC_BINARY_VERSION=$(./output/static/finch-daemon --version | grep -oP '\d+\.\d+\.\d+')
66
+ export release_tag=${{ env.RELEASE_TAG }}
67
+ export release_version=${release_tag/v/}
68
+ if ["$STATIC_BINARY_VERSION" != "$release_version"] || ["$DYNAMIC_BINARY_VERSION" != "$release_version"]; then
69
+ echo "Version mismatch"
70
+ exit 1
71
+ fi
95
72
shell : bash
96
73
- uses : actions/upload-artifact@v4
97
74
with :
98
- name : artifacts-${{ matrix.arch }}
75
+ name : artifacts
99
76
path : release/
100
77
if-no-files-found : error
101
78
outputs :
102
79
release_tag : ${{ env.RELEASE_TAG }}
103
- release_version : ${{ env.RELEASE_VERSION }}
104
80
dynamic_binary_name : ${{ env.DYNAMIC_BINARY_NAME }}
105
81
static_binary_name : ${{ env.STATIC_BINARY_NAME }}
106
-
107
82
validate-artifacts :
108
83
needs : generate-artifacts
109
- runs-on : ${{ matrix.os }}
110
- strategy :
111
- matrix :
112
- os : [ubuntu-latest]
113
- arch : [amd64, arm64]
84
+ runs-on : ubuntu-latest
114
85
steps :
115
86
- uses : actions/checkout@v4
116
87
- uses : actions/download-artifact@v4
117
88
with :
118
- name : artifacts-${{ matrix.arch }}
89
+ name : artifacts
119
90
path : release/
120
91
- run : bash scripts/verify-release-artifacts.sh ${{ needs.generate-artifacts.outputs.release_tag }}
121
- env :
122
- TARGET_ARCH : ${{ matrix.arch }}
123
92
create-release :
124
93
needs : [generate-artifacts, validate-artifacts]
125
94
runs-on : ubuntu-latest
126
95
steps :
127
96
- uses : actions/checkout@v4
128
- - name : Download Artifact amd64
129
- uses : actions/download-artifact@v4
130
- with :
131
- name : artifacts-amd64
132
- - name : Download Artifact arm64
133
- uses : actions/download-artifact@v4
97
+ - uses : actions/download-artifact@v4
134
98
with :
135
- name : artifacts-arm64
99
+ name : artifacts
136
100
- uses : softprops/action-gh-release@v2
137
101
with :
138
102
tag_name : ${{ needs.generate-artifacts.outputs.release_tag }}
139
103
prerelease : false
140
104
generate_release_notes : false
141
105
files : |
142
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-amd64.tar.gz
143
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-amd64.tar.gz.sha256sum
144
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-amd64-static.tar.gz
145
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-amd64-static.tar.gz.sha256sum
146
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-arm64.tar.gz
147
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-arm64.tar.gz.sha256sum
148
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-arm64-static.tar.gz
149
- finch-daemon-${{ needs.generate-artifacts.outputs.release_version }}-linux-arm64-static.tar.gz.sha256sum
106
+ ${{ needs.generate-artifacts.outputs.dynamic_binary_name }}
107
+ ${{ needs.generate-artifacts.outputs.dynamic_binary_name }}.sha256sum
108
+ ${{ needs.generate-artifacts.outputs.static_binary_name }}
109
+ ${{ needs.generate-artifacts.outputs.static_binary_name }}.sha256sum
0 commit comments