Skip to content

feat: add riscv64gc-unknown-linux-gnu build #145

feat: add riscv64gc-unknown-linux-gnu build

feat: add riscv64gc-unknown-linux-gnu build #145

Workflow file for this run

# 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
- os: macos-latest
run_tests: 'true'
target: aarch64-apple-darwin
- os: windows-latest
run_tests: 'true'
target: x86_64-pc-windows-msvc
- os: ubuntu-20.04
run_tests: 'true'
target: x86_64-unknown-linux-gnu
- os: ubuntu-20.04
run_tests: 'false'
target: x86_64-unknown-linux-musl
- os: ubuntu-20.04
run_tests: 'false'
target: aarch64-unknown-linux-gnu
- os: ubuntu-20.04
run_tests: 'false'
target: aarch64-unknown-linux-musl
- os: ubuntu-20.04
run_tests: 'false'
target: riscv64gc-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_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
- 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 (Linux riscv64gc)
if: matrix.config.target == 'riscv64gc-unknown-linux-gnu'
run: |-
sudo apt update
sudo apt-get install gcc-riscv64-linux-gnu g++-riscv64-linux-gnu libc6-dev-riscv64-cros
rustup target add riscv64gc-unknown-linux-gnu
- name: Build (Debug)
if: '!startsWith(github.ref, ''refs/tags/'')'
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER: riscv64-unknown-linux-gnu-gcc
run: 'cargo build --locked --all-targets --target ${{matrix.config.target}}'
- name: Build release
if: 'startsWith(github.ref, ''refs/tags/'')'
env:
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER: riscv64-unknown-linux-gnu-gcc
run: 'cargo build --locked --all-targets --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