name: Release on: push: paths: project.toml branches: - main permissions: contents: write jobs: build: name: ${{ matrix.platform.os_name }} with rust ${{ matrix.toolchain }} runs-on: ${{ matrix.platform.os }} strategy: fail-fast: false matrix: platform: - os_name: linux-x86_64 os: ubuntu-20.04 target: x86_64-unknown-linux-gnu origin_dylib_suffix: so dest_dylib_suffix: so - os_name: mac-x86_64 os: macOS-latest target: x86_64-apple-darwin origin_dylib_suffix: dylib dest_dylib_suffix: so - os_name: mac-aarch64 os: macOS-latest target: aarch64-apple-darwin origin_dylib_suffix: dylib dest_dylib_suffix: so toolchain: - stable steps: - uses: actions/checkout@v3 - name: Build link lib uses: houseabsolute/actions-rust-cross@v0 with: command: "build" working-directory: ./generator target: ${{ matrix.platform.target }} toolchain: ${{ matrix.toolchain }} args: "--release" - name: Rename dynamic lib run: cp -rf generator/target/${{ matrix.platform.target }}/release/libgenerator.${{ matrix.platform.origin_dylib_suffix }} lua/${{ matrix.platform.os_name }}generator.${{ matrix.platform.dest_dylib_suffix }} - name: Commit changes uses: EndBug/add-and-commit@v7 with: message: '[Update] generator link library on ${{ matrix.platform.os_name }}' pull_strategy: 'NO-PULL' push: false - name: Push changes run: | git pull --rebase git push release: runs-on: ubuntu-latest needs: build steps: - name: Checkout uses: actions/checkout@v4 with: ref: ${{ github.ref }} - name: Setup python uses: actions/setup-python@v5 with: python-version: "3.11" - name: Read version from project config id: read_toml uses: SebRollen/toml-action@v1.0.2 with: file: project.toml field: project.version - name: Replace template run: python3 scripts/replace-template.py - name: Commit changes uses: EndBug/add-and-commit@v7 with: message: '[Release] ${{ steps.read_toml.outputs.value }}' pull_strategy: 'NO-PULL' push: false - name: Push changes run: | git pull --rebase git push - name: Bump version and push tag id: tag_version uses: mathieudutour/github-tag-action@v6.1 with: github_token: ${{ secrets.GITHUB_TOKEN }} custom_tag: ${{ steps.read_toml.outputs.value }} - name: Create a GitHub release uses: ncipollo/release-action@v1 with: tag: ${{ steps.tag_version.outputs.new_tag }} name: Release ${{ steps.tag_version.outputs.new_tag }} generateReleaseNotes: true