11name : release
2-
32on :
43 release : # Docs: <https://help.github.com/en/articles/events-that-trigger-workflows#release-event-release>
54 types :
65 - released
76 - prereleased
8-
97jobs :
108 build :
119 name : Build for ${{ matrix.os }} (${{ matrix.arch }}, ${{ matrix.compiler }})
1210 runs-on : ubuntu-latest
1311 strategy :
1412 fail-fast : false
1513 matrix :
16- os : [ windows, darwin ] # linux, darwin, windows
17- compiler : [ gcc ] # gcc, musl-gcc
18- archiver : [ zip ] # tar, zip
19- arch : [ amd64 ] # amd64, 386
14+ os : [windows, darwin] # linux, darwin, windows
15+ compiler : [gcc] # gcc, musl-gcc
16+ archiver : [zip] # tar, zip
17+ arch : [amd64] # amd64, 386
2018 include :
2119 - os : linux
2220 compiler : gcc
@@ -47,17 +45,13 @@ jobs:
4745 uses : actions/setup-go@v6
4846 with :
4947 go-version : stable
50-
5148 - name : Check out code
5249 uses : actions/checkout@v6
53-
5450 - name : Install musl
5551 if : matrix.compiler == 'musl-gcc'
5652 run : sudo apt-get install -y musl-tools
57-
5853 - name : Download dependencies
5954 run : go mod download # `-x` means "verbose" mode
60-
6155 - name : Generate builder values
6256 id : values
6357 run : |
@@ -69,15 +63,13 @@ jobs:
6963 else
7064 echo "sign-cert-name=rr.asc" >> $GITHUB_OUTPUT
7165 fi
72-
7366 - name : Import GPG key
7467 uses : crazy-max/ghaction-import-gpg@v6
7568 with :
7669 gpg_private_key : ${{ secrets.GPG_SIGNING_KEY }}
7770 passphrase : ${{ secrets.GPG_PASS }}
7871 git_user_signingkey : true
7972 git_commit_gpgsign : false
80-
8173 - name : Compile binary file
8274 env :
8375 GOOS : ${{ matrix.os }}
@@ -86,29 +78,34 @@ jobs:
8678 GPG_SIGNING_KEY : ${{ secrets.GPG_SIGNING_KEY }}
8779 GPG_PASS : ${{secrets.GPG_PASS}}
8880 CGO_ENABLED : 0
89- GOEXPERIMENT : greenteagc
9081 LDFLAGS : >-
91- -s
92- -X github.com/roadrunner-server/roadrunner/v2025/internal/meta.version=${{ steps.values.outputs.version }}
93- -X github.com/roadrunner-server/roadrunner/v2025/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
82+ -s -X github.com/roadrunner-server/roadrunner/v2025/internal/meta.version=${{ steps.values.outputs.version }} -X github.com/roadrunner-server/roadrunner/v2025/internal/meta.buildTime=${{ steps.values.outputs.timestamp }}
9483 run : |
9584 go build -trimpath -ldflags "$LDFLAGS" -o "./${{ steps.values.outputs.binary-name }}" ./cmd/rr
9685 stat "./${{ steps.values.outputs.binary-name }}"
9786 gpg --detach-sign --armor "./${{ steps.values.outputs.binary-name }}"
98-
9987 - name : Generate distributive directory name
10088 id : dist-dir
10189 run : >
10290 echo "name=$(echo roadrunner-${{ steps.values.outputs.version }}-$(
91+
92+
93+
10394 [ ${{ matrix.os }} != '' ] && echo '${{ matrix.os }}' || echo 'unknown'
10495 )$(
96+
97+
98+
10599 [ ${{ matrix.compiler }} = 'musl-gcc' ] && echo '-musl'
106100 ))-${{ matrix.arch }}" >> $GITHUB_OUTPUT
107101
108102 - name : Generate distributive archive name
109103 id : dist-arch
110104 run : >
111105 echo "name=$(echo ${{ steps.dist-dir.outputs.name }}.$(
106+
107+
108+
112109 case ${{ matrix.archiver }} in
113110 zip) echo 'zip';;
114111 tar) echo 'tar.gz';;
@@ -121,63 +118,52 @@ jobs:
121118 mkdir ${{ steps.dist-dir.outputs.name }}
122119 mv "./${{ steps.values.outputs.binary-name }}" "./${{ steps.values.outputs.sign-cert-name }}" ./${{ steps.dist-dir.outputs.name }}/
123120 cp ./README.md ./CHANGELOG.md ./LICENSE ./${{ steps.dist-dir.outputs.name }}
124-
125121 - name : Pack distributive using tar
126122 if : matrix.archiver == 'tar'
127123 run : tar -zcf "${{ steps.dist-arch.outputs.name }}" "${{ steps.dist-dir.outputs.name }}"
128-
129124 - name : Pack distributive using zip
130125 if : matrix.archiver == 'zip'
131126 run : zip -r -q "${{ steps.dist-arch.outputs.name }}" "${{ steps.dist-dir.outputs.name }}"
132-
133127 - name : Upload artifact
134128 uses : actions/upload-artifact@v6
135129 with :
136130 name : ${{ steps.dist-dir.outputs.name }}
137131 path : ${{ steps.dist-arch.outputs.name }}
138132 if-no-files-found : error
139133 retention-days : 30
140-
141134 - name : Upload binaries to release
142135 uses : svenstaro/upload-release-action@v2
143136 with :
144137 repo_token : ${{ secrets.GITHUB_TOKEN }}
145138 file : ${{ steps.dist-arch.outputs.name }}
146139 asset_name : ${{ steps.dist-arch.outputs.name }}
147140 tag : ${{ github.ref }}
148-
149141 docker :
150142 name : Build docker image
151143 runs-on : ubuntu-latest
152144 steps :
153145 - name : Check out code
154146 uses : actions/checkout@v6
155-
156147 - name : Set up QEMU
157148 uses : docker/setup-qemu-action@v3 # Action page: <https://github.com/docker/setup-qemu-action>
158-
159149 - name : Set up Docker Buildx
160150 uses : docker/setup-buildx-action@v3 # Action page: <https://github.com/docker/setup-buildx-action>
161-
162151 - name : Login to Docker Hub
163152 uses : docker/login-action@v3
164153 with :
165154 username : ${{ secrets.DOCKER_LOGIN }}
166155 password : ${{ secrets.DOCKER_PASSWORD }}
167-
168156 - name : Login to GitHub Container Registry
169157 uses : docker/login-action@v3
170158 with :
171159 registry : ghcr.io
172160 username : ${{ secrets.GHCR_LOGIN }}
173161 password : ${{ secrets.GHCR_PASSWORD }}
174-
175162 - name : Generate builder values
176163 id : values
177164 run : |
178165 echo "version_full=$(echo ${GITHUB_REF##*/} | sed -e 's/^[vV ]*//')" >> $GITHUB_OUTPUT
179166 echo "timestamp=$(echo $(date +%FT%T%z))" >> $GITHUB_OUTPUT
180-
181167 - name : Build image
182168 uses : docker/build-push-action@v6 # Action page: <https://github.com/docker/build-push-action>
183169 with :
0 commit comments