44 workflow_dispatch :
55
66jobs :
7+ meta :
8+ runs-on : ubuntu-latest
9+ outputs :
10+ tag : ${{steps.meta.outputs.tag}}
11+ steps :
12+
13+ - name : Checkout Code
14+ uses : actions/checkout@v4
15+ with :
16+ fetch-depth : 0
17+
18+ - name : Get Metadata
19+ id : meta
20+ run : |
21+ set -eu
22+ tag=$(git describe --tags --abbrev=0)
23+
24+ echo "tag=${tag}" >> $GITHUB_OUTPUT
25+
726 build :
827 name : " NGINX: ${{ matrix.nginx-version }}; libjwt: ${{ matrix.libjwt-version }}"
28+ needs : meta
929 strategy :
1030 matrix :
1131 # NGINX versions to build/test against
12- nginx-version : ['1.20.2', '1.22.1', '1.24.0', '1.26.2', '1.27.3']
32+ nginx-version : ['1.20.2'] # , '1.22.1', '1.24.0', '1.26.2', '1.27.3']
1333
1434 # The following versions of libjwt are compatible:
1535 # * v1.0 - v1.12.0
@@ -19,26 +39,21 @@ jobs:
1939 # * Debian and Ubuntu's repos have v1.10.2
2040 # * EPEL has v1.12.1
2141 # This compiles against each version prior to a breaking change and the latest release
22- libjwt-version : ['1.12.0', '1.14.0', '1.15.3']
42+ libjwt-version : ['1.12.0'] # , '1.14.0', '1.15.3']
2343 runs-on : ubuntu-latest
2444 steps :
2545
2646 - name : Checkout Code
2747 uses : actions/checkout@v4
2848 with :
29- fetch-depth : 0
3049 path : ngx-http-auth-jwt-module
3150
3251 - name : Get Metadata
3352 id : meta
3453 run : |
35- set -eux
36- cd ngx-http-auth-jwt-module
37-
38- tag=$(git describe --tags --abbrev=0)
39-
4054 echo "filename=ngx-http-auth-jwt-module-${tag}_libjwt-${{matrix.libjwt-version}}_nginx-${{matrix.nginx-version}}.tgz" >> $GITHUB_OUTPUT
4155
56+
4257 # TODO cache the build result so we don't have to do this every time?
4358 - name : Download jansson
4459 uses : actions/checkout@v4
@@ -104,11 +119,14 @@ jobs:
104119 uses : actions/upload-artifact@v4
105120 with :
106121 if-no-files-found : error
107- name : ${{steps.meta.outputs.filename}}
122+ name : release
123+ path : ${{steps.meta.outputs.filename}}
108124
109125 release :
110126 name : Create/Update Release
111- needs : build
127+ needs :
128+ - meta
129+ - build
112130 runs-on : ubuntu-latest
113131 permissions :
114132 contents : write
@@ -119,25 +137,38 @@ jobs:
119137 run : |
120138 echo "date_now=$(date --rfc-3339=seconds)" >> "${GITHUB_OUTPUT}"
121139
122- - name : Download Build Artifacts
140+ - name : Download Artifacts
123141 uses : actions/download-artifact@v4
124142 with :
125143 path : artifacts
126144
127- - name : Upload Builds to Release
145+ - name : Flatten Artifacts
146+ run : |
147+ set -eu
148+
149+ cd artifacts
150+
151+ for f in $(find . -type f); do
152+ echo "Staging: ${f}"
153+ mv "${f}" .
154+ done
155+
156+ find . -type d -mindepth 1 -exec rm -rf "{}" +
157+
158+ - name : Create/Update Release
128159 uses : ncipollo/release-action@v1
129160 with :
130- name : ' Development Build: ${{ github.ref_name }}@${{ github.sha }}'
161+ tag : ${{needs.meta.outputs.tag}}
162+ name : " Pre-release: ${{ github.ref_name }}@${{ github.sha }}"
131163 body : |
132164 > [!WARNING]
133165 > This is an automatically generated pre-release version of the module, which includes the latest master branch changes.
134166 > Please report any bugs you find.
135167
136168 - Build Date: `${{ steps.vars.outputs.date_now }}`
137- - Commit: ${{ github.sha }}
169+ - Commit: ` ${{ github.sha }}`
138170 prerelease : true
139171 allowUpdates : true
140172 removeArtifacts : true
141173 artifactErrorsFailBuild : true
142174 artifacts : artifacts/*
143- tag : dev-build
0 commit comments