fix: attempt to fix linux arm64 build (#96) #374
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# GENERATED BY ./ci.generate.ts -- DO NOT DIRECTLY EDIT | |
name: CI | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
tags: | |
- "*" | |
concurrency: | |
group: "${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}" | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: "${{ matrix.config.target }}" | |
runs-on: "${{ matrix.config.os }}" | |
strategy: | |
matrix: | |
config: | |
- os: macos-13 | |
run_tests: "true" | |
cross: "false" | |
target: x86_64-apple-darwin | |
- os: macos-latest | |
run_tests: "true" | |
cross: "false" | |
target: aarch64-apple-darwin | |
- os: windows-latest | |
run_tests: "true" | |
cross: "false" | |
target: x86_64-pc-windows-msvc | |
- os: ubuntu-20.04 | |
run_tests: "true" | |
cross: "false" | |
target: x86_64-unknown-linux-gnu | |
- os: "${{ (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && 'buildjet-2vcpu-ubuntu-2204-arm' || 'ubuntu-latest' }}" | |
run_tests: "true" | |
cross: "false" | |
target: aarch64-unknown-linux-gnu | |
outputs: | |
ZIP_CHECKSUM_X86_64_APPLE_DARWIN: "${{steps.pre_release_x86_64_apple_darwin.outputs.ZIP_CHECKSUM}}" | |
ZIP_CHECKSUM_AARCH64_APPLE_DARWIN: "${{steps.pre_release_aarch64_apple_darwin.outputs.ZIP_CHECKSUM}}" | |
ZIP_CHECKSUM_X86_64_PC_WINDOWS_MSVC: "${{steps.pre_release_x86_64_pc_windows_msvc.outputs.ZIP_CHECKSUM}}" | |
ZIP_CHECKSUM_X86_64_UNKNOWN_LINUX_GNU: "${{steps.pre_release_x86_64_unknown_linux_gnu.outputs.ZIP_CHECKSUM}}" | |
ZIP_CHECKSUM_AARCH64_UNKNOWN_LINUX_GNU: "${{steps.pre_release_aarch64_unknown_linux_gnu.outputs.ZIP_CHECKSUM}}" | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: full | |
steps: | |
- uses: actions/checkout@v4 | |
if: "matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')" | |
- uses: dsherret/rust-toolchain-file@v1 | |
if: "matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')" | |
- name: Cache cargo | |
uses: Swatinem/rust-cache@v2 | |
with: | |
prefix-key: "v3-${{matrix.config.target}}" | |
save-if: "${{ github.ref == 'refs/heads/main' }}" | |
if: "matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')" | |
- name: Setup Rust (aarch64-apple-darwin) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'aarch64-apple-darwin')" | |
run: rustup target add aarch64-apple-darwin | |
- uses: denoland/setup-deno@v2 | |
if: "matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')" | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: 21 | |
if: "matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')" | |
- name: npm install | |
run: cd js/node && npm ci | |
if: "matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')" | |
- name: Setup cross | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.cross == 'true')" | |
run: |- | |
cd js/node && npm run build:script | |
cargo install cross --locked --git https://github.com/cross-rs/cross --rev 4090beca3cfffa44371a5bba524de3a578aa46c3 | |
- name: Build (Debug) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.cross != 'true' && !startsWith(github.ref, 'refs/tags/'))" | |
run: "cargo build --locked --all-targets --target ${{matrix.config.target}}" | |
- name: Build release | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.cross != 'true' && startsWith(github.ref, 'refs/tags/'))" | |
run: "cargo build --locked --all-targets --target ${{matrix.config.target}} --release" | |
- name: Build cross (Debug) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.cross == 'true' && !startsWith(github.ref, 'refs/tags/'))" | |
run: "cross build --locked --target ${{matrix.config.target}}" | |
- name: Build cross (Release) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.cross == 'true' && startsWith(github.ref, 'refs/tags/'))" | |
run: "cross build --locked --target ${{matrix.config.target}} --release" | |
- name: Lint | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (!startsWith(github.ref, 'refs/tags/') && matrix.config.target == 'x86_64-unknown-linux-gnu')" | |
run: cargo clippy | |
- name: Test (Debug) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.run_tests == 'true' && !startsWith(github.ref, 'refs/tags/'))" | |
run: cargo test --locked --all-features | |
- name: Test (Release) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.run_tests == 'true' && startsWith(github.ref, 'refs/tags/'))" | |
run: cargo test --locked --all-features --release | |
- name: Pre-release (x86_64-apple-darwin) | |
id: pre_release_x86_64_apple_darwin | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'x86_64-apple-darwin' && startsWith(github.ref, 'refs/tags/'))" | |
run: |- | |
cd target/x86_64-apple-darwin/release | |
zip -r dprint-plugin-prettier-x86_64-apple-darwin.zip dprint-plugin-prettier | |
echo "ZIP_CHECKSUM=$(shasum -a 256 dprint-plugin-prettier-x86_64-apple-darwin.zip | awk '{print $1}')" >> $GITHUB_OUTPUT | |
- name: Pre-release (aarch64-apple-darwin) | |
id: pre_release_aarch64_apple_darwin | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'aarch64-apple-darwin' && startsWith(github.ref, 'refs/tags/'))" | |
run: |- | |
cd target/aarch64-apple-darwin/release | |
zip -r dprint-plugin-prettier-aarch64-apple-darwin.zip dprint-plugin-prettier | |
echo "ZIP_CHECKSUM=$(shasum -a 256 dprint-plugin-prettier-aarch64-apple-darwin.zip | awk '{print $1}')" >> $GITHUB_OUTPUT | |
- name: Pre-release (x86_64-pc-windows-msvc) | |
id: pre_release_x86_64_pc_windows_msvc | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'x86_64-pc-windows-msvc' && startsWith(github.ref, 'refs/tags/'))" | |
run: |- | |
Compress-Archive -CompressionLevel Optimal -Force -Path target/x86_64-pc-windows-msvc/release/dprint-plugin-prettier.exe -DestinationPath target/x86_64-pc-windows-msvc/release/dprint-plugin-prettier-x86_64-pc-windows-msvc.zip | |
echo "ZIP_CHECKSUM=$(shasum -a 256 target/x86_64-pc-windows-msvc/release/dprint-plugin-prettier-x86_64-pc-windows-msvc.zip | awk '{print $1}')" >> $GITHUB_OUTPUT | |
- name: Pre-release (x86_64-unknown-linux-gnu) | |
id: pre_release_x86_64_unknown_linux_gnu | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'x86_64-unknown-linux-gnu' && startsWith(github.ref, 'refs/tags/'))" | |
run: |- | |
cd target/x86_64-unknown-linux-gnu/release | |
zip -r dprint-plugin-prettier-x86_64-unknown-linux-gnu.zip dprint-plugin-prettier | |
echo "ZIP_CHECKSUM=$(shasum -a 256 dprint-plugin-prettier-x86_64-unknown-linux-gnu.zip | awk '{print $1}')" >> $GITHUB_OUTPUT | |
- name: Pre-release (aarch64-unknown-linux-gnu) | |
id: pre_release_aarch64_unknown_linux_gnu | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'aarch64-unknown-linux-gnu' && startsWith(github.ref, 'refs/tags/'))" | |
run: |- | |
cd target/aarch64-unknown-linux-gnu/release | |
zip -r dprint-plugin-prettier-aarch64-unknown-linux-gnu.zip dprint-plugin-prettier | |
echo "ZIP_CHECKSUM=$(shasum -a 256 dprint-plugin-prettier-aarch64-unknown-linux-gnu.zip | awk '{print $1}')" >> $GITHUB_OUTPUT | |
- name: Upload artifacts (x86_64-apple-darwin) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'x86_64-apple-darwin' && startsWith(github.ref, 'refs/tags/'))" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x86_64-apple-darwin-artifacts | |
path: target/x86_64-apple-darwin/release/dprint-plugin-prettier-x86_64-apple-darwin.zip | |
- name: Upload artifacts (aarch64-apple-darwin) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'aarch64-apple-darwin' && startsWith(github.ref, 'refs/tags/'))" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-apple-darwin-artifacts | |
path: target/aarch64-apple-darwin/release/dprint-plugin-prettier-aarch64-apple-darwin.zip | |
- name: Upload artifacts (x86_64-pc-windows-msvc) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'x86_64-pc-windows-msvc' && startsWith(github.ref, 'refs/tags/'))" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x86_64-pc-windows-msvc-artifacts | |
path: target/x86_64-pc-windows-msvc/release/dprint-plugin-prettier-x86_64-pc-windows-msvc.zip | |
- name: Upload artifacts (x86_64-unknown-linux-gnu) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'x86_64-unknown-linux-gnu' && startsWith(github.ref, 'refs/tags/'))" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x86_64-unknown-linux-gnu-artifacts | |
path: target/x86_64-unknown-linux-gnu/release/dprint-plugin-prettier-x86_64-unknown-linux-gnu.zip | |
- name: Upload artifacts (aarch64-unknown-linux-gnu) | |
if: "(matrix.config.target != 'aarch64-unknown-linux-gnu' || github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/')) && (matrix.config.target == 'aarch64-unknown-linux-gnu' && startsWith(github.ref, 'refs/tags/'))" | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-unknown-linux-gnu-artifacts | |
path: target/aarch64-unknown-linux-gnu/release/dprint-plugin-prettier-aarch64-unknown-linux-gnu.zip | |
draft_release: | |
name: draft_release | |
if: "startsWith(github.ref, 'refs/tags/')" | |
needs: build | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Download artifacts | |
uses: actions/download-artifact@v4 | |
- uses: denoland/setup-deno@v2 | |
- name: Move downloaded artifacts to root directory | |
run: |- | |
mv x86_64-apple-darwin-artifacts/dprint-plugin-prettier-x86_64-apple-darwin.zip . | |
mv aarch64-apple-darwin-artifacts/dprint-plugin-prettier-aarch64-apple-darwin.zip . | |
mv x86_64-pc-windows-msvc-artifacts/dprint-plugin-prettier-x86_64-pc-windows-msvc.zip . | |
mv x86_64-unknown-linux-gnu-artifacts/dprint-plugin-prettier-x86_64-unknown-linux-gnu.zip . | |
mv aarch64-unknown-linux-gnu-artifacts/dprint-plugin-prettier-aarch64-unknown-linux-gnu.zip . | |
- name: Output checksums | |
run: |- | |
echo "dprint-plugin-prettier-x86_64-apple-darwin.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_APPLE_DARWIN}}" | |
echo "dprint-plugin-prettier-aarch64-apple-darwin.zip: ${{needs.build.outputs.ZIP_CHECKSUM_AARCH64_APPLE_DARWIN}}" | |
echo "dprint-plugin-prettier-x86_64-pc-windows-msvc.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_PC_WINDOWS_MSVC}}" | |
echo "dprint-plugin-prettier-x86_64-unknown-linux-gnu.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_UNKNOWN_LINUX_GNU}}" | |
echo "dprint-plugin-prettier-aarch64-unknown-linux-gnu.zip: ${{needs.build.outputs.ZIP_CHECKSUM_AARCH64_UNKNOWN_LINUX_GNU}}" | |
- name: Create plugin file | |
run: deno run -A scripts/create_plugin_file.ts | |
- name: Get tag version | |
id: get_tag_version | |
run: 'echo TAG_VERSION=${GITHUB_REF/refs\/tags\//} >> $GITHUB_OUTPUT' | |
- name: Get plugin file checksum | |
id: get_plugin_file_checksum | |
run: 'echo "CHECKSUM=$(shasum -a 256 plugin.json | awk ''{print $1}'')" >> $GITHUB_OUTPUT' | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
env: | |
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" | |
with: | |
files: |- | |
dprint-plugin-prettier-x86_64-apple-darwin.zip | |
dprint-plugin-prettier-aarch64-apple-darwin.zip | |
dprint-plugin-prettier-x86_64-pc-windows-msvc.zip | |
dprint-plugin-prettier-x86_64-unknown-linux-gnu.zip | |
dprint-plugin-prettier-aarch64-unknown-linux-gnu.zip | |
plugin.json | |
body: | | |
## Install | |
Dependencies: | |
- Install dprint's CLI >= 0.40.0 | |
In a dprint configuration file: | |
1. Specify the plugin url and checksum in the `"plugins"` array or run `dprint config add prettier`: | |
```jsonc | |
{ | |
// etc... | |
"plugins": [ | |
// ...add other dprint plugins here that you want to take precedence over prettier... | |
"https://plugins.dprint.dev/prettier-${{ steps.get_tag_version.outputs.TAG_VERSION }}.json@${{ steps.get_plugin_file_checksum.outputs.CHECKSUM }}" | |
] | |
} | |
``` | |
2. Add a `"prettier"` configuration property if desired. | |
```jsonc | |
{ | |
// ...etc... | |
"prettier": { | |
"trailingComma": "all", | |
"singleQuote": true, | |
"proseWrap": "always" | |
} | |
} | |
``` | |
draft: false |