Skip to content

v0.3.5.1

v0.3.5.1 #35

Workflow file for this run

name: Deployment
on:
release:
types:
- created
env:
CARGO_TERM_COLOR: always
jobs:
build:
permissions: write-all
strategy:
matrix:
include:
- os: ubuntu-20.04
target: x86_64-unknown-linux-gnu
- os: ubuntu-20.04
target: aarch64-unknown-linux-gnu
- os: macos-13
target: x86_64-apple-darwin
- os: macos-14
target: aarch64-apple-darwin
- os: windows-2019
target: x86_64-pc-windows-msvc
- os: windows-2019
target: aarch64-pc-windows-msvc
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- name: Install Dependencies (Linux)
if: contains(matrix.os, 'ubuntu')
run: sudo apt-get update && sudo apt-get install -y libclang-dev libgtk-3-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev libssl-dev libudev-dev && cargo install cargo-bundle
- name: Install Dependencies (macOS)
if: contains(matrix.os, 'macos')
run: cargo install cargo-bundle
- name: Install Dependencies (Windows)
if: contains(matrix.os, 'windows')
run: cargo install --force cargo-wix
- name: Set CARGO_FEATURES environment variable (Windows)
if: contains(matrix.os, 'windows')
run: |
echo "CARGO_FEATURES=self_update" >> $env:GITHUB_ENV
- name: Build
run: cargo build --features self_update --release
- name: Build .deb Package (Linux)
if: contains(matrix.os, 'ubuntu')
run: cargo bundle --features self_update --release
- name: Build .app Package (macOS)
if: contains(matrix.os, 'macos')
run: cargo bundle --features self_update --release
- name: Build .msi Package (Windows)
if: contains(matrix.os, 'windows')
run: cargo wix
# Compress for Linux Binary
- name: Compress Output (Linux Binary)
if: contains(matrix.os, 'ubuntu')
run: |
cd target/release
zip -r serial-monitor-${{ matrix.target }}.zip serial-monitor-rust
mv serial-monitor-${{ matrix.target }}.zip $GITHUB_WORKSPACE/
# Compress for Linux .deb Package
- name: Compress Output (Linux .deb)
if: contains(matrix.os, 'ubuntu')
run: |
cd target/release/bundle/deb
zip serial-monitor-${{ matrix.target }}.deb.zip *.deb
mv serial-monitor-${{ matrix.target }}.deb.zip $GITHUB_WORKSPACE/
# Compress for macOS (.app Bundle)
- name: Compress Output (macOS)
if: contains(matrix.os, 'macos')
run: |
cd target/release/bundle/osx
zip -r serial-monitor-${{ matrix.target }}.app.zip Serial\ Monitor.app
mv serial-monitor-${{ matrix.target }}.app.zip $GITHUB_WORKSPACE/
# Compress for Windows (.exe)
- name: Compress Output (Windows .exe)
if: contains(matrix.os, 'windows')
run: |
Compress-Archive -Path target/release/serial-monitor-rust.exe -DestinationPath serial-monitor-${{ matrix.target }}.exe.zip
Move-Item -Path serial-monitor-${{ matrix.target }}.exe.zip -Destination $env:GITHUB_WORKSPACE
# Compress for Windows (.msi)
- name: Compress Output (Windows .msi)
if: contains(matrix.os, 'windows')
run: |
cd target/wix
Compress-Archive -Path *.msi -DestinationPath serial-monitor-${{ matrix.target }}.msi.zip
Move-Item -Path serial-monitor-${{ matrix.target }}.msi.zip -Destination $env:GITHUB_WORKSPACE
- name: Upload .deb and executable for Linux (Ubuntu)
if: contains(matrix.os, 'ubuntu')
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: serial-monitor-${{ matrix.target }}.deb.zip
asset_name: serial-monitor-${{ matrix.target }}.deb.zip
asset_content_type: application/zip
- name: Upload .zip for Linux (Ubuntu executable)
if: contains(matrix.os, 'ubuntu')
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: serial-monitor-${{ matrix.target }}.zip
asset_name: serial-monitor-${{ matrix.target }}.zip
asset_content_type: application/zip
- name: Upload .exe for Windows
if: contains(matrix.os, 'windows')
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: serial-monitor-${{ matrix.target }}.exe.zip
asset_name: serial-monitor-${{ matrix.target }}.exe.zip
asset_content_type: application/zip
- name: Upload .msi for Windows
if: contains(matrix.os, 'windows')
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: serial-monitor-${{ matrix.target }}.msi.zip
asset_name: serial-monitor-${{ matrix.target }}.msi.zip
asset_content_type: application/zip
- name: Upload .zip for macOS
if: contains(matrix.os, 'macos')
uses: actions/upload-release-asset@v1.0.1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: serial-monitor-${{ matrix.target }}.app.zip
asset_name: serial-monitor-${{ matrix.target }}.app.zip
asset_content_type: application/zip