0.5.1 #151
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-12 | |
run_tests: 'true' | |
target: x86_64-apple-darwin | |
cross: 'false' | |
- os: macos-latest | |
run_tests: 'true' | |
target: aarch64-apple-darwin | |
cross: 'false' | |
- os: windows-latest | |
run_tests: 'true' | |
target: x86_64-pc-windows-msvc | |
cross: 'false' | |
- os: ubuntu-20.04 | |
run_tests: 'true' | |
target: x86_64-unknown-linux-gnu | |
cross: 'false' | |
- os: ubuntu-20.04 | |
run_tests: 'false' | |
target: x86_64-unknown-linux-musl | |
cross: 'false' | |
- os: ubuntu-20.04 | |
run_tests: 'false' | |
target: aarch64-unknown-linux-gnu | |
cross: 'false' | |
- os: ubuntu-20.04 | |
run_tests: 'false' | |
target: aarch64-unknown-linux-musl | |
cross: 'false' | |
- os: ubuntu-20.04 | |
run_tests: 'false' | |
target: riscv64gc-unknown-linux-gnu | |
cross: 'true' | |
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_X86_64_UNKNOWN_LINUX_MUSL: '${{steps.pre_release_x86_64_unknown_linux_musl.outputs.ZIP_CHECKSUM}}' | |
ZIP_CHECKSUM_AARCH64_UNKNOWN_LINUX_GNU: '${{steps.pre_release_aarch64_unknown_linux_gnu.outputs.ZIP_CHECKSUM}}' | |
ZIP_CHECKSUM_AARCH64_UNKNOWN_LINUX_MUSL: '${{steps.pre_release_aarch64_unknown_linux_musl.outputs.ZIP_CHECKSUM}}' | |
ZIP_CHECKSUM_RISCV64GC_UNKNOWN_LINUX_GNU: '${{steps.pre_release_riscv64gc_unknown_linux_gnu.outputs.ZIP_CHECKSUM}}' | |
env: | |
CARGO_INCREMENTAL: 0 | |
RUST_BACKTRACE: full | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: dsherret/rust-toolchain-file@v1 | |
- name: Cache cargo | |
if: 'startsWith(github.ref, ''refs/tags/'') != true' | |
uses: Swatinem/rust-cache@v2 | |
with: | |
key: '${{ matrix.config.target }}' | |
- uses: denoland/setup-deno@v2 | |
- name: Setup (Linux x86_64-musl) | |
if: matrix.config.target == 'x86_64-unknown-linux-musl' | |
run: |- | |
sudo apt update | |
sudo apt install musl musl-dev musl-tools | |
rustup target add x86_64-unknown-linux-musl | |
- name: Setup (Linux aarch64) | |
if: matrix.config.target == 'aarch64-unknown-linux-gnu' | |
run: |- | |
sudo apt update | |
sudo apt install -y gcc-aarch64-linux-gnu | |
rustup target add aarch64-unknown-linux-gnu | |
- name: Setup (Linux aarch64-musl) | |
if: matrix.config.target == 'aarch64-unknown-linux-musl' | |
run: |- | |
sudo apt update | |
sudo apt install gcc-aarch64-linux-gnu musl musl-dev musl-tools | |
rustup target add aarch64-unknown-linux-musl | |
- name: Setup cross | |
if: matrix.config.cross == 'true' | |
run: 'cargo install cross --git https://github.com/cross-rs/cross --rev 88f49ff79e777bef6d3564531636ee4d3cc2f8d2' | |
- name: Build (Debug) | |
if: 'matrix.config.cross != ''true'' && !startsWith(github.ref, ''refs/tags/'')' | |
env: | |
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc | |
run: 'cargo build --locked --all-targets --target ${{matrix.config.target}}' | |
- name: Build release | |
if: 'matrix.config.cross != ''true'' && startsWith(github.ref, ''refs/tags/'')' | |
env: | |
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc | |
run: 'cargo build --locked --all-targets --target ${{matrix.config.target}} --release' | |
- name: Build cross (Debug) | |
if: 'matrix.config.cross == ''true'' && !startsWith(github.ref, ''refs/tags/'')' | |
run: 'cross build --locked --target ${{matrix.config.target}}' | |
- name: Build cross (Release) | |
if: 'matrix.config.cross == ''true'' && startsWith(github.ref, ''refs/tags/'')' | |
run: 'cross build --locked --target ${{matrix.config.target}} --release' | |
- name: Lint | |
if: '!startsWith(github.ref, ''refs/tags/'') && matrix.config.target == ''x86_64-unknown-linux-gnu''' | |
run: cargo clippy | |
- name: Test (Debug) | |
if: 'matrix.config.run_tests == ''true'' && !startsWith(github.ref, ''refs/tags/'')' | |
run: cargo test --locked --all-features | |
- name: Test (Release) | |
if: '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 == ''x86_64-apple-darwin'' && startsWith(github.ref, ''refs/tags/'')' | |
run: |- | |
cd target/x86_64-apple-darwin/release | |
zip -r dprint-plugin-exec-x86_64-apple-darwin.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-x86_64-apple-darwin.zip | awk '{print $1}')" | |
- name: Pre-release (aarch64-apple-darwin) | |
id: pre_release_aarch64_apple_darwin | |
if: 'matrix.config.target == ''aarch64-apple-darwin'' && startsWith(github.ref, ''refs/tags/'')' | |
run: |- | |
cd target/aarch64-apple-darwin/release | |
zip -r dprint-plugin-exec-aarch64-apple-darwin.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-aarch64-apple-darwin.zip | awk '{print $1}')" | |
- name: Pre-release (x86_64-pc-windows-msvc) | |
id: pre_release_x86_64_pc_windows_msvc | |
if: '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-exec.exe -DestinationPath target/x86_64-pc-windows-msvc/release/dprint-plugin-exec-x86_64-pc-windows-msvc.zip | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 target/x86_64-pc-windows-msvc/release/dprint-plugin-exec-x86_64-pc-windows-msvc.zip | awk '{print $1}')" | |
- name: Pre-release (x86_64-unknown-linux-gnu) | |
id: pre_release_x86_64_unknown_linux_gnu | |
if: '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-exec-x86_64-unknown-linux-gnu.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-x86_64-unknown-linux-gnu.zip | awk '{print $1}')" | |
- name: Pre-release (x86_64-unknown-linux-musl) | |
id: pre_release_x86_64_unknown_linux_musl | |
if: 'matrix.config.target == ''x86_64-unknown-linux-musl'' && startsWith(github.ref, ''refs/tags/'')' | |
run: |- | |
cd target/x86_64-unknown-linux-musl/release | |
zip -r dprint-plugin-exec-x86_64-unknown-linux-musl.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-x86_64-unknown-linux-musl.zip | awk '{print $1}')" | |
- name: Pre-release (aarch64-unknown-linux-gnu) | |
id: pre_release_aarch64_unknown_linux_gnu | |
if: 'matrix.config.target == ''aarch64-unknown-linux-gnu'' && startsWith(github.ref, ''refs/tags/'')' | |
run: |- | |
cd target/aarch64-unknown-linux-gnu/release | |
zip -r dprint-plugin-exec-aarch64-unknown-linux-gnu.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-aarch64-unknown-linux-gnu.zip | awk '{print $1}')" | |
- name: Pre-release (aarch64-unknown-linux-musl) | |
id: pre_release_aarch64_unknown_linux_musl | |
if: 'matrix.config.target == ''aarch64-unknown-linux-musl'' && startsWith(github.ref, ''refs/tags/'')' | |
run: |- | |
cd target/aarch64-unknown-linux-musl/release | |
zip -r dprint-plugin-exec-aarch64-unknown-linux-musl.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-aarch64-unknown-linux-musl.zip | awk '{print $1}')" | |
- name: Pre-release (riscv64gc-unknown-linux-gnu) | |
id: pre_release_riscv64gc_unknown_linux_gnu | |
if: 'matrix.config.target == ''riscv64gc-unknown-linux-gnu'' && startsWith(github.ref, ''refs/tags/'')' | |
run: |- | |
cd target/riscv64gc-unknown-linux-gnu/release | |
zip -r dprint-plugin-exec-riscv64gc-unknown-linux-gnu.zip dprint-plugin-exec | |
echo "::set-output name=ZIP_CHECKSUM::$(shasum -a 256 dprint-plugin-exec-riscv64gc-unknown-linux-gnu.zip | awk '{print $1}')" | |
- name: Upload artifacts (x86_64-apple-darwin) | |
if: '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-exec-x86_64-apple-darwin.zip | |
- name: Upload artifacts (aarch64-apple-darwin) | |
if: '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-exec-aarch64-apple-darwin.zip | |
- name: Upload artifacts (x86_64-pc-windows-msvc) | |
if: '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-exec-x86_64-pc-windows-msvc.zip | |
- name: Upload artifacts (x86_64-unknown-linux-gnu) | |
if: '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-exec-x86_64-unknown-linux-gnu.zip | |
- name: Upload artifacts (x86_64-unknown-linux-musl) | |
if: 'matrix.config.target == ''x86_64-unknown-linux-musl'' && startsWith(github.ref, ''refs/tags/'')' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: x86_64-unknown-linux-musl-artifacts | |
path: target/x86_64-unknown-linux-musl/release/dprint-plugin-exec-x86_64-unknown-linux-musl.zip | |
- name: Upload artifacts (aarch64-unknown-linux-gnu) | |
if: '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-exec-aarch64-unknown-linux-gnu.zip | |
- name: Upload artifacts (aarch64-unknown-linux-musl) | |
if: 'matrix.config.target == ''aarch64-unknown-linux-musl'' && startsWith(github.ref, ''refs/tags/'')' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: aarch64-unknown-linux-musl-artifacts | |
path: target/aarch64-unknown-linux-musl/release/dprint-plugin-exec-aarch64-unknown-linux-musl.zip | |
- name: Upload artifacts (riscv64gc-unknown-linux-gnu) | |
if: 'matrix.config.target == ''riscv64gc-unknown-linux-gnu'' && startsWith(github.ref, ''refs/tags/'')' | |
uses: actions/upload-artifact@v4 | |
with: | |
name: riscv64gc-unknown-linux-gnu-artifacts | |
path: target/riscv64gc-unknown-linux-gnu/release/dprint-plugin-exec-riscv64gc-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-exec-x86_64-apple-darwin.zip . | |
mv aarch64-apple-darwin-artifacts/dprint-plugin-exec-aarch64-apple-darwin.zip . | |
mv x86_64-pc-windows-msvc-artifacts/dprint-plugin-exec-x86_64-pc-windows-msvc.zip . | |
mv x86_64-unknown-linux-gnu-artifacts/dprint-plugin-exec-x86_64-unknown-linux-gnu.zip . | |
mv x86_64-unknown-linux-musl-artifacts/dprint-plugin-exec-x86_64-unknown-linux-musl.zip . | |
mv aarch64-unknown-linux-gnu-artifacts/dprint-plugin-exec-aarch64-unknown-linux-gnu.zip . | |
mv aarch64-unknown-linux-musl-artifacts/dprint-plugin-exec-aarch64-unknown-linux-musl.zip . | |
mv riscv64gc-unknown-linux-gnu-artifacts/dprint-plugin-exec-riscv64gc-unknown-linux-gnu.zip . | |
- name: Output checksums | |
run: |- | |
echo "dprint-plugin-exec-x86_64-apple-darwin.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_APPLE_DARWIN}}" | |
echo "dprint-plugin-exec-aarch64-apple-darwin.zip: ${{needs.build.outputs.ZIP_CHECKSUM_AARCH64_APPLE_DARWIN}}" | |
echo "dprint-plugin-exec-x86_64-pc-windows-msvc.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_PC_WINDOWS_MSVC}}" | |
echo "dprint-plugin-exec-x86_64-unknown-linux-gnu.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_UNKNOWN_LINUX_GNU}}" | |
echo "dprint-plugin-exec-x86_64-unknown-linux-musl.zip: ${{needs.build.outputs.ZIP_CHECKSUM_X86_64_UNKNOWN_LINUX_MUSL}}" | |
echo "dprint-plugin-exec-aarch64-unknown-linux-gnu.zip: ${{needs.build.outputs.ZIP_CHECKSUM_AARCH64_UNKNOWN_LINUX_GNU}}" | |
echo "dprint-plugin-exec-aarch64-unknown-linux-musl.zip: ${{needs.build.outputs.ZIP_CHECKSUM_AARCH64_UNKNOWN_LINUX_MUSL}}" | |
echo "dprint-plugin-exec-riscv64gc-unknown-linux-gnu.zip: ${{needs.build.outputs.ZIP_CHECKSUM_RISCV64GC_UNKNOWN_LINUX_GNU}}" | |
- name: Create plugin file | |
run: deno run --allow-read=. --allow-write=. scripts/create_plugin_file.ts | |
- name: Get tag version | |
id: get_tag_version | |
run: 'echo ::set-output name=TAG_VERSION::${GITHUB_REF/refs\/tags\//}' | |
- name: Get plugin file checksum | |
id: get_plugin_file_checksum | |
run: 'echo "::set-output name=CHECKSUM::$(shasum -a 256 plugin.json | awk ''{print $1}'')"' | |
- name: Update Config Schema Version | |
run: 'sed -i ''s/exec\/0.0.0/exec\/${{ steps.get_tag_version.outputs.TAG_VERSION }}/'' deployment/schema.json' | |
- name: Release | |
uses: softprops/action-gh-release@v1 | |
env: | |
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}' | |
with: | |
files: |- | |
dprint-plugin-exec-x86_64-apple-darwin.zip | |
dprint-plugin-exec-aarch64-apple-darwin.zip | |
dprint-plugin-exec-x86_64-pc-windows-msvc.zip | |
dprint-plugin-exec-x86_64-unknown-linux-gnu.zip | |
dprint-plugin-exec-x86_64-unknown-linux-musl.zip | |
dprint-plugin-exec-aarch64-unknown-linux-gnu.zip | |
dprint-plugin-exec-aarch64-unknown-linux-musl.zip | |
dprint-plugin-exec-riscv64gc-unknown-linux-gnu.zip | |
plugin.json | |
deployment/schema.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 exec`: | |
```jsonc | |
{ | |
// etc... | |
"plugins": [ | |
"https://plugins.dprint.dev/exec-${{ steps.get_tag_version.outputs.TAG_VERSION }}.json@${{ steps.get_plugin_file_checksum.outputs.CHECKSUM }}" | |
] | |
} | |
``` | |
2. Follow the configuration setup instructions found at https://github.com/dprint/dprint-plugin-exec#configuration | |
draft: false |