Skip to content

Commit a616f54

Browse files
committed
ci: Reorganize workflow to avoid repetition.
1 parent b3f2f16 commit a616f54

File tree

1 file changed

+21
-117
lines changed

1 file changed

+21
-117
lines changed

.github/workflows/main.yml

+21-117
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,19 @@ on:
44
- 3.11
55

66
jobs:
7-
mac_arm:
7+
mac:
8+
strategy:
9+
matrix:
10+
architecture:
11+
- arch: arm64
12+
- arch: x86_64
13+
lto:
14+
- lto: With LTO
15+
lto_arg: ""
16+
artifact_tag: ""
17+
- lto: No LTO
18+
lto_arg: "--no-lto"
19+
artifact_tag: "_No_LTO"
820
name: MacOS ARM Build
921
runs-on: macos-latest
1022
steps:
@@ -15,144 +27,34 @@ jobs:
1527
CACHE_SAS: ${{ secrets.CACHE_SAS }}
1628
run: |
1729
cd ..
18-
export "file_name=NP_mac-arm-${{ hashFiles('build.mac.sh') }}.tar.gz"
30+
export "file_name=NP_mac-${{ matrix.architecture.arch }}${{ matrix.lto.lto_arg }}-${{ hashFiles('build.mac.sh') }}.tar.gz"
1931
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
2032
curl -L "$file_url" -o "$file_name" || exit 0
2133
tar -xf "$file_name" || exit 0
2234
rm ${file_name} || exit 0
35+
ln -s lib Nuitka-Python-Deps/lib64 || exit 0
2336
- name: Uninstall homebrew
2437
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
2538
- name: Run Build
26-
run: bash build.mac.sh "${{ github.workspace }}/Nuitka-Python-Out"
39+
run: arch -${{ matrix.architecture.arch }} bash build.mac.sh ${{ matrix.lto.lto_arg }} "${{ github.workspace }}/Nuitka-Python-Out"
2740
- name: Cleanup artifact
2841
run: find "${{ github.workspace }}/Nuitka-Python-Out" \( -iname '*.o' -iname '*.pc' -o -iname '__pycache__' -o -iname 'link.json' \) | xargs rm -rf
2942
- uses: actions/upload-artifact@v4
3043
with:
31-
name: Nuitka-Python311_mac_arm64
44+
name: Nuitka-Python311_mac_${{ matrix.architecture.arch }}${{ matrix.lto.lto_arg }}
3245
path: ${{ github.workspace }}/Nuitka-Python-Out
3346
- name: Store cache
3447
env:
3548
CACHE_SAS: ${{ secrets.CACHE_SAS }}
3649
run: |
3750
cd ..
38-
export "file_name=NP_mac-arm-${{ hashFiles('build.mac.sh') }}.tar.gz"
51+
export "file_name=NP_mac-${{ matrix.architecture.arch }}${{ matrix.lto.lto_arg }}-${{ hashFiles('build.mac.sh') }}.tar.gz"
3952
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
4053
rm -rf ${file_name}
54+
rm -f Nuitka-Python-Deps/lib64
4155
tar -cf ${file_name} Nuitka-Python-Deps Nuitka-Python/dep-build
4256
curl -H "x-ms-blob-type: BlockBlob" --upload-file ${file_name} --url "$file_url"
4357
rm -rf ${file_name}
44-
mac_x64:
45-
name: MacOS Intel Build
46-
runs-on: macos-latest
47-
steps:
48-
- name: Check out repository code
49-
uses: actions/checkout@v4
50-
- name: Download cache
51-
env:
52-
CACHE_SAS: ${{ secrets.CACHE_SAS }}
53-
run: |
54-
cd ..
55-
export "file_name=NP_mac-intel-${{ hashFiles('build.mac.sh') }}.tar.gz"
56-
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
57-
curl -L "$file_url" -o "$file_name" || exit 0
58-
tar -xf "$file_name" || exit 0
59-
rm ${file_name} || exit 0
60-
- name: Uninstall homebrew
61-
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
62-
- name: Run Build
63-
run: arch -x86_64 bash build.mac.sh "${{ github.workspace }}/Nuitka-Python-Out"
64-
- name: Cleanup artifact
65-
run: find "${{ github.workspace }}/Nuitka-Python-Out" \( -iname '*.o' -o -iname '__pycache__' -o -iname 'link.json' \) | xargs rm -rf
66-
- uses: actions/upload-artifact@v4
67-
with:
68-
name: Nuitka-Python311_mac_x86_64
69-
path: ${{ github.workspace }}/Nuitka-Python-Out
70-
- name: Store cache
71-
env:
72-
CACHE_SAS: ${{ secrets.CACHE_SAS }}
73-
run: |
74-
cd ..
75-
export "file_name=NP_mac-intel-${{ hashFiles('build.mac.sh') }}.tar.gz"
76-
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
77-
rm -rf ${file_name}
78-
tar -cf ${file_name} Nuitka-Python-Deps Nuitka-Python/dep-build
79-
curl -H "x-ms-blob-type: BlockBlob" --upload-file ${file_name} --url "$file_url"
80-
rm -rf ${file_name}
81-
82-
mac_arm_no_lto:
83-
name: MacOS ARM Build No LTO
84-
runs-on: macos-latest
85-
steps:
86-
- name: Check out repository code
87-
uses: actions/checkout@v4
88-
- name: Download cache
89-
env:
90-
CACHE_SAS: ${{ secrets.CACHE_SAS }}
91-
run: |
92-
cd ..
93-
export "file_name=NP_mac-arm-no_lto-${{ hashFiles('build.mac.sh') }}.tar.gz"
94-
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
95-
curl -L "$file_url" -o "$file_name" || exit 0
96-
tar -xf "$file_name" || exit 0
97-
rm ${file_name} || exit 0
98-
- name: Uninstall homebrew
99-
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
100-
- name: Run Build
101-
run: bash build.mac.sh --no-lto "${{ github.workspace }}/Nuitka-Python-Out"
102-
- name: Cleanup artifact
103-
run: find "${{ github.workspace }}/Nuitka-Python-Out" \( -iname '*.o' -o -iname '__pycache__' -o -iname 'link.json' \) | xargs rm -rf
104-
- uses: actions/upload-artifact@v4
105-
with:
106-
name: Nuitka-Python311_mac_arm64_No_LTO
107-
path: ${{ github.workspace }}/Nuitka-Python-Out
108-
- name: Store cache
109-
env:
110-
CACHE_SAS: ${{ secrets.CACHE_SAS }}
111-
run: |
112-
cd ..
113-
export "file_name=NP_mac-arm-no_lto-${{ hashFiles('build.mac.sh') }}.tar.gz"
114-
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
115-
rm -rf ${file_name}
116-
tar -cf ${file_name} Nuitka-Python-Deps Nuitka-Python/dep-build
117-
curl -H "x-ms-blob-type: BlockBlob" --upload-file ${file_name} --url "$file_url"
118-
rm -rf ${file_name}
119-
mac_x64_no_lto:
120-
name: MacOS Intel Build No LTO
121-
runs-on: macos-latest
122-
steps:
123-
- name: Check out repository code
124-
uses: actions/checkout@v4
125-
- name: Download cache
126-
env:
127-
CACHE_SAS: ${{ secrets.CACHE_SAS }}
128-
run: |
129-
cd ..
130-
export "file_name=NP_mac-intel-no_lto-${{ hashFiles('build.mac.sh') }}.tar.gz"
131-
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
132-
curl -L "$file_url" -o "$file_name" || exit 0
133-
tar -xf "$file_name" || exit 0
134-
rm ${file_name} || exit 0
135-
- name: Uninstall homebrew
136-
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
137-
- name: Run Build
138-
run: arch -x86_64 bash build.mac.sh --no-lto "${{ github.workspace }}/Nuitka-Python-Out"
139-
- name: Cleanup artifact
140-
run: find "${{ github.workspace }}/Nuitka-Python-Out" \( -iname '*.o' -o -iname '__pycache__' -o -iname 'link.json' \) | xargs rm -rf
141-
- uses: actions/upload-artifact@v4
142-
with:
143-
name: Nuitka-Python311_mac_x86_64_No_LTO
144-
path: ${{ github.workspace }}/Nuitka-Python-Out
145-
- name: Store cache
146-
env:
147-
CACHE_SAS: ${{ secrets.CACHE_SAS }}
148-
run: |
149-
cd ..
150-
export "file_name=NP_mac-intel-no_lto-${{ hashFiles('build.mac.sh') }}.zip"
151-
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
152-
rm -rf ${file_name}
153-
tar -cf ${file_name} Nuitka-Python-Deps Nuitka-Python/dep-build
154-
curl -H "x-ms-blob-type: BlockBlob" --upload-file ${file_name} --url "$file_url"
155-
rm -rf ${file_name}
15658
15759
linux:
15860
name: Ubuntu Build
@@ -170,6 +72,7 @@ jobs:
17072
curl -L "$file_url" -o "$file_name" || exit 0
17173
unzip -q "$file_name" || exit 0
17274
rm ${file_name} || exit 0
75+
ln -s lib Nuitka-Python-Deps/lib64 || exit 0
17376
- name: Run Build
17477
run: bash build.sh "${{ github.workspace }}/Nuitka-Python-Out"
17578
- name: Cleanup artifact
@@ -186,6 +89,7 @@ jobs:
18689
export "file_name=NP_ubuntu-${{ hashFiles('build.sh') }}.zip"
18790
export "file_url=https://nuitkapythonci.blob.core.windows.net/job-cache/${file_name}?${CACHE_SAS}"
18891
rm -rf ${file_name}
92+
rm -f Nuitka-Python-Deps/lib64
18993
zip -r ${file_name} Nuitka-Python-Deps Nuitka-Python/dep-build
19094
curl -H "x-ms-blob-type: BlockBlob" --upload-file ${file_name} --url "$file_url"
19195
rm -rf ${file_name}

0 commit comments

Comments
 (0)