-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add github action for hab pkg and publish Signed-off-by: nitin sanghi <[email protected]> * Added version check on new hab pkg Signed-off-by: nitin sanghi <[email protected]> * removed extra keyword for triggering pipeline Signed-off-by: nitin sanghi <[email protected]> * pkg iden added using vars Signed-off-by: nitin sanghi <[email protected]> * list all pkg to verify pkg installed Signed-off-by: nitin sanghi <[email protected]> * Installing hab build using hart file Signed-off-by: nitin sanghi <[email protected]> * Installing hab build using hart file Signed-off-by: nitin sanghi <[email protected]> * Installing hab build using hart file Signed-off-by: nitin sanghi <[email protected]> * pipeline test commit Signed-off-by: nitin sanghi <[email protected]> * pipeline test commit Signed-off-by: nitin sanghi <[email protected]> * pipeline test commit Signed-off-by: nitin sanghi <[email protected]> * pipeline test commit Signed-off-by: nitin sanghi <[email protected]> * pipeline test commit Signed-off-by: nitin sanghi <[email protected]> * sudo for installing hab pkg Signed-off-by: nitin sanghi <[email protected]> * sudo for installing hab pkg Signed-off-by: nitin sanghi <[email protected]> * sudo for installing hab pkg Signed-off-by: nitin sanghi <[email protected]> * sudo for installing hab pkg Signed-off-by: nitin sanghi <[email protected]> * hart file version change Signed-off-by: nitin sanghi <[email protected]> * Change pkg_indent Signed-off-by: nitin sanghi <[email protected]> * Change pkg_indent Signed-off-by: nitin sanghi <[email protected]> * version regex changed Signed-off-by: nitin sanghi <[email protected]> * windows pipeline change Signed-off-by: nitin sanghi <[email protected]> * windows pipeline change Signed-off-by: nitin sanghi <[email protected]> * windows pipeline change Signed-off-by: nitin sanghi <[email protected]> * windows pipeline change Signed-off-by: nitin sanghi <[email protected]> * Windows chef-cli hab version check Signed-off-by: nitin sanghi <[email protected]> * Windows chef-cli hab version check Signed-off-by: nitin sanghi <[email protected]> * Windows chef-cli hab version check Signed-off-by: nitin sanghi <[email protected]> * Change the message in test phase and throw error Signed-off-by: nitin sanghi <[email protected]> * Change the message in test phase and throw error Signed-off-by: nitin sanghi <[email protected]> * Hab pipeline using buildkite Signed-off-by: nitin sanghi <[email protected]> * hab build yml file added Signed-off-by: nitin sanghi <[email protected]> --------- Signed-off-by: nitin sanghi <[email protected]>
- Loading branch information
1 parent
a7e42e2
commit 9ec89ee
Showing
7 changed files
with
282 additions
and
1 deletion.
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,9 @@ | ||
--- | ||
origin: chef | ||
|
||
expeditor: | ||
defaults: | ||
buildkite: | ||
retry: | ||
automatic: | ||
limit: 1 |
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,86 @@ | ||
#!/usr/bin/env powershell | ||
|
||
#Requires -Version 5 | ||
# https://stackoverflow.com/questions/9948517 | ||
# TODO: Set-StrictMode -Version Latest | ||
$PSDefaultParameterValues['*:ErrorAction']='Stop' | ||
$ErrorActionPreference = 'Stop' | ||
$env:HAB_BLDR_CHANNEL = "LTS-2024" | ||
$env:HAB_ORIGIN = 'ci' | ||
$env:CHEF_LICENSE = 'accept-no-persist' | ||
$env:HAB_LICENSE = 'accept-no-persist' | ||
$Plan = 'chef-cli' | ||
|
||
Write-Host "--- system details" | ||
$Properties = 'Caption', 'CSName', 'Version', 'BuildType', 'OSArchitecture' | ||
Get-CimInstance Win32_OperatingSystem | Select-Object $Properties | Format-Table -AutoSize | ||
|
||
Write-Host "--- Installing the version of Habitat required" | ||
|
||
function Stop-HabProcess { | ||
$habProcess = Get-Process hab -ErrorAction SilentlyContinue | ||
if ($habProcess) { | ||
Write-Host "Stopping hab process..." | ||
Stop-Process -Name hab -Force | ||
} | ||
} | ||
|
||
# Installing Habitat | ||
function Install-Habitat { | ||
Write-Host "Downloading and installing Habitat..." | ||
Invoke-Expression ((New-Object System.Net.WebClient).DownloadString('https://raw.githubusercontent.com/habitat-sh/habitat/main/components/hab/install.ps1')) | ||
} | ||
|
||
try { | ||
hab --version | ||
} | ||
catch { | ||
Set-ExecutionPolicy Bypass -Scope Process -Force | ||
|
||
Stop-HabProcess | ||
|
||
# Remove the existing hab.exe if it exists and if you have permissions | ||
$habPath = "C:\ProgramData\Habitat\hab.exe" | ||
if (Test-Path $habPath) { | ||
Write-Host "Attempting to remove existing hab.exe..." | ||
Remove-Item $habPath -Force -ErrorAction SilentlyContinue | ||
if (Test-Path $habPath) { | ||
Write-Host "Failed to remove hab.exe, re-running script with elevated permissions." | ||
Start-Process powershell -Verb runAs -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" | ||
exit | ||
} | ||
} | ||
|
||
Install-Habitat | ||
} | ||
finally { | ||
Write-Host ":habicat: I think I have the version I need to build." | ||
} | ||
|
||
|
||
Write-Host "--- Generating fake origin key" | ||
hab origin key generate $env:HAB_ORIGIN | ||
|
||
Write-Host "--- Building $Plan" | ||
$project_root = "$(git rev-parse --show-toplevel)" | ||
Set-Location $project_root | ||
|
||
$env:DO_CHECK=$true; hab pkg build . | ||
|
||
. $project_root/results/last_build.ps1 | ||
|
||
Write-Host "--- Installing $pkg_ident/$pkg_artifact" | ||
hab pkg install -b $project_root/results/$pkg_artifact | ||
|
||
Write-Host "+++ Testing $Plan" | ||
|
||
Push-Location $project_root | ||
|
||
try { | ||
Write-Host "Running unit tests..." | ||
/habitat/tests/test.ps1 $pkg_ident | ||
} | ||
finally { | ||
# Ensure we always return to the original directory | ||
Pop-Location | ||
} |
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,71 @@ | ||
#!/usr/bin/env bash | ||
|
||
set -eo pipefail | ||
|
||
export HAB_ORIGIN='ci' | ||
export PLAN='chef-cli' | ||
export CHEF_LICENSE="accept-no-persist" | ||
export HAB_LICENSE="accept-no-persist" | ||
export HAB_BLDR_CHANNEL="LTS-2024" | ||
|
||
echo "--- checking if git is installed" | ||
if ! command -v git &> /dev/null; then | ||
echo "Git is not installed. Installing Git..." | ||
sudo yum install -y git | ||
else | ||
echo "Git is already installed." | ||
git --version | ||
fi | ||
|
||
echo "--- add an exception for this directory since detected dubious ownership in repository at /workdir" | ||
git config --global --add safe.directory /workdir | ||
|
||
echo "--- git status for this workdir" | ||
git status | ||
|
||
echo "--- ruby version" | ||
ruby -v | ||
|
||
export project_root="$(git rev-parse --show-toplevel)" | ||
echo "The value for project_root is: $project_root" | ||
|
||
export HAB_NONINTERACTIVE=true | ||
export HAB_NOCOLORING=true | ||
export HAB_STUDIO_SECRET_HAB_NONINTERACTIVE=true | ||
|
||
echo "--- system details" | ||
uname -a | ||
|
||
echo "--- Installing Habitat" | ||
id -a | ||
curl https://raw.githubusercontent.com/habitat-sh/habitat/main/components/hab/install.sh | bash | ||
|
||
echo "--- :key: Generating fake origin key" | ||
hab origin key generate "$HAB_ORIGIN" | ||
|
||
|
||
echo "--- Building $PLAN" | ||
cd "$project_root" | ||
DO_CHECK=true hab pkg build . | ||
|
||
echo "--- Sourcing 'results/last_build.sh'" | ||
if [ -f ./results/last_build.env ]; then | ||
cat ./results/last_build.env | ||
. ./results/last_build.env | ||
export pkg_artifact | ||
fi | ||
|
||
echo "+++ Installing ${pkg_ident:?is undefined}" | ||
echo "++++" | ||
echo $project_root | ||
echo "+++" | ||
hab pkg install -b "${project_root:?is undefined}/results/${pkg_artifact:?is undefined}" | ||
|
||
echo "+++ Testing $PLAN" | ||
|
||
PATH="$(hab pkg path ci/chef-cli)/bin:$PATH" | ||
export PATH | ||
echo "PATH is $PATH" | ||
|
||
echo "--- :mag_right: Testing $PLAN" | ||
${project_root}/habitat/tests/test.sh "$pkg_ident" || error 'failures during test of executables' |
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
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,35 @@ | ||
--- | ||
expeditor: | ||
defaults: | ||
buildkite: | ||
timeout_in_minutes: 30 | ||
retry: | ||
automatic: | ||
limit: 1 | ||
|
||
steps: | ||
|
||
- label: ":linux: Validate Habitat Builds of Chef-cli" | ||
commands: | ||
- habitat/tests/test.sh | ||
expeditor: | ||
executor: | ||
docker: | ||
image: ruby:3.1 | ||
privileged: true | ||
|
||
- label: ":windows: Validate Habitat Builds of Test Kitchen" | ||
commands: | ||
- .expeditor/buildkite/artifact.habitat.test.ps1 | ||
expeditor: | ||
executor: | ||
docker: | ||
host_os: windows | ||
shell: ["powershell", "-Command"] | ||
image: rubydistros/windows-2019:3.1 | ||
user: 'NT AUTHORITY\SYSTEM' | ||
environment: | ||
- FORCE_FFI_YAJL=ext | ||
- EXPIRE_CACHE=true | ||
- CHEF_LICENSE=accept-no-persist | ||
- CHEF_LICENSE_SERVER=http://hosted-license-service-lb-8000-606952349.us-west-2.elb.amazonaws.com:8000/ |
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,21 @@ | ||
param ( | ||
[Parameter()] | ||
[string]$PackageIdentifier = $(throw "Usage: test.ps1 [test_pkg_ident] e.g. test.ps1 ci/user-windows/1.0.0/20190812103929") | ||
) | ||
|
||
|
||
Write-Host "--- :fire: Smokish test" | ||
# Pester the Package | ||
$version=hab pkg exec "${pkg_ident}" chef-cli -v | ||
$actual_version=[Regex]::Match($version,"([0-9]+.[0-9]+.[0-9]+)").Value | ||
$package_version=$PackageIdentifier.split("/",4)[2] | ||
|
||
Write-Host "package_version $package_version actual version $actual_version" | ||
if ($package_version -eq $actual_version) | ||
{ | ||
Write "Chef-cli working fine" | ||
} | ||
else { | ||
Write-Error "chef-cli version not met expected $package_version actual version $actual_version " | ||
throw "Chef cli windows pipeline not working for hab pkg" | ||
} |
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,26 @@ | ||
|
||
set -euo pipefail | ||
|
||
|
||
project_root="$(git rev-parse --show-toplevel)" | ||
pkg_ident="$1" | ||
# print error message followed by usage and exit | ||
error () { | ||
local message="$1" | ||
|
||
echo -e "\nERROR: ${message}\n" >&2 | ||
|
||
exit 1 | ||
} | ||
|
||
[[ -n "$pkg_ident" ]] || error 'no hab package identity provided' | ||
|
||
package_version=$(awk -F / '{print $3}' <<<"$pkg_ident") | ||
|
||
cd "${project_root}" | ||
|
||
echo "--- :mag_right: Testing ${pkg_ident} executables" | ||
actual_version=$(hab pkg exec "${pkg_ident}" chef-cli -v | sed -E 's/.*version: ([0-9]+\.[0-9]+\.[0-9]+).*/\1/') | ||
[[ "$package_version" = "$actual_version" ]] || error "chef-cli version is not the expected version. Expected '$package_version', got '$actual_version'" | ||
|
||
|