-
Notifications
You must be signed in to change notification settings - Fork 142
147 lines (142 loc) · 5.11 KB
/
release-check.yml
File metadata and controls
147 lines (142 loc) · 5.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name: Version Release Check
on:
release:
types: [published]
workflow_call:
inputs:
release-tag:
required: true
type: string
rust_version:
required: true
type: string
env:
RUST_BACKTRACE: 1
SHELL: /bin/bash
CARGO_INCREMENTAL: 0
RUST_TOOLCHAIN_INPUT: ${{ github.event_name == 'release' && '1.85.0' || inputs.rust_version }}
jobs:
verify-archive:
strategy:
fail-fast: false
matrix:
platform:
- { target: aarch64-apple-darwin, os: macos-14 }
- { target: x86_64-apple-darwin, os: macos-15-intel }
- { target: x86_64-unknown-linux-gnu, os: ubuntu-latest }
- { target: x86_64-pc-windows-msvc, os: windows-latest }
runs-on: ${{ matrix.platform.os }}
env:
RELEASE_TAG: ${{ github.event_name == 'release' && github.ref_name || inputs.release-tag }}
steps:
- uses: actions/checkout@v4
- name: Install Rust
uses: dtolnay/rust-toolchain@master
id: toolchain
with:
toolchain: ${{ env.RUST_TOOLCHAIN_INPUT }}
targets: ${{ matrix.target }}
- name: Download prebuilt mozjs from artifact
if: ${{ env.RELEASE_TAG == '' }}
uses: actions/download-artifact@v4
with:
name: libmozjs-${{ matrix.platform.target }}.tar.gz
- name: Build from archive
if: ${{ env.RELEASE_TAG == '' }}
env:
MOZJS_ARCHIVE: libmozjs-${{ matrix.platform.target }}.tar.gz
run: |
cargo +${{ steps.toolchain.outputs.name }} build --verbose
cargo +${{ steps.toolchain.outputs.name }} test --tests --examples --verbose
- name: Build from auto-download
if: ${{ env.RELEASE_TAG != '' }}
env:
MOZJS_ATTESTATION: strict
run: |
cargo +${{ steps.toolchain.outputs.name }} build --verbose
cargo +${{ steps.toolchain.outputs.name }} test --tests --examples --verbose
verify-archive-android:
name: "Verify archive Android"
runs-on: ubuntu-latest
strategy:
matrix:
target:
[
"armv7-linux-androideabi",
"aarch64-linux-android",
"x86_64-linux-android",
]
env:
RELEASE_TAG: ${{ github.event_name == 'release' && github.ref_name || inputs.release-tag }}
steps:
- uses: actions/checkout@v4
- name: Install NDK
uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: r28
- name: Install Rust
uses: dtolnay/rust-toolchain@master
id: toolchain
with:
toolchain: ${{ env.RUST_TOOLCHAIN_INPUT }}
targets: ${{ matrix.target }}
- name: Download prebuilt mozjs from artifact
if: ${{ env.RELEASE_TAG == '' }}
uses: actions/download-artifact@v4
with:
name: libmozjs-${{ matrix.target }}.tar.gz
- name: Build from archive
if: ${{ env.RELEASE_TAG == '' }}
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
MOZJS_ARCHIVE: libmozjs-${{ matrix.target }}.tar.gz
run: |
./android-build cargo +${{ steps.toolchain.outputs.name }} build --target="${{ matrix.target }}" --verbose
- name: Build from auto-download (arch ${{ matrix.target }})
if: ${{ env.RELEASE_TAG != '' }}
env:
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
MOZJS_ATTESTATION: strict
run: |
./android-build cargo +${{ steps.toolchain.outputs.name }} build --target="${{ matrix.target }}" --verbose
verify-archive-ohos:
name: "Verify archive OpenHarmony"
runs-on: ubuntu-latest
strategy:
matrix:
target: ["aarch64-unknown-linux-ohos", "x86_64-unknown-linux-ohos"]
env:
RELEASE_TAG: ${{ github.event_name == 'release' && github.ref_name || inputs.release-tag }}
steps:
- uses: actions/checkout@v4
- name: Setup OpenHarmony SDK
id: setup_sdk
uses: openharmony-rs/setup-ohos-sdk@v0.1
with:
version: "4.1"
- name: Install Rust
uses: dtolnay/rust-toolchain@master
id: toolchain
with:
toolchain: ${{ env.RUST_TOOLCHAIN_INPUT }}
targets: ${{ matrix.target }}
- name: Download prebuilt mozjs from artifact
if: ${{ env.RELEASE_TAG == '' }}
uses: actions/download-artifact@v4
with:
name: libmozjs-${{ matrix.target }}.tar.gz
- name: Build from archive
if: ${{ env.RELEASE_TAG == '' }}
env:
OHOS_SDK_NATIVE: ${{ steps.setup_sdk.outputs.ohos_sdk_native }}
MOZJS_ARCHIVE: libmozjs-${{ matrix.target }}.tar.gz
run: |
./ohos-build cargo +${{ steps.toolchain.outputs.name }} build --target="${{ matrix.target }}" --verbose
- name: Build from auto-download (arch ${{ matrix.target }})
if: ${{ env.RELEASE_TAG != '' }}
env:
OHOS_SDK_NATIVE: ${{ steps.setup_sdk.outputs.ohos_sdk_native }}
MOZJS_ATTESTATION: strict
run: |
./ohos-build cargo +${{ steps.toolchain.outputs.name }} build --target="${{ matrix.target }}" --verbose