diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 0eaf511..9cd3259 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,9 +1,38 @@ --- -name: 'Test' +name: 'Lint, Unit & Integration Tests' 'on': pull_request: jobs: lint-unit: - uses: test-kitchen/.github/.github/workflows/lint-unit.yml@v0.1.2 + uses: test-kitchen/.github/.github/workflows/lint-unit.yml@main + + integration: + runs-on: ubuntu-latest + needs: lint-unit + name: Kitchen Verify + strategy: + matrix: + ruby: ["3.3"] + os: ["almalinux-9"] + steps: + - name: Install Vagrant VirtualBox + run: | + wget -O- https://apt.releases.hashicorp.com/gpg | gpg --dearmor | sudo tee /usr/share/keyrings/hashicorp-archive-keyring.gpg + wget -O- https://www.virtualbox.org/download/oracle_vbox_2016.asc | gpg --dearmor | sudo tee /usr/share/keyrings/oracle-virtualbox-2016.gpg + echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list + echo "deb [signed-by=/usr/share/keyrings/oracle-virtualbox-2016.gpg] https://download.virtualbox.org/virtualbox/debian $(lsb_release -cs) contrib" | sudo tee /etc/apt/sources.list.d/virtualbox.list + sudo apt-get update + sudo apt-get install -y software-properties-common vagrant virtualbox-7.0 + - uses: actions/checkout@v4 + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby }} + bundler-cache: true + - name: Kitchen Verify + run: | + export LOGNAME=$USER + bundle exec kitchen verify default-${{ matrix.os}} + env: + CHEF_LICENSE: "accept-no-persist" diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ad5b1e4..05bbabd 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,10 +1,10 @@ --- +name: release-please + "on": push: - branches: - - main + branches: [main] -name: release-please jobs: release-please: runs-on: ubuntu-latest @@ -12,9 +12,6 @@ jobs: - uses: google-github-actions/release-please-action@v4 id: release with: - release-type: ruby - package-name: kitchen-vagrant - version-file: lib/kitchen/driver/vagrant_version.rb token: ${{ secrets.PORTER_GITHUB_TOKEN }} - name: Checkout diff --git a/.markdownlint.yaml b/.markdownlint.yaml index b5908fb..9fd2375 100644 --- a/.markdownlint.yaml +++ b/.markdownlint.yaml @@ -1,9 +1,6 @@ --- default: true +MD004: false +MD012: false MD013: false MD024: false -MD026: false -MD036: false -MD012: false -MD029: false -MD004: false diff --git a/.release-please-manifest.json b/.release-please-manifest.json new file mode 100644 index 0000000..3086963 --- /dev/null +++ b/.release-please-manifest.json @@ -0,0 +1,3 @@ +{ + ".": "1.14.2" +} diff --git a/.rubocop.yml b/.rubocop.yml index 409ed81..9909d8e 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -3,7 +3,6 @@ require: - chefstyle AllCops: - TargetRubyVersion: 3.0 Include: - "**/*.rb" Exclude: diff --git a/.yamllint.yml b/.yamllint.yml new file mode 100644 index 0000000..5574348 --- /dev/null +++ b/.yamllint.yml @@ -0,0 +1,4 @@ +--- + +rules: + line-length: disable \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index d83aec7..dcdb903 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -223,7 +223,7 @@ [Full Changelog](https://github.com/test-kitchen/kitchen-vagrant/compare/v1.1.0...v1.1.1) -**Fixed Bugs** +### Fixed Bugs - Fix detection of vagrant-winrm plugin. [\#309](https://github.com/test-kitchen/kitchen-vagrant/pull/309) ([silverl](https://github.com/silverl)) - Fix bug in Vagrantfile template related to WinRM options. [\#306](https://github.com/test-kitchen/kitchen-vagrant/pull/306) ([aleksey-hariton](https://github.com/aleksey-hariton)) diff --git a/Gemfile b/Gemfile index a1c8065..533b99b 100644 --- a/Gemfile +++ b/Gemfile @@ -5,6 +5,7 @@ gemspec group :test do gem "rake" + gem "kitchen-inspec" gem "rspec", "~> 3.2" end @@ -14,4 +15,4 @@ end group :chefstyle do gem "chefstyle", "2.2.3" -end \ No newline at end of file +end diff --git a/kitchen.yml b/kitchen.yml new file mode 100644 index 0000000..ffab50e --- /dev/null +++ b/kitchen.yml @@ -0,0 +1,25 @@ +--- +driver: + name: vagrant + +provisioner: + name: shell + command: 'echo "Hello, World!"' + +verifier: + name: inspec + +platforms: + - name: almalinux-9 + - name: ubuntu-24.04 + - name: windows-2022 + driver: + box: stromweld/windows-2022 + customize: + memory: 4096 + +suites: + - name: default + verifier: + inspec_tests: + - test/integration/default diff --git a/release-please-config.json b/release-please-config.json new file mode 100644 index 0000000..ee4a6d4 --- /dev/null +++ b/release-please-config.json @@ -0,0 +1,12 @@ +{ + "packages": { + ".": { + "package-name": "kitchen-vagrant", + "changelog-path": "CHANGELOG.md", + "release-type": "ruby", + "include-component-in-tag": false, + "version-file": "lib/kitchen/driver/vagrant_version.rb" + } + }, + "$schema": "https://raw.githubusercontent.com/googleapis/release-please/main/schemas/config.json" +} diff --git a/test/integration/default/default_test.rb b/test/integration/default/default_test.rb new file mode 100644 index 0000000..95cc643 --- /dev/null +++ b/test/integration/default/default_test.rb @@ -0,0 +1,9 @@ +# Chef InSpec test for kitchen-vagrant + +# The Chef InSpec reference, with examples and extensive documentation, can be +# found at https://docs.chef.io/inspec/resources/ + +user_name = os.windows? ? "Administrator" : "root" +describe user(user_name) do + it { should exist } +end