mirror of
https://github.com/Myriad-Dreamin/tinymist.git
synced 2025-12-23 08:47:50 +00:00
feat: set up workflow from typst-preview
This commit is contained in:
parent
e6a1397c20
commit
d46a135882
2 changed files with 325 additions and 0 deletions
59
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
59
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior (Library test):
|
||||
1. Declare a rust test 'fn test_xxx() { ... }' or typescript test 'it_should(function () { ... })'
|
||||
2. Execute test function
|
||||
3. See error
|
||||
|
||||
Or (Shell code):
|
||||
|
||||
1. Attach necessary resources to execute shell code
|
||||
2. Put down some shell code 'cargo run --bin typst-ts-cli -- ...'
|
||||
3. Execute shell code
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Package/Software version:**
|
||||
|
||||
VSCode version(Help -> About):
|
||||
```plain
|
||||
Version: 1.81.1
|
||||
Commit: 6c3e3dba23e8fadc360aed75ce363ba185c49794
|
||||
Date: 2023-08-09T22:18:39.991Z
|
||||
Electron: 22.3.18
|
||||
ElectronBuildId: 22689846
|
||||
Chromium: 108.0.5359.215
|
||||
Node.js: 16.17.1
|
||||
V8: 10.8.168.25-electron.0
|
||||
OS: Linux x64 6.4.12-x64v4-xanmod1
|
||||
```
|
||||
|
||||
tinymist extension version: `v0.7.3`
|
||||
|
||||
**Logs:**
|
||||
|
||||
tinymist server log(Output Panel -> tinymist):
|
||||
```plain
|
||||
|
||||
```
|
||||
|
||||
tinymist client log(Help -> Toggle Developer Tools -> Console):
|
||||
```plain
|
||||
|
||||
```
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
266
.github/workflows/release.yml
vendored
Normal file
266
.github/workflows/release.yml
vendored
Normal file
|
|
@ -0,0 +1,266 @@
|
|||
# stolen from https://github.com/nvarner/tinymist/blob/master/.github/workflows/release.yml
|
||||
name: CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
tags:
|
||||
- "*"
|
||||
pull_request:
|
||||
types: [opened, synchronize]
|
||||
branches:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
env:
|
||||
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: aarch64-linux-gnu-gcc
|
||||
CARGO_TARGET_ARM_UNKNOWN_LINUX_GNUEABIHF_LINKER: arm-linux-gnueabihf-gcc
|
||||
SCCACHE_GHA_ENABLED: "true"
|
||||
RUSTC_WRAPPER: "sccache"
|
||||
|
||||
jobs:
|
||||
pre_build:
|
||||
permissions:
|
||||
actions: write
|
||||
contents: read
|
||||
name: Duplicate Actions Detection
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
should_skip: ${{ steps.skip_check.outputs.should_skip }}
|
||||
steps:
|
||||
- id: skip_check
|
||||
uses: fkirc/skip-duplicate-actions@v5
|
||||
with:
|
||||
cancel_others: "true"
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
include:
|
||||
- os: windows-latest
|
||||
rust-target: x86_64-pc-windows-msvc
|
||||
platform: win32
|
||||
arch: x64
|
||||
- os: windows-latest
|
||||
rust-target: i686-pc-windows-msvc
|
||||
platform: win32
|
||||
arch: ia32
|
||||
- os: windows-latest
|
||||
rust-target: aarch64-pc-windows-msvc
|
||||
platform: win32
|
||||
arch: arm64
|
||||
- os: ubuntu-20.04
|
||||
rust-target: x86_64-unknown-linux-gnu
|
||||
platform: linux
|
||||
arch: x64
|
||||
- os: ubuntu-20.04
|
||||
rust-target: aarch64-unknown-linux-gnu
|
||||
platform: linux
|
||||
arch: arm64
|
||||
- os: ubuntu-20.04
|
||||
rust-target: arm-unknown-linux-gnueabihf
|
||||
platform: linux
|
||||
arch: armhf
|
||||
- os: macos-11
|
||||
rust-target: x86_64-apple-darwin
|
||||
platform: darwin
|
||||
arch: x64
|
||||
- os: macos-11
|
||||
rust-target: aarch64-apple-darwin
|
||||
platform: darwin
|
||||
arch: arm64
|
||||
|
||||
name: build (${{ matrix.platform }}-${{ matrix.arch }})
|
||||
runs-on: ${{ matrix.os }}
|
||||
env:
|
||||
target: ${{ matrix.platform }}-${{ matrix.arch }}
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@v0.0.4
|
||||
- name: Install Node.js
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 16
|
||||
- name: Build vscode extension
|
||||
run: |
|
||||
yarn
|
||||
yarn run compile
|
||||
working-directory: ./editors/vscode
|
||||
- name: rust toolchain
|
||||
uses: dtolnay/rust-toolchain@stable
|
||||
with:
|
||||
targets: ${{ matrix.rust-target }}
|
||||
- name: Install llvm
|
||||
if: matrix.platform == 'linux'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install llvm
|
||||
- name: Install AArch64 target toolchain
|
||||
if: matrix.rust-target == 'aarch64-unknown-linux-gnu'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-aarch64-linux-gnu
|
||||
- name: Install ARM target toolchain
|
||||
if: matrix.rust-target == 'arm-unknown-linux-gnueabihf'
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install gcc-arm-linux-gnueabihf
|
||||
- name: Build tinymist binary
|
||||
shell: pwsh
|
||||
run: |
|
||||
cargo build --release -p tinymist --target ${{ matrix.rust-target }}
|
||||
- name: Rename debug symbols for windows
|
||||
if: matrix.platform == 'win32'
|
||||
run: |
|
||||
cd target/${{ matrix.rust-target }}/release
|
||||
cp tinymist.pdb tinymist-${{ env.target }}.pdb
|
||||
- name: Upload split debug symbols for windows
|
||||
if: matrix.platform == 'win32'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}.pdb
|
||||
path: target/${{ matrix.rust-target }}/release/tinymist-${{ env.target }}.pdb
|
||||
- name: Split debug symbols for linux
|
||||
if: matrix.platform == 'linux'
|
||||
run: |
|
||||
cd target/${{ matrix.rust-target }}/release
|
||||
llvm-objcopy --compress-debug-sections --only-keep-debug "tinymist" "tinymist-${{ env.target }}.debug"
|
||||
llvm-objcopy --strip-debug --add-gnu-debuglink="tinymist-${{ env.target }}.debug" "tinymist"
|
||||
- name: Upload split debug symbols for linux
|
||||
if: matrix.platform == 'linux'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}.debug
|
||||
path: target/${{ matrix.rust-target }}/release/tinymist-${{ env.target }}.debug
|
||||
compression-level: 0
|
||||
- name: Collect debug symbols for mac
|
||||
if: matrix.platform == 'darwin'
|
||||
run: |
|
||||
dsymutil -f "target/${{ matrix.rust-target }}/release/tinymist"
|
||||
mv "target/${{ matrix.rust-target }}/release/tinymist.dwarf" "target/${{ matrix.rust-target }}/release/tinymist-${{ env.target }}.dwarf"
|
||||
- name: Upload split debug symbols for mac
|
||||
if: matrix.platform == 'darwin'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}.dwarf
|
||||
path: target/${{ matrix.rust-target }}/release/tinymist-${{ env.target }}.dwarf
|
||||
- name: Copy binary to output directory
|
||||
shell: pwsh
|
||||
run: |
|
||||
cp "target/${{ matrix.rust-target }}/release/tinymist$(If ('${{ matrix.platform }}' -eq 'win32') { '.exe' } else { '' } )" "editors/vscode/out/"
|
||||
cp "target/${{ matrix.rust-target }}/release/tinymist$(If ('${{ matrix.platform }}' -eq 'win32') { '.exe' } else { '' } )" "tinymist-${{ env.target }}$(If ('${{ matrix.platform }}' -eq 'win32') { '.exe' } else { '' } )"
|
||||
- name: Upload binary artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}
|
||||
path: tinymist-${{ env.target }}${{ fromJSON('["", ".exe"]')[matrix.platform == 'win32'] }}
|
||||
- name: Package extension
|
||||
shell: pwsh
|
||||
run: yarn run package -- --target ${{ env.target }} -o tinymist-${{ env.target }}.vsix
|
||||
working-directory: ./editors/vscode
|
||||
- name: Upload VSIX artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}.vsix
|
||||
path: editors/vscode/tinymist-${{ env.target }}.vsix
|
||||
|
||||
build_alpine:
|
||||
name: build (x86_64-unknown-linux-musl)
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: rust:alpine
|
||||
volumes:
|
||||
- /usr/local/cargo/registry:/usr/local/cargo/registry
|
||||
env:
|
||||
target: alpine-x64
|
||||
RUST_TARGET: x86_64-unknown-linux-musl
|
||||
RUSTFLAGS: "-C link-arg=-fuse-ld=lld -C target-feature=-crt-static"
|
||||
steps:
|
||||
- name: Install dependencies
|
||||
run: apk add --no-cache git clang lld musl-dev nodejs npm yarn binutils
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- name: Run sccache-cache
|
||||
uses: mozilla-actions/sccache-action@v0.0.4
|
||||
- name: Build vscode extension
|
||||
run: |
|
||||
yarn
|
||||
yarn run compile
|
||||
working-directory: ./editors/vscode
|
||||
- name: Build tinymist binary
|
||||
run: |
|
||||
cargo build --release -p tinymist --target $RUST_TARGET
|
||||
mkdir -p editors/vscode/out
|
||||
- name: Split debug symbols
|
||||
run: |
|
||||
cd target/$RUST_TARGET/release
|
||||
objcopy --compress-debug-sections --only-keep-debug "tinymist" "tinymist-${{ env.target }}.debug"
|
||||
objcopy --strip-debug --add-gnu-debuglink="tinymist-${{ env.target }}.debug" "tinymist"
|
||||
- name: Upload split debug symbols
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}.debug
|
||||
path: target/${{ env.RUST_TARGET }}/release/tinymist-${{ env.target }}.debug
|
||||
- name: Copy binary to output directory
|
||||
run: |
|
||||
cp "target/${{ env.RUST_TARGET }}/release/tinymist" "editors/vscode/out/"
|
||||
cp "target/${{ env.RUST_TARGET }}/release/tinymist" "tinymist-${{ env.target }}"
|
||||
- name: Upload binary artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}
|
||||
path: tinymist-${{ env.target }}
|
||||
- name: Package extension
|
||||
run: yarn run package -- --target ${{ env.target }} -o tinymist-${{ env.target }}.vsix
|
||||
working-directory: ./editors/vscode
|
||||
- name: Upload VSIX artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: tinymist-${{ env.target }}.vsix
|
||||
path: editors/vscode/tinymist-${{ env.target }}.vsix
|
||||
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build, build_alpine]
|
||||
if: success() && startsWith(github.ref, 'refs/tags/')
|
||||
permissions:
|
||||
contents: write
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: recursive
|
||||
- uses: actions/download-artifact@v4
|
||||
with:
|
||||
path: artifacts
|
||||
- name: Display structure of downloaded files
|
||||
run: ls -R artifacts
|
||||
- uses: ncipollo/release-action@v1
|
||||
with:
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
artifacts: "artifacts/*/*"
|
||||
allowUpdates: true
|
||||
omitBodyDuringUpdate: true
|
||||
omitDraftDuringUpdate: true
|
||||
omitNameDuringUpdate: true
|
||||
omitPrereleaseDuringUpdate: true
|
||||
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
needs: [build]
|
||||
if: success() && startsWith(github.ref, 'refs/tags/')
|
||||
steps:
|
||||
- uses: actions/download-artifact@v4
|
||||
|
||||
- name: Deploy to VS Code Marketplace
|
||||
run: npx vsce publish --packagePath $(find . -type f -iname '*.vsix')
|
||||
env:
|
||||
VSCE_PAT: ${{ secrets.VSCODE_MARKETPLACE_TOKEN }}
|
||||
|
||||
- name: Deploy to OpenVSX
|
||||
run: npx ovsx publish --packagePath $(find . -type f -iname '*.vsix')
|
||||
env:
|
||||
OVSX_PAT: ${{ secrets.OPENVSX_ACCESS_TOKEN }}
|
||||
Loading…
Add table
Add a link
Reference in a new issue