66
77permissions :
88 contents : write
9+ packages : write
910
1011env :
1112 CARGO_TERM_COLOR : always
@@ -15,20 +16,17 @@ jobs:
1516 name : Build (${{ matrix.target }})
1617 runs-on : ${{ matrix.os }}
1718 strategy :
19+ fail-fast : false
1820 matrix :
1921 include :
2022 - target : x86_64-unknown-linux-gnu
2123 os : ubuntu-latest
22- archive : tar.gz
2324 - target : x86_64-pc-windows-msvc
2425 os : windows-latest
25- archive : zip
2626 - target : aarch64-apple-darwin
2727 os : macos-latest
28- archive : tar.gz
2928 - target : x86_64-apple-darwin
3029 os : macos-latest
31- archive : tar.gz
3230
3331 steps :
3432 - uses : actions/checkout@v4
@@ -41,30 +39,30 @@ jobs:
4139 with :
4240 key : ${{ matrix.target }}
4341
42+ - name : Install .NET 8 (macOS)
43+ if : runner.os == 'macOS'
44+ uses : actions/setup-dotnet@v4
45+ with :
46+ dotnet-version : ' 8.0'
47+
4448 - name : Build
4549 run : cargo build --release --target ${{ matrix.target }}
4650
4751 - name : Package (Linux)
4852 if : matrix.target == 'x86_64-unknown-linux-gnu'
4953 run : |
50- cd target/${{ matrix.target }}/release
51- tar czf ../../../mzdata-converter-${{ matrix.target }}.tar.gz mzdata-converter
52- cd ../../..
53- # Also bundle with Bruker SDK
54- cp libs/libtimsdata.so target/${{ matrix.target }}/release/
55- cd target/${{ matrix.target }}/release
56- tar czf ../../../mzdata-converter-${{ matrix.target }}-with-bruker-sdk.tar.gz mzdata-converter libtimsdata.so
57- cd ../../..
54+ cp target/${{ matrix.target }}/release/mzdata-converter .
55+ cp libs/libtimsdata.so .
56+ tar czf mzdata-converter-${{ matrix.target }}.tar.gz mzdata-converter libtimsdata.so
5857
5958 - name : Package (macOS)
6059 if : contains(matrix.target, 'apple')
6160 run : |
62- cd target/${{ matrix.target }}/release
63- tar czf ../../../mzdata-converter-${{ matrix.target }}.tar.gz mzdata-converter
64- cd ../../..
61+ cp target/${{ matrix.target }}/release/mzdata-converter .
62+ tar czf mzdata-converter-${{ matrix.target }}.tar.gz mzdata-converter
6563
6664 - name : Package (Windows)
67- if : matrix.archive == 'zip '
65+ if : matrix.target == 'x86_64-pc-windows-msvc '
6866 shell : pwsh
6967 run : |
7068 Compress-Archive -Path target/${{ matrix.target }}/release/mzdata-converter.exe,libs/timsdata.dll -DestinationPath mzdata-converter-${{ matrix.target }}.zip
8987 with :
9088 tag_name : ${{ github.event.release.tag_name }}
9189 files : artifacts/*
90+
91+ docker :
92+ name : Docker image
93+ runs-on : ubuntu-latest
94+ steps :
95+ - uses : actions/checkout@v4
96+
97+ - uses : docker/login-action@v3
98+ with :
99+ registry : ghcr.io
100+ username : ${{ github.actor }}
101+ password : ${{ secrets.GITHUB_TOKEN }}
102+
103+ - uses : docker/setup-buildx-action@v3
104+
105+ - name : Docker metadata
106+ id : meta
107+ uses : docker/metadata-action@v5
108+ with :
109+ images : ghcr.io/${{ github.repository }}
110+ tags : |
111+ type=semver,pattern={{version}}
112+ type=semver,pattern={{major}}.{{minor}}
113+ type=raw,value=latest
114+
115+ - uses : docker/build-push-action@v6
116+ with :
117+ context : .
118+ push : true
119+ tags : ${{ steps.meta.outputs.tags }}
120+ labels : ${{ steps.meta.outputs.labels }}
121+ cache-from : type=gha
122+ cache-to : type=gha,mode=max
0 commit comments