-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add freebsd 13 and zip of windows and linux for build versions
- Loading branch information
Showing
19 changed files
with
534 additions
and
98 deletions.
There are no files selected for viewing
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,200 @@ | ||
name: Build && deploy | ||
|
||
on: | ||
push: | ||
branches: [ main ] | ||
pull_request: | ||
branches: [ main ] | ||
|
||
jobs: | ||
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: Get package info | ||
id: info | ||
uses: rabbitson87/get-cargo-package-info@v1 | ||
with: | ||
package: | | ||
version | ||
- name: Create zip file | ||
run: | | ||
cp target/release/fusioninventory-agent fusioninventory-agent | ||
cp -fr src/static static | ||
zip -r "fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_freebsd_14.x.zip" fusioninventory-agent agent.cfg static | ||
- name: Deploy with rsync | ||
if: ${{ github.event.pull_request.merged }} | ||
uses: "Pendect/[email protected]" | ||
env: | ||
DEPLOY_KEY: ${{ secrets.SSH_DOCUMENTATION_KEY }} | ||
with: | ||
flags: '-avzr' | ||
options: '' | ||
ssh_options: '' | ||
src: 'fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_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: Get package info | ||
id: info | ||
uses: rabbitson87/get-cargo-package-info@v1 | ||
with: | ||
package: | | ||
version | ||
- name: Create zip file | ||
run: | | ||
cp target/release/fusioninventory-agent fusioninventory-agent | ||
cp -fr src/static static | ||
zip -r "fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_freebsd_13.x.zip" fusioninventory-agent agent.cfg static | ||
- name: Deploy with rsync | ||
if: ${{ github.event.pull_request.merged }} | ||
uses: "Pendect/[email protected]" | ||
env: | ||
DEPLOY_KEY: ${{ secrets.SSH_DOCUMENTATION_KEY }} | ||
with: | ||
flags: '-avzr' | ||
options: '' | ||
ssh_options: '' | ||
src: 'fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_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 | ||
|
||
# - release_for: Linux-i686 | ||
# os: ubuntu-latest | ||
# target: i686-unknown-linux-gnu | ||
# bin: fusioninventory-agent | ||
# name: fusioninventory-agent-Linux-i686.tar.gz | ||
# command: build | ||
|
||
# For rapsberry pi | ||
# armv7-unknown-linux-gnueabihf | ||
|
||
runs-on: ${{ matrix.platform.os }} | ||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v4 | ||
- name: Rust cache | ||
uses: Swatinem/rust-cache@v2 | ||
- name: Get package info | ||
id: info | ||
uses: rabbitson87/get-cargo-package-info@v1 | ||
with: | ||
package: | | ||
version | ||
- 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 | ||
if: runner.os != 'Windows' | ||
uses: vimtor/[email protected] | ||
with: | ||
files: target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} agent.cfg src/static | ||
dest: fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_${{ matrix.platform.target }}.zip | ||
|
||
- name: Prepare windows dmidecode x64 | ||
if: runner.os == 'Windows' && matrix.platform.target == 'x86_64-pc-windows-msvc' | ||
run: | | ||
unzip win32\dmidecode_x64.zip | ||
- name: Prepare windows dmidecode x86 | ||
if: runner.os == 'Windows' && matrix.platform.target == 'i686-pc-windows-msvc' | ||
run: | | ||
unzip win32\dmidecode_x86.zip | ||
# TODO windows update agent.cfg /tmp => c:/ | ||
# TODO Linux chmod 755 fusioninventory-agent | ||
|
||
- name: Create zip file | ||
if: runner.os == 'Windows' | ||
uses: vimtor/[email protected] | ||
with: | ||
files: target/${{ matrix.platform.target }}/release/${{ matrix.platform.bin }} agent.cfg src/static dmidecode.exe | ||
dest: fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_${{ matrix.platform.target }}.zip | ||
|
||
|
||
- 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: scp deployments | ||
if: ${{ github.event.pull_request.merged }} | ||
run: | | ||
scp -o StrictHostKeyChecking=no -i "${{ steps.rsync.outputs.ssh_key_path }}" 'fusioninventory-agent-${{ fromJson(steps.info.outputs.object).package.version }}_${{ matrix.platform.target }}.zip' '${{ secrets.SSH_DOCUMENTATION_USER }}@${{ secrets.SSH_HOST }}:${{ secrets.DEV_PATH }}/' |
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
Oops, something went wrong.