Skip to content

ENhance Windows inventory #41

ENhance Windows inventory

ENhance Windows inventory #41

Workflow file for this run

name: Test & build
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
test_FreeBSD:
runs-on: ubuntu-latest
name: Test - FreeBSD
steps:
- uses: actions/checkout@v4
- name: Run tests under FreeBSD
uses: vmactions/freebsd-vm@v1
with:
usesh: true
prepare: |
pkg install -y rust
run: |
cargo test
test_others:
name: Test - ${{ matrix.platform.release_for }}
strategy:
matrix:
platform:
- release_for: Windows-x86_64
os: windows-latest
target: x86_64-pc-windows-msvc
bin: fusioninventory-agent.exe
name: fusioninventory-agent-Windows-x86_64.zip
command: test
# - release_for: macOS-x86_64
# os: macOS-latest
# target: x86_64-apple-darwin
# bin: fusioninventory-agent
# name: fusioninventory-agent-Darwin-x86_64.tar.gz
# command: both
- release_for: Linux-x86_64
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
bin: fusioninventory-agent
name: fusioninventory-agent-Linux-x86_64.tar.gz
command: test
# For rapsberry pi
# armv7-unknown-linux-gnueabihf
runs-on: ${{ matrix.platform.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Build binary
uses: houseabsolute/actions-rust-cross@v0
with:
command: ${{ matrix.platform.command }}
target: ${{ matrix.platform.target }}
args: "--locked --release"
cross-version: "19be83481fd3e50ea103d800d72e0f8eddb1c90c"
strip: true
build_FreeBSD_14_x:
runs-on: ubuntu-latest
name: Build - FreeBSD 14.x
steps:
- uses: actions/checkout@v4
- name: Run tests under FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: "14.1"
usesh: true
sync: rsync
copyback: true
prepare: |
pkg install -y rust
run: |
cargo build --locked --release
- name: Create zip file
run: |
cp target/release/fusioninventory-agent fusioninventory-agent
cp -fr src/static static
zip -r "fusioninventory-agent_freebsd_14.x.zip" fusioninventory-agent agent.cfg static
- name: Deploy with rsync
uses: "Pendect/[email protected]"
env:
DEPLOY_KEY: ${{ secrets.SSH_DOCUMENTATION_KEY }}
with:
flags: '-avzr'
options: ''
ssh_options: ''
src: 'fusioninventory-agent_freebsd_14.x.zip'
dest: '${{ secrets.SSH_DOCUMENTATION_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEV_PATH }}'
build_FreeBSD_13_x:
runs-on: ubuntu-latest
name: Build - FreeBSD 13.x
steps:
- uses: actions/checkout@v4
- name: Run tests under FreeBSD
uses: vmactions/freebsd-vm@v1
with:
release: "13.3"
usesh: true
sync: rsync
copyback: true
prepare: |
pkg install -y rust
run: |
cargo build --locked --release
- name: Create zip file
run: |
cp target/release/fusioninventory-agent fusioninventory-agent
cp -fr src/static static
zip -r "fusioninventory-agent_freebsd_13.x.zip" fusioninventory-agent agent.cfg static
- name: Deploy with rsync
uses: "Pendect/[email protected]"
env:
DEPLOY_KEY: ${{ secrets.SSH_DOCUMENTATION_KEY }}
with:
flags: '-avzr'
options: ''
ssh_options: ''
src: 'fusioninventory-agent_freebsd_13.x.zip'
dest: '${{ secrets.SSH_DOCUMENTATION_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEV_PATH }}'
build_others:
name: Build - ${{ matrix.platform.release_for }}
strategy:
matrix:
platform:
- release_for: Windows-x86_64
os: windows-latest
target: x86_64-pc-windows-msvc
bin: fusioninventory-agent.exe
name: fusioninventory-agent-Windows-x86_64.zip
command: build
# - release_for: Windows-i686
# os: windows-latest
# target: i686-pc-windows-msvc
# bin: fusioninventory-agent.exe
# name: fusioninventory-agent-Windows-i686.zip
# command: build
# - release_for: macOS-x86_64
# os: macOS-latest
# target: x86_64-apple-darwin
# bin: fusioninventory-agent
# name: fusioninventory-agent-Darwin-x86_64.tar.gz
# command: both
- release_for: Linux-x86_64
os: ubuntu-latest
target: x86_64-unknown-linux-gnu
bin: fusioninventory-agent
name: fusioninventory-agent-Linux-x86_64.tar.gz
command: build
# For rapsberry pi
# armv7-unknown-linux-gnueabihf
runs-on: ${{ matrix.platform.os }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Rust cache
uses: Swatinem/rust-cache@v2
- name: Build binary
uses: houseabsolute/actions-rust-cross@v0
with:
command: ${{ matrix.platform.command }}
target: ${{ matrix.platform.target }}
args: "--locked --release"
cross-version: "19be83481fd3e50ea103d800d72e0f8eddb1c90c"
strip: true
- name: Create zip file
uses: vimtor/[email protected]
with:
files: target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} agent.cfg static
dest: fusioninventory-agent_${{ matrix.platform.target }}.zip
# - name: Deploy with rsync
# uses: "Pendect/[email protected]"
# env:
# DEPLOY_KEY: ${{ secrets.SSH_DOCUMENTATION_KEY }}
# with:
# flags: '-avzr'
# options: ''
# ssh_options: ''
# src: 'fusioninventory-agent_${{ matrix.platform.target }}.zip'
# dest: '${{ secrets.SSH_DOCUMENTATION_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEV_PATH }}'
- uses: GuillaumeFalourd/[email protected]
id: rsync
with:
ssh_key: ${{ secrets.SSH_DOCUMENTATION_KEY }}
- if: runner.os == 'Windows'
run: |
choco install --no-progress openssh
New-Variable -Name Key -Value "D:\a\_temp\sshkey"
Icacls $Key
Icacls $Key /c /t /Inheritance:d
Icacls $Key /c /t /grant ${env:UserName}:F
TakeOwn /F $Key
Icacls $Key /c /t /grant:r ${env:UserName}:F
Icacls $Key /c /t /remove:g Administrator "Authenticated Users" BUILTIN\Administrators BUILTIN Everyone System Users BUILTIN\Users
Icacls $Key /c /t /remove:g BUILTIN\Users
Icacls $Key
Remove-Variable -Name Key
# TODO for windows get dmidecode.exe to put in zip file
# - name: rsync deployments
# run: |
# rsync -avz -e "ssh -o StrictHostKeyChecking=no -i ${{ steps.rsync.outputs.ssh_key_path }}" 'fusioninventory-agent_${{ matrix.platform.target }}.zip' '${{ secrets.SSH_DOCUMENTATION_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEV_PATH }}/'
- name: scp deployments
run: |
scp -o StrictHostKeyChecking=no -i "${{ steps.rsync.outputs.ssh_key_path }}" 'fusioninventory-agent_${{ matrix.platform.target }}.zip' '${{ secrets.SSH_DOCUMENTATION_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEV_PATH }}/'