v0.7.0 #135
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI/CD | |
on: [ push, pull_request ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Cargo Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-build-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-cargo- | |
- name: Build project | |
run: cargo build --workspace --release | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
run: rustup component add rustfmt clippy | |
- name: Cargo Cache | |
uses: actions/cache@v3 | |
with: | |
path: | | |
~/.cargo/bin/ | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }} | |
restore-keys: ${{ runner.os }}-cargo- | |
- name: Run tests | |
run: cargo test --workspace | |
deploy_release: | |
needs: [ build, test ] | |
runs-on: ubuntu-latest | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Publish release | |
run: | | |
cargo publish --package clipboard-history-core | |
cargo publish --package clipboard-history-client-sdk | |
cargo publish --package clipboard-history-server | |
cargo publish --package clipboard-history | |
cargo publish --package clipboard-history-x11 | |
cargo publish --package clipboard-history-egui | |
cargo publish --package clipboard-history-tui | |
sed -i 's/name = "clipboard-history-server"/name = "ringboard-server"/' server/Cargo.toml | |
cargo publish --package ringboard-server --allow-dirty | |
sed -i 's/name = "clipboard-history"/name = "ringboard"/' cli/Cargo.toml | |
cargo publish --package ringboard --allow-dirty | |
sed -i 's/name = "clipboard-history-x11"/name = "ringboard-x11"/' x11/Cargo.toml | |
cargo publish --package ringboard-x11 --allow-dirty | |
sed -i 's/name = "clipboard-history-egui"/name = "ringboard-egui"/' egui/Cargo.toml | |
cargo publish --package ringboard-egui --allow-dirty | |
sed -i 's/name = "clipboard-history-tui"/name = "ringboard-tui"/' tui/Cargo.toml | |
cargo publish --package ringboard-tui --allow-dirty | |
env: | |
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} | |
attach_binaries: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- target: x86_64-unknown-linux-gnu | |
os: ubuntu-latest | |
tool: cargo | |
- target: x86_64-unknown-linux-musl | |
os: ubuntu-latest | |
tool: cargo | |
- target: aarch64-unknown-linux-gnu | |
os: ubuntu-latest | |
tool: RUSTFLAGS="-Ctarget-feature=-outline-atomics" cross | |
- target: riscv64gc-unknown-linux-gnu | |
os: ubuntu-latest | |
tool: cross | |
needs: [ build, test ] | |
runs-on: ${{ matrix.os }} | |
if: startsWith(github.ref, 'refs/tags/') | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
- name: Install Rust | |
run: | | |
rustup target add ${{ matrix.target }} | |
rustup component add rust-src | |
- name: Install cross | |
if: contains(matrix.tool, 'cross') | |
run: cargo install cross | |
- name: Build binary | |
run: ${{ matrix.tool }} build --workspace --release --locked --target=${{ matrix.target }} -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort | |
- name: Upload binary | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: target/${{ matrix.target }}/release/ringboard-server | |
asset_name: ${{ matrix.target }}-ringboard-server | |
tag: ${{ github.ref }} | |
- name: Upload binary | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: target/${{ matrix.target }}/release/ringboard | |
asset_name: ${{ matrix.target }}-ringboard | |
tag: ${{ github.ref }} | |
- name: Upload binary | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: target/${{ matrix.target }}/release/ringboard-x11 | |
asset_name: ${{ matrix.target }}-ringboard-x11 | |
tag: ${{ github.ref }} | |
- name: Upload binary | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: target/${{ matrix.target }}/release/ringboard-egui | |
asset_name: ${{ matrix.target }}-ringboard-egui | |
tag: ${{ github.ref }} | |
- name: Upload binary | |
uses: svenstaro/upload-release-action@v2 | |
with: | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
file: target/${{ matrix.target }}/release/ringboard-tui | |
asset_name: ${{ matrix.target }}-ringboard-tui | |
tag: ${{ github.ref }} |