name: Build Rust Pre
on:
workflow_dispatch:
inputs:
version: description: "Version to deploy"
required: true
push:
tags:
- "p[0-9]+.*"
release:
types: [created]
jobs:
create_release:
name: Create release
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Set variables
id: vars
run: echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
- name: Create release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
name: Cross Release ${{ steps.vars.outputs.tag }}
draft: false
prerelease: true
body: |
This is a new release of lumesh. [Read the changelog here](https://codeberg.com/santo/lumesh/blob/${{ steps.vars.outputs.tag }}/CHANGELOG.md).
- lume: an edition contains interactive repl and script parser.
- lume-se: an swift edition only contains script parser. used to run script swiftly.
- doc: help docs.
If you're running on Linux, macOS or Windows, you can probably use one of the binaries below.
build_docs:
name: Build documentation
needs: create_release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Generate docs
run: |
mkdir -p tmp/doc
cp CHANGELOG.md tmp/doc/
cp README.md tmp/doc/
cp LICENSE tmp/doc/
cp docs/INS_README.md tmp/doc/
cp docs/RULE.md tmp/doc/
cp docs/install.sh tmp/install.sh
- name: Create compressed files
run: |
tar -czf data.tgz -C docs/data lumesh
tar -czvf doc.tgz -C tmp doc
- name: Upload docs and install scripts
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
data.tgz
doc.tgz
tmp/install.sh
build:
needs: [create_release]
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Build Release
uses: zijiren233/cargo-cross@v1
with:
command: build
targets: |
x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl
x86_64-apple-darwin
x86_64-pc-windows-gnu
aarch64-unknown-linux-gnu
aarch64-unknown-linux-musl
profile:
release
- name: print dir
run: |
ls target/**
ls target/x86_64-pc-windows-gnu
- name: Upload x86_64-unknown-linux-gnu
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: lume-x86_64-linux-gnu
asset_path: target/x86_64-unknown-linux-gnu/release/lume
asset_content_type: application/octet-stream
- name: Upload x86_64-unknown-linux-musl
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: lume-x86_64-linux-musl
asset_path: target/x86_64-unknown-linux-musl/release/lume
asset_content_type: application/octet-stream
- name: Upload x86_64-apple-darwin
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: lume-x86_64-apple-darwin
asset_path: target/x86_64-apple-darwin/release/lume
asset_content_type: application/octet-stream
- name: Upload x86_64-pc-windows-gnu
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: lume-x86_64-pc-windows-gnu
asset_path: target/x86_64-pc-windows-gnu/release/lume.exe
asset_content_type: application/octet-stream
- name: Upload aarch64-unknown-linux-gnu
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: lume-aarch64-linux-gnu
asset_path: target/aarch64-unknown-linux-gnu/release/lume
asset_content_type: application/octet-stream
- name: Upload aarch64-unknown-linux-musl
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.create_release.outputs.upload_url }}
asset_name: lume-aarch64-linux-musl
asset_path: target/aarch64-unknown-linux-musl/release/lume
asset_content_type: application/octet-stream