ENhance Windows inventory #40
Workflow file for this run
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: 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 }}/' |