Skip to content
This repository was archived by the owner on Aug 18, 2025. It is now read-only.

v0.6.10

v0.6.10 #120

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