Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
a50369b
Chef license commands implementation
ashiqueps May 23, 2023
c8a515c
Added the faraday_middleware for testing
ashiqueps May 23, 2023
bd63ea5
Fixed the issue with ui object
ashiqueps May 24, 2023
f90fa61
Chefstyle fixes
ashiqueps May 24, 2023
2a7e9fb
Specs for the license commands
ashiqueps May 24, 2023
697862f
Added option to pass license key as a param
ashiqueps May 26, 2023
416f4ff
Updated the chef-licensing dependency to fetch from internal artifactory
ashiqueps May 26, 2023
a99b5c1
Removed the byebug
ashiqueps May 29, 2023
1ffcadd
Added the feature flag for the licensing commands
ashiqueps Jun 2, 2023
cca1d82
updated the feature flag file name
ashiqueps Jun 19, 2023
6ef75d6
Added chef-licensing gem as a gemspec dependency
ashiqueps Jul 11, 2023
edb7717
Licensing updates
ashiqueps Jul 11, 2024
8d4a1ab
Updated the chef-licensing gem version
ashiqueps Jul 29, 2024
3149798
Fixed the spec failure
ashiqueps Oct 23, 2024
2d0c47c
Fixed the chefstyle issues
ashiqueps Oct 23, 2024
b3630a0
Merge pull request #224 from ashiqueps/CHEF-2616-license-command
ashiqueps Oct 23, 2024
2f889d7
Added plan.sh file (#237)
sanghinitin Dec 5, 2024
c95378d
Testing pipleine (#242)
sanghinitin Dec 6, 2024
b4c78ed
Added dev channel for hab pkg (#243)
sanghinitin Dec 16, 2024
6473a1e
Added action for channel alternative (#244)
sanghinitin Dec 17, 2024
c1a46e2
Version change for lts (#245)
sanghinitin Dec 17, 2024
c40fb70
adding backup branch for workstation-lts
sean-sype-simmons Dec 17, 2024
5d45f9a
adding branch
sean-sype-simmons Dec 17, 2024
dcf7aa4
adding expeditor agent
sean-sype-simmons Dec 17, 2024
e7d7f95
adding expeditor agent
sean-sype-simmons Dec 17, 2024
620d9b5
Merge pull request #248 from chef/sean-simmons-progress/testMerge
sean-sype-simmons Dec 17, 2024
ce11b28
Merge branch 'workstation-LTS' into backup/workstation-LTS
sanghinitin Dec 17, 2024
6f80381
Change version and constraint to same as main
sanghinitin Dec 17, 2024
0a9f3fc
Merge pull request #249 from chef/backup/workstation-LTS
sanghinitin Dec 17, 2024
1175aa2
Added one more channel and remove test from promote pipeline
sanghinitin Dec 18, 2024
33b0e86
Merge pull request #250 from chef/test_hab_promote
sanghinitin Dec 18, 2024
628c23d
added the channel variable
nikhil2611 Dec 20, 2024
1d50dba
Merge pull request #251 from chef/nikhil/core_git_version_issue
sanghinitin Dec 20, 2024
d80d0dc
removed the manually created pipelines and added the channels
nikhil2611 Jan 6, 2025
408d352
hab pkg promote change (#254)
sanghinitin Jan 6, 2025
8784b35
Bump version to 0.1.0 by Chef Expeditor
chef-ci Jan 6, 2025
89133ba
empty commit (#255)
sanghinitin Jan 6, 2025
1e40f08
Bump version to 0.1.1 by Chef Expeditor
chef-ci Jan 6, 2025
daa083e
Merge branch 'workstation-LTS' into removing_pipelines
nikhil2611 Jan 6, 2025
62ab726
Merge pull request #253 from chef/removing_pipelines
sanghinitin Jan 6, 2025
a1bf9a6
adding the pipelines to get triggered automatically
nikhil2611 Jan 6, 2025
ebe2127
Merge pull request #256 from chef/adding_pipelines
sanghinitin Jan 6, 2025
afaaeca
Bump version to 0.1.2 by Chef Expeditor
chef-ci Jan 6, 2025
a498927
empty commit to test pipelines
nikhil2611 Jan 6, 2025
b9581ab
Merge pull request #257 from chef/test_pipelines
sanghinitin Jan 6, 2025
87bc8ec
Bump version to 0.1.3 by Chef Expeditor
chef-ci Jan 6, 2025
267c67c
Chef-18535- Updating configuration for a symantec version promote and…
nikhil2611 Feb 3, 2025
56b2607
this func is not needed as of now
nikhil2611 Feb 3, 2025
92e22ea
Using the chef-test-kitchen-enterprise instead of old one
ashiqueps Dec 24, 2024
3afcca6
Adding git as a pkg build dep
ashiqueps Dec 24, 2024
bd7b50e
Post bundle install script to setup the gems from github branches
ashiqueps Dec 24, 2024
e79549a
Added the faraday_middleware gem
ashiqueps Dec 24, 2024
8afec2b
Fixed the shell-init command
ashiqueps Dec 24, 2024
93d566e
Reverted the post-bundle-install script for the windows
ashiqueps Dec 24, 2024
840b9a2
Added the post-bundle-install script for windows plan file
ashiqueps Dec 24, 2024
5561d8c
Updated the shell-init command to work with habitat and omnibus insta…
ashiqueps Feb 4, 2025
f16dfea
Spec fixes
ashiqueps Feb 4, 2025
23d7601
this file is not require
nikhil2611 Feb 5, 2025
63a79bb
Merge pull request #263 from chef/CHEF-18664-update-the-shell-init-co…
ashiqueps Feb 5, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .expeditor/build.habitat.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
origin: chef

expeditor:
defaults:
buildkite:
retry:
automatic:
limit: 1
87 changes: 87 additions & 0 deletions .expeditor/buildkite/artifact.habitat.test.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
#!/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_REFRESH_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
}
71 changes: 71 additions & 0 deletions .expeditor/buildkite/artifact.habitat.test.sh
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"
export HAB_REFRESH_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'
27 changes: 25 additions & 2 deletions .expeditor/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ rubygems:
- chef-cli

release_branches:
- workstation-LTS:
version_constraint: 1.*
- main:
version_constraint: 5.*

Expand All @@ -30,10 +28,27 @@ github:
changelog:
rollup_header: Changes not yet released to rubygems.org

artifact_channels:
- unstable
- chef-dke-lts2024

pipelines:
- verify:
description: Pull Request validation tests
public: true
- habitat/build:
env:
- HAB_NONINTERACTIVE: "true"
- HAB_NOCOLORING: "true"
- HAB_STUDIO_SECRET_HAB_NONINTERACTIVE: "true"
- habitat/test:
description: Execute tests against the habitat artifact
definition: .expeditor/habitat-test.pipeline.yml
env:
- HAB_NONINTERACTIVE: "true"
- HAB_NOCOLORING: "true"
- HAB_STUDIO_SECRET_HAB_NONINTERACTIVE: "true"
trigger: pull_request

subscriptions:
# These actions are taken, in order they are specified, anytime a Pull Request is merged.
Expand All @@ -51,7 +66,15 @@ subscriptions:
- "Expeditor: Skip All"
- built_in:build_gem:
only_if: built_in:bump_version
- trigger_pipeline:habitat/build:
only_if: built_in:bump_version
ignore_labels:
- "Expeditor: Skip Habitat"
- "Expeditor: Skip All"

# this works for symantec version promote
- workload: project_promoted:{{agent_id}}:*
actions:
- built_in:rollover_changelog
- built_in:promote_habitat_packages
- built_in:publish_rubygems
36 changes: 36 additions & 0 deletions .expeditor/habitat-test.pipeline.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
expeditor:
defaults:
buildkite:
timeout_in_minutes: 30
retry:
automatic:
limit: 1


steps:

- label: ":linux: Validate Habitat Builds of Chef-cli"
commands:
- .expeditor/buildkite/artifact.habitat.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/
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,3 +41,6 @@ Vagrantfile
my-cookbook
results/
Gemfile.lock


.idea/
12 changes: 10 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
<!-- usage documentation: https://expeditor.chef.io/docs/reference/changelog/#common-changelog -->
<!-- latest_release -->
<!-- latest_release 0.1.0 -->
## [v0.1.0](https://github.com/chef/chef-cli/tree/v0.1.0) (2025-01-06)

#### Merged Pull Requests
- Add hab promote pipeline [#254](https://github.com/chef/chef-cli/pull/254) ([sanghinitin](https://github.com/sanghinitin))
<!-- latest_release -->

<!-- release_rollup -->
<!-- release_rollup since=5.6.16 -->
### Changes not yet released to rubygems.org

#### Merged Pull Requests
- Add hab promote pipeline [#254](https://github.com/chef/chef-cli/pull/254) ([sanghinitin](https://github.com/sanghinitin)) <!-- 0.1.0 -->
<!-- release_rollup -->

<!-- latest_stable_release -->
Expand Down
18 changes: 11 additions & 7 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,30 @@ source "https://rubygems.org"
gemspec

gem "logger", "< 1.6" # 1.6 causes errors with mixlib-log < 3.1.1

gem "chefspec"
group :test do
gem "rake"
gem "rspec", "~> 3.8"
gem "rspec", "=3.12.0"
gem "rspec-expectations", "~> 3.8"
gem "rspec-mocks", "~> 3.8"
gem "cookstyle"
gem "chefstyle"
gem "test-kitchen"
gem "faraday_middleware"
gem "chef-test-kitchen-enterprise", git: "https://github.com/chef/chef-test-kitchen-enterprise", branch: "main"
gem "simplecov", require: false
end

group :development do
gem "pry"
gem "pry-byebug"
gem "rb-readline"
gem "appbundler"
end

group :profile do
gem "stackprof"
gem "stackprof-webnav"
gem "memory_profiler"
end
unless RUBY_PLATFORM.match?(/mswin|mingw|windows/)
gem "stackprof"
gem "stackprof-webnav"
gem "memory_profiler"
end
end
3 changes: 3 additions & 0 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
#
#
require "bundler/gem_tasks"

namespace :style do
begin
Expand Down Expand Up @@ -52,3 +54,4 @@ namespace :style do
puts ">>> Gem load error: #{e}, omitting #{task.name}" unless ENV["CI"]
end
end

1 change: 1 addition & 0 deletions chef-cli.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,5 @@ Gem::Specification.new do |gem|
gem.add_dependency "diff-lcs", ">= 1.0", "< 1.4" # 1.4 changes the output
gem.add_dependency "pastel", "~> 0.7" # used for policyfile differ
gem.add_dependency "license-acceptance", ">= 1.0.11", "< 3"
gem.add_dependency "chef-licensing", "~> 1.0"
end
Loading