This repository was archived by the owner on Aug 18, 2025. It is now read-only.
v.0.1.1 #12
Workflow file for this run
This file contains hidden or 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
| name: 构建CodeNothing解释器 | |
| on: | |
| push: | |
| branches: [ main ] | |
| paths-ignore: | |
| - 'library_*/**' | |
| - '**.md' | |
| tags: | |
| - 'v*' # 添加标签触发 | |
| pull_request: | |
| branches: [ main ] | |
| paths-ignore: | |
| - 'library_*/**' | |
| - '**.md' | |
| release: | |
| types: [created] # 发布版本时触发 | |
| workflow_dispatch: # 允许手动触发 | |
| # 添加权限设置 | |
| permissions: | |
| contents: write | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| build: | |
| name: 构建解释器 | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [windows-latest, ubuntu-latest, macos-latest] | |
| include: | |
| - os: windows-latest | |
| artifact_name: codenothing-windows | |
| asset_name: codenothing-windows.zip | |
| release_name: Windows | |
| - os: ubuntu-latest | |
| artifact_name: codenothing-linux | |
| asset_name: codenothing-linux.tar.gz | |
| release_name: Linux | |
| - os: macos-latest | |
| artifact_name: codenothing-macos | |
| asset_name: codenothing-macos.tar.gz | |
| release_name: macOS | |
| steps: | |
| - uses: actions/checkout@v3 | |
| - name: 设置Rust工具链 | |
| uses: actions-rs/toolchain@v1 | |
| with: | |
| toolchain: stable | |
| override: true | |
| - name: 构建 | |
| uses: actions-rs/cargo@v1 | |
| with: | |
| command: build | |
| args: --release | |
| - name: 创建输出目录 | |
| run: mkdir -p release-package | |
| shell: bash | |
| - name: 打包Windows | |
| if: matrix.os == 'windows-latest' | |
| run: | | |
| cp target/release/codenothing.exe release-package/ | |
| # 如果examples目录存在,则复制 | |
| if [ -d "examples" ]; then | |
| cp -r examples release-package/ | |
| else | |
| echo "警告:examples目录不存在,跳过复制" | |
| # 创建一个空的examples目录,确保有内容 | |
| mkdir -p release-package/examples | |
| echo "# CodeNothing 示例" > release-package/examples/README.md | |
| fi | |
| 7z a ${{ matrix.asset_name }} ./release-package/* | |
| shell: bash | |
| - name: 打包Linux/macOS | |
| if: matrix.os != 'windows-latest' | |
| run: | | |
| cp target/release/CodeNothing release-package/ | |
| # 如果examples目录存在,则复制 | |
| if [ -d "examples" ]; then | |
| cp -r examples release-package/ | |
| else | |
| echo "警告:examples目录不存在,跳过复制" | |
| # 创建一个空的examples目录,确保有内容 | |
| mkdir -p release-package/examples | |
| echo "# CodeNothing 示例" > release-package/examples/README.md | |
| fi | |
| tar -czvf ${{ matrix.asset_name }} -C release-package . | |
| shell: bash | |
| - name: 上传构建产物 | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.artifact_name }} | |
| path: ${{ matrix.asset_name }} | |
| - name: 创建发布 | |
| uses: softprops/action-gh-release@v1 | |
| if: startsWith(github.ref, 'refs/tags/') || github.event_name == 'release' | |
| with: | |
| files: ${{ matrix.asset_name }} | |
| tag_name: ${{ github.ref_name }} | |
| draft: false | |
| generate_release_notes: true |