Skip to content

feat: add User-Agent header to all server requests, bump v0.2.2 #17

feat: add User-Agent header to all server requests, bump v0.2.2

feat: add User-Agent header to all server requests, bump v0.2.2 #17

Workflow file for this run

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
env:
CARGO_TERM_COLOR: always
jobs:
build:
name: Build ${{ matrix.target }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-apple-darwin
os: macos-latest
archive: tar.gz
- target: x86_64-apple-darwin
os: macos-latest
archive: tar.gz
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
archive: tar.gz
- target: aarch64-unknown-linux-musl
os: ubuntu-latest
archive: tar.gz
cross: true
- target: x86_64-pc-windows-msvc
os: windows-latest
archive: zip
steps:
- uses: actions/checkout@v4
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Install musl tools (Linux)
if: contains(matrix.target, 'linux-musl') && !matrix.cross
run: sudo apt-get update && sudo apt-get install -y musl-tools
- name: Install cross (ARM Linux)
if: matrix.cross
run: cargo install cross --git https://github.com/cross-rs/cross
- name: Build (native)
if: "!matrix.cross"
run: cargo build --release --target ${{ matrix.target }}
- name: Build (cross)
if: matrix.cross
run: cross build --release --target ${{ matrix.target }}
- name: Package (Unix)
if: matrix.archive == 'tar.gz'
run: |
cd target/${{ matrix.target }}/release
tar czf ../../../opencli-rs-${{ matrix.target }}.tar.gz opencli-rs
cd ../../..
- name: Package (Windows)
if: matrix.archive == 'zip'
shell: pwsh
run: |
Compress-Archive -Path target/${{ matrix.target }}/release/opencli-rs.exe -DestinationPath opencli-rs-${{ matrix.target }}.zip
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: opencli-rs-${{ matrix.target }}
path: opencli-rs-${{ matrix.target }}.${{ matrix.archive }}
extension:
name: Build Chrome Extension
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
working-directory: extension
run: npm ci
- name: Build extension
working-directory: extension
run: npm run build
- name: Package extension
run: |
cd extension
zip -r ../opencli-rs-chrome-extension.zip dist/ icons/ manifest.json
- name: Upload artifact
uses: actions/upload-artifact@v4
with:
name: opencli-rs-chrome-extension
path: opencli-rs-chrome-extension.zip
release:
name: Create Release
needs: [build, extension]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: artifacts
- name: List artifacts
run: find artifacts -type f
- name: Generate checksums
run: |
cd artifacts
find . -type f \( -name "*.tar.gz" -o -name "*.zip" \) -exec mv {} . \;
sha256sum *.tar.gz *.zip > SHA256SUMS.txt 2>/dev/null || true
cat SHA256SUMS.txt
- name: Create GitHub Release
uses: softprops/action-gh-release@v2
with:
generate_release_notes: true
files: |
artifacts/opencli-rs-*.tar.gz
artifacts/opencli-rs-*.zip
artifacts/opencli-rs-chrome-extension.zip
artifacts/SHA256SUMS.txt