|
11 | 11 | env: |
12 | 12 | CARGO_TERM_COLOR: always |
13 | 13 | IS_NIGHTLY: ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }} |
14 | | - PROFILE: maxperf |
15 | 14 |
|
16 | 15 | jobs: |
17 | 16 | prepare: |
@@ -136,69 +135,59 @@ jobs: |
136 | 135 | - name: Build binaries |
137 | 136 | env: |
138 | 137 | SVM_TARGET_PLATFORM: ${{ matrix.svm_target_platform }} |
139 | | - PLATFORM_NAME: ${{ matrix.platform }} |
140 | | - TARGET: ${{ matrix.target }} |
141 | | - OUT_DIR: target/${{ matrix.target }}/${{ env.PROFILE }} |
142 | 138 | shell: bash |
143 | 139 | run: | |
144 | 140 | set -eo pipefail |
145 | | - flags=(--target $TARGET --profile $PROFILE --bins |
146 | | - --no-default-features --features rustls,aws-kms,cli,asm-keccak) |
| 141 | + target="${{ matrix.target }}" |
| 142 | + flags=() |
147 | 143 |
|
148 | | - # `jemalloc` is not fully supported on MSVC or aarch64 Linux. |
149 | | - if [[ "$TARGET" != *msvc* && "$TARGET" != "aarch64-unknown-linux-gnu" ]]; then |
150 | | - flags+=(--features jemalloc) |
151 | | - fi |
| 144 | + # Disable asm-keccak, see https://github.com/alloy-rs/core/issues/711 |
| 145 | + # # Remove jemalloc, only keep `asm-keccak` if applicable |
| 146 | + # if [[ "$target" != *msvc* && "$target" != "aarch64-unknown-linux-gnu" ]]; then |
| 147 | + # flags+=(--features asm-keccak) |
| 148 | + # fi |
152 | 149 |
|
153 | | - [[ "$TARGET" == *windows* ]] && ext=".exe" |
154 | | -
|
155 | | - cargo build "${flags[@]}" |
| 150 | + cargo build --release --bin forge --bin cast --target "$target" "${flags[@]}" |
156 | 151 |
|
157 | 152 | bins=(cast forge) |
158 | 153 | for name in "${bins[@]}"; do |
159 | | - bin=$OUT_DIR/$name$ext |
160 | | - echo "" |
161 | | - file "$bin" || true |
162 | | - du -h "$bin" || true |
163 | | - ldd "$bin" || true |
164 | | - $bin --version || true |
| 154 | + bin=./target/$target/release/$name |
| 155 | + file "$bin" || true |
| 156 | + ldd "$bin" || true |
| 157 | + $bin --version || true |
165 | 158 | done |
166 | 159 |
|
167 | 160 | - name: Archive binaries |
168 | 161 | id: artifacts |
169 | 162 | env: |
170 | 163 | PLATFORM_NAME: ${{ matrix.platform }} |
171 | | - OUT_DIR: target/${{ matrix.target }}/${{ env.PROFILE }} |
172 | | - VERSION_NAME: ${{ (env.IS_NIGHTLY && 'nightly') || needs.prepare.outputs.tag_name }} |
| 164 | + TARGET: ${{ matrix.target }} |
173 | 165 | ARCH: ${{ matrix.arch }} |
| 166 | + VERSION_NAME: ${{ (env.IS_NIGHTLY && 'nightly') || needs.prepare.outputs.tag_name }} |
174 | 167 | shell: bash |
175 | 168 | run: | |
176 | 169 | if [ "$PLATFORM_NAME" == "linux" ]; then |
177 | | - tar -czvf "foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C $OUT_DIR forge cast |
| 170 | + tar -czvf "foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C ./target/${TARGET}/release forge cast |
178 | 171 | echo "file_name=foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" >> $GITHUB_OUTPUT |
179 | 172 | elif [ "$PLATFORM_NAME" == "darwin" ]; then |
180 | 173 | # We need to use gtar here otherwise the archive is corrupt. |
181 | 174 | # See: https://github.com/actions/virtual-environments/issues/2619 |
182 | | - gtar -czvf "foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C $OUT_DIR forge cast |
| 175 | + gtar -czvf "foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" -C ./target/${TARGET}/release forge cast |
183 | 176 | echo "file_name=foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.tar.gz" >> $GITHUB_OUTPUT |
184 | | - else |
185 | | - cd $OUT_DIR |
186 | | - 7z a -tzip "foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.zip" forge.exe cast.exe |
187 | | - mv "foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.zip" ../../../ |
188 | | - echo "file_name=foundry_${VERSION_NAME}_${PLATFORM_NAME}_${ARCH}.zip" >> $GITHUB_OUTPUT |
189 | 177 | fi |
190 | 178 |
|
191 | 179 | - name: Build man page |
192 | 180 | id: man |
193 | 181 | if: matrix.target == 'x86_64-unknown-linux-gnu' |
194 | 182 | env: |
195 | | - OUT_DIR: target/${{ matrix.target }}/${{ env.PROFILE }} |
| 183 | + PLATFORM_NAME: ${{ matrix.platform }} |
| 184 | + TARGET: ${{ matrix.target }} |
196 | 185 | VERSION_NAME: ${{ (env.IS_NIGHTLY && 'nightly') || needs.prepare.outputs.tag_name }} |
197 | 186 | shell: bash |
198 | 187 | run: | |
199 | 188 | sudo apt-get -y install help2man |
200 | | - help2man -N $OUT_DIR/forge > forge.1 |
201 | | - help2man -N $OUT_DIR/cast > cast.1 |
| 189 | + help2man -N ./target/${TARGET}/release/forge > forge.1 |
| 190 | + help2man -N ./target/${TARGET}/release/cast > cast.1 |
202 | 191 | gzip forge.1 |
203 | 192 | gzip cast.1 |
204 | 193 | tar -czvf "foundry_man_${VERSION_NAME}.tar.gz" forge.1.gz cast.1.gz |
|
0 commit comments