@@ -3,18 +3,19 @@ name: release
33env :
44 PROJECT_NAME : qdl
55 REPO_NAME : linux-msm/qdl
6- REPO_REF : 672abb1e81cc630640f2a88e42b6dfd2a429ad14
6+ REPO_REF : v2.2
77 DIST_DIR : dist
88 ARTIFACT_NAME : dist
99
1010on :
11+ workflow_dispatch :
1112 push :
1213 tags :
13- - ' *.*.* '
14+ - ' *'
1415
1516jobs :
1617 build :
17- name : build (${{ matrix.config.os }}, ${{ matrix.config.arch }})
18+ name : build
1819 runs-on :
1920 ubuntu-latest
2021 permissions :
@@ -71,20 +72,89 @@ jobs:
7172 - name : Package
7273 working-directory : ${{ env.PROJECT_NAME }}
7374 run : |
74- tar -czvf ../${{ env.PROJECT_NAME }}_${{ github.ref_name }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz \
75+ tar -czvf ../${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz \
7576 qdl${{ matrix.config.extension }}
7677
7778 - name : Upload artifacts
7879 uses : actions/upload-artifact@v4
7980 with :
8081 if-no-files-found : error
8182 name : ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
82- path : ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
83+ path : ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
84+
85+ build-macos-arm64 :
86+ name : build
87+ permissions :
88+ contents : read
89+ strategy :
90+ matrix :
91+ config :
92+ - os : macOS
93+ arch : arm64
94+ runs-on : macos-latest
95+ env :
96+ CROSSBUILD_REF : main
97+ steps :
98+ - name : Install dependencies
99+ run : |
100+ brew install pkg-config autoconf automake libtool
101+
102+ - name : Checkout repository
103+ uses : actions/checkout@v4
104+ with :
105+ path : packing
106+
107+ - name : Checkout arduino/crossbuild repository
108+ uses : actions/checkout@v4
109+ with :
110+ repository : arduino/crossbuild
111+ ref : ${{ env.CROSSBUILD_REF }}
112+ path : crossbuild
113+ - name : build dependencies
114+ working-directory : crossbuild
115+ run : ./scripts/build_mac.sh
116+
117+ - name : Checkout linux-msm/qdl repository
118+ uses : actions/checkout@v4
119+ with :
120+ repository : ${{ env.REPO_NAME }}
121+ ref : ${{ env.REPO_REF }}
122+ path : ${{ env.PROJECT_NAME }}
123+ - name : Apply patches
124+ working-directory : ${{ env.PROJECT_NAME }}
125+ run : git apply -v ../packing/patches/*.patch
126+
127+ - name : build qdl
128+ working-directory : ${{ env.PROJECT_NAME }}
129+ run : make -j 8
130+ env :
131+ PKG_CONFIG_PATH : ../crossbuild/build/macos/dist/lib/pkgconfig
132+ LD_LIBRARY_PATH : ../crossbuild/build/macos/dist/lib
133+ C_INCLUDE_PATH : ../crossbuild/build/macos/dist/include
134+
135+ - name : Package
136+ working-directory : ${{ env.PROJECT_NAME }}
137+ run : |
138+ tar -czvf ../${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz qdl
139+
140+ - name : Upload artifacts
141+ uses : actions/upload-artifact@v4
142+ with :
143+ if-no-files-found : error
144+ name : ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
145+ path : ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }}.tar.gz
83146
84147 sign-and-notarize-macos :
85- name : sign and notarize (macOS, 64bit)
148+ name : sign and notarize
86149 runs-on : macos-latest
87- needs : build
150+ needs : [build, build-macos-arm64]
151+ strategy :
152+ matrix :
153+ config :
154+ - os : macOS
155+ arch : 64bit
156+ - os : macOS
157+ arch : arm64
88158 permissions :
89159 contents : read
90160
@@ -98,12 +168,12 @@ jobs:
98168 - name : Download macOS artifact
99169 uses : actions/download-artifact@v4
100170 with :
101- name : ${{ env.ARTIFACT_NAME }}_macOS_64bit
171+ name : ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
102172 path : ${{ env.DIST_DIR }}/notarize_temp
103173
104174 - name : Extract macOS binary
105175 working-directory : ${{ env.DIST_DIR }}/notarize_temp
106- run : tar -xzvf ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit .tar.gz
176+ run : tar -xzvf ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }} .tar.gz
107177
108178 - name : Import Code-Signing Certificates
109179 env :
@@ -147,19 +217,19 @@ jobs:
147217 working-directory : ${{ env.DIST_DIR }}/notarize_temp
148218 run : |
149219 chmod +x qdl
150- tar -czvf ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit .tar.gz qdl
151- mv ${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit .tar.gz ../
220+ tar -czvf ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }} .tar.gz qdl
221+ mv ${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }} .tar.gz ../
152222
153223 - name : Upload notarized macOS artifact
154224 uses : actions/upload-artifact@v4
155225 with :
156226 if-no-files-found : error
157- name : ${{ env.ARTIFACT_NAME }}_macOS_64bit
158- path : ${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_${{ github.ref_name }}_macOS_64bit .tar.gz
227+ name : ${{ env.ARTIFACT_NAME }}_${{ matrix.config.os }}_${{ matrix.config.arch }}
228+ path : ${{ env.DIST_DIR }}/${{ env.PROJECT_NAME }}_${{ env.REPO_REF }}-${{ github.run_number }}_${{ matrix.config.os }}_${{ matrix.config.arch }} .tar.gz
159229 overwrite : true # Important: replace the original macOS artifact
160230
161231 create-release :
162- needs : [build, sign-and-notarize-macos]
232+ needs : [build, sign-and-notarize-macos, build-macos-arm64 ]
163233 runs-on : ubuntu-latest
164234 permissions :
165235 contents : write
0 commit comments