Fork of daniellemaywood.uk/gleam — Wasm codegen work
1name: release
2on:
3 push:
4 tags:
5 - "v*"
6
7env:
8 CARGO_TERM_COLOR: always
9 RUSTFLAGS: "-D warnings"
10
11permissions:
12 contents: write
13 id-token: write
14 attestations: write
15
16jobs:
17 build-release:
18 name: build-release
19 runs-on: ${{ matrix.os }}
20 strategy:
21 matrix:
22 target:
23 - x86_64-unknown-linux-musl
24 - aarch64-unknown-linux-musl
25 - x86_64-apple-darwin
26 - aarch64-apple-darwin
27 - x86_64-pc-windows-msvc
28 toolchain: [ stable ]
29 include:
30 - os: ubuntu-latest
31 target: x86_64-unknown-linux-musl
32 expected-binary-architecture: x86-64
33 cargo-tool: cross
34 - os: ubuntu-latest
35 target: aarch64-unknown-linux-musl
36 expected-binary-architecture: aarch64
37 cargo-tool: cross
38 # macos>=14 runs exclusively on aarch64 and will thus fail to execute properly for x64
39 - os: macos-13
40 target: x86_64-apple-darwin
41 expected-binary-architecture: x86_64
42 cargo-tool: cargo
43 - os: macos-latest
44 target: aarch64-apple-darwin
45 expected-binary-architecture: arm64
46 cargo-tool: cargo
47 - os: windows-latest
48 target: x86_64-pc-windows-msvc
49 expected-binary-architecture: x86-64
50 cargo-tool: cargo
51 - os: ubuntu-latest
52 target: wasm32-unknown-unknown
53 cargo-tool: wasm-pack
54 steps:
55 - name: Checkout repository
56 uses: actions/checkout@v4
57
58 - name: "Build Archive"
59 id: build
60 uses: "./.github/actions/build-release"
61 with:
62 version: ${{ github.ref_name }}
63 toolchain: ${{ matrix.toolchain }}
64 target: ${{ matrix.target }}
65 cargo-tool: ${{ matrix.cargo-tool }}
66 expected-binary-architecture: ${{ matrix.expected-binary-architecture }}
67
68 - name: Upload release archive
69 id: release
70 # https://github.com/softprops/action-gh-release/issues/445
71 # uses: softprops/action-gh-release@v2
72 uses: softprops/action-gh-release@0bd7e8b279c9b5b36661d552472fbbfe671fe26e
73 with:
74 draft: true
75 prerelease: ${{ contains(github.ref_name, '-rc.') }}
76 fail_on_unmatched_files: true
77 files: "${{ steps.build.outputs.files }}"
78 generate_release_notes: true
79 tag_name: ${{ github.ref_name }}