eraden
7616ddd8fc
GUI in iced Basic plot manipulation Working solution Fix documentation Fix build scripts Slice application Change views Very basic GUI Reload config GUI Helper for root tasks - maybe sock files for all services will be better Add save button Xorg gui and save config to target file Documentation and clippy fixes Avoid compiling gui on CI Readme files Add missing dependencies Add missing pgp key Refactor workflow Refactor workflow Add drag and drop
101 lines
4.0 KiB
YAML
101 lines
4.0 KiB
YAML
name: Rust
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
|
|
env:
|
|
CARGO_TERM_COLOR: always
|
|
|
|
jobs:
|
|
tests:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-18.04, ubuntu-20.04 ]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Add key
|
|
run: wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
|
|
- name: Add repo
|
|
env:
|
|
UBUNTU: ${{ matrix.os }}
|
|
run: echo $UBUNTU &&\
|
|
[[ "${UBUNTU}" == "ubuntu-18.04" ]]&&\
|
|
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null || echo 1;
|
|
- name: Install binary compressor
|
|
run: sudo apt-get update && sudo apt-get install upx-ucl xcb libxcb-shape0 libxcb-xfixes0 libxcb-record0 libxcb-shape0-dev libxcb-xfixes0-dev libxcb-record0-dev cmake
|
|
- name: Add target
|
|
run: rustup target install x86_64-unknown-linux-musl
|
|
- name: Run fmt check
|
|
run: cargo fmt -- --check
|
|
- name: Run tests
|
|
run: cargo test --verbose
|
|
clippy:
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-18.04, ubuntu-20.04 ]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Add key
|
|
run: wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
|
|
- name: Add repo
|
|
env:
|
|
UBUNTU: ${{ matrix.os }}
|
|
run: echo $UBUNTU &&\
|
|
[[ "${UBUNTU}" == "ubuntu-18.04" ]]&&\
|
|
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null || echo 1;
|
|
- name: Install binary compressor
|
|
run: sudo apt-get update && sudo apt-get install upx-ucl xcb libxcb-shape0 libxcb-xfixes0 libxcb-record0 libxcb-shape0-dev libxcb-xfixes0-dev libxcb-record0-dev cmake
|
|
- name: Add target
|
|
run: rustup target install x86_64-unknown-linux-musl
|
|
- name: Run clippy
|
|
run: cargo clippy -- -D warnings
|
|
|
|
build:
|
|
needs: [clippy, tests]
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
os: [ ubuntu-18.04, ubuntu-20.04 ]
|
|
runs-on: ${{ matrix.os }}
|
|
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
- name: Add key
|
|
run: wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | sudo tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
|
|
- name: Add repo
|
|
env:
|
|
UBUNTU: ${{ matrix.os }}
|
|
run: echo $UBUNTU &&\
|
|
[[ "${UBUNTU}" == "ubuntu-18.04" ]]&&\
|
|
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | sudo tee /etc/apt/sources.list.d/kitware.list >/dev/null || echo 1;
|
|
- name: Install binary compressor
|
|
run: sudo apt-get update && sudo apt-get install upx-ucl xcb libxcb-shape0 libxcb-xfixes0 libxcb-record0 libxcb-shape0-dev libxcb-xfixes0-dev libxcb-record0-dev cmake zip
|
|
- name: Add target
|
|
run: rustup target install x86_64-unknown-linux-musl
|
|
- name: Compile
|
|
run: bash ./scripts/compile.sh
|
|
- name: Optimize
|
|
run: bash ./scripts/build.sh
|
|
- name: Collect artifacts
|
|
env:
|
|
OS: ${{ matrix.os }}
|
|
run: ./scripts/zip-ci.sh $OS
|
|
|
|
- name: Upload a Build Artifact
|
|
uses: actions/upload-artifact@v2.2.4
|
|
with:
|
|
# Artifact name
|
|
name: binaries-${{ matrix.os }}.zip
|
|
# A file, directory or wildcard pattern that describes what to upload
|
|
path: ./binaries-${{ matrix.os }}.zip
|
|
# The desired behavior if no files are found using the provided path.
|