Skip to content

feat: Bump version to 0.1.93 and update binaries #91

feat: Bump version to 0.1.93 and update binaries

feat: Bump version to 0.1.93 and update binaries #91

Workflow file for this run

name: Release
on:
push:
tags:
- "v*"
permissions:
contents: write
packages: write
jobs:
build-and-release:
runs-on: ubuntu-latest
outputs:
upload_url: ${{ steps.create_release.outputs.upload_url }}
steps:
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ github.ref }}
draft: false
prerelease: false
build-linux-x86:
needs: build-and-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: x86_64-unknown-linux-gnu
override: true
- name: Cache dependencies
uses: actions/cache@v3
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: linux-x86_64-cargo-${{ hashFiles('**/Cargo.lock') }}
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target x86_64-unknown-linux-gnu
- name: Prepare binary
run: |
mkdir -p dist
cp ./target/x86_64-unknown-linux-gnu/release/aicommit ./dist/aicommit-linux-x86_64
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binaries
path: ./dist/aicommit-linux-x86_64
if-no-files-found: error
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.build-and-release.outputs.upload_url }}
asset_path: ./dist/aicommit-linux-x86_64
asset_name: aicommit-linux-x86_64
asset_content_type: application/octet-stream
build-macos-x86:
needs: build-and-release
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: x86_64-apple-darwin
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target x86_64-apple-darwin
- name: Prepare binary
run: |
mkdir -p dist
cp ./target/x86_64-apple-darwin/release/aicommit ./dist/aicommit-macos-x86_64
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binaries
path: ./dist/aicommit-macos-x86_64
if-no-files-found: error
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.build-and-release.outputs.upload_url }}
asset_path: ./dist/aicommit-macos-x86_64
asset_name: aicommit-macos-x86_64
asset_content_type: application/octet-stream
build-macos-arm:
needs: build-and-release
runs-on: macos-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-apple-darwin
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target aarch64-apple-darwin
- name: Prepare binary
run: |
mkdir -p dist
cp ./target/aarch64-apple-darwin/release/aicommit ./dist/aicommit-macos-aarch64
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binaries
path: ./dist/aicommit-macos-aarch64
if-no-files-found: error
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.build-and-release.outputs.upload_url }}
asset_path: ./dist/aicommit-macos-aarch64
asset_name: aicommit-macos-aarch64
asset_content_type: application/octet-stream
build-windows-x86:
needs: build-and-release
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: x86_64-pc-windows-msvc
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target x86_64-pc-windows-msvc
- name: Prepare binary
run: |
mkdir -p dist
cp ./target/x86_64-pc-windows-msvc/release/aicommit.exe ./dist/aicommit-windows-x86_64.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binaries
path: ./dist/aicommit-windows-x86_64.exe
if-no-files-found: error
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.build-and-release.outputs.upload_url }}
asset_path: ./dist/aicommit-windows-x86_64.exe
asset_name: aicommit-windows-x86_64.exe
asset_content_type: application/octet-stream
build-windows-arm:
needs: build-and-release
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: aarch64-pc-windows-msvc
override: true
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
args: --release --target aarch64-pc-windows-msvc
- name: Prepare binary
run: |
mkdir -p dist
cp ./target/aarch64-pc-windows-msvc/release/aicommit.exe ./dist/aicommit-windows-aarch64.exe
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: binaries
path: ./dist/aicommit-windows-aarch64.exe
if-no-files-found: error
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ needs.build-and-release.outputs.upload_url }}
asset_path: ./dist/aicommit-windows-aarch64.exe
asset_name: aicommit-windows-aarch64.exe
asset_content_type: application/octet-stream
publish-crates:
needs: build-and-release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Publish to crates.io
uses: actions-rs/cargo@v1
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}
with:
command: publish
args: --allow-dirty
publish-npm:
needs: [build-linux-x86, build-macos-x86, build-macos-arm, build-windows-x86, build-windows-arm]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
name: binaries
path: bin
- name: Show binary files
run: |
echo "Binary files in bin/:"
ls -la bin/
file bin/* || true
chmod +x bin/aicommit-*
- name: Rename binaries for npm
run: |
mkdir -p bin/linux-x64
mkdir -p bin/linux-arm64
mkdir -p bin/darwin-x64
mkdir -p bin/darwin-arm64
mkdir -p bin/win32-x64
mkdir -p bin/win32-arm64
mv bin/aicommit-linux-x86_64 bin/linux-x64/aicommit
mv bin/aicommit-linux-aarch64 bin/linux-arm64/aicommit
mv bin/aicommit-macos-x86_64 bin/darwin-x64/aicommit
mv bin/aicommit-macos-aarch64 bin/darwin-arm64/aicommit
mv bin/aicommit-windows-x86_64.exe bin/win32-x64/aicommit.exe
mv bin/aicommit-windows-aarch64.exe bin/win32-arm64/aicommit.exe
chmod +x bin/**/aicommit*
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20.x'
registry-url: 'https://registry.npmjs.org'
- name: Publish to npm
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}