This repository has been archived by the owner on Oct 22, 2024. It is now read-only.
Add deprecation notice #118
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: Delivery | |
on: | |
- push | |
concurrency: delivery-${{ github.ref }} | |
jobs: | |
commit-compile: | |
name: Commit - Compile | |
if: ${{ github.ref_type == 'branch' }} | |
runs-on: ${{ matrix.operating-system }}-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "${{ matrix.ruby-version }}" | |
bundler: "2.4" | |
bundler-cache: true | |
cache-version: | |
"1-os-${{ matrix.operating-system }}-rv-${{ matrix.ruby-version }}" | |
- name: Upload Bundler Lockfile | |
uses: actions/upload-artifact@v3 | |
with: | |
name: | |
bundler-lockfile-os-${{ matrix.operating-system }}-rv-${{ | |
matrix.ruby-version }} | |
path: gems.locked | |
if-no-files-found: error | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- operating-system: ubuntu | |
ruby-version: "3.0" | |
- operating-system: ubuntu | |
ruby-version: "3.1" | |
- operating-system: ubuntu | |
ruby-version: "3.2" | |
- operating-system: windows | |
ruby-version: "3.2" | |
commit-unit-test: | |
name: Commit - Unit Test | |
needs: | |
- commit-compile | |
if: ${{ github.ref_type == 'branch' }} | |
runs-on: ${{ matrix.operating-system }}-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Download Bundler Lockfile | |
uses: actions/download-artifact@v3 | |
with: | |
name: | |
bundler-lockfile-os-${{ matrix.operating-system }}-rv-${{ | |
matrix.ruby-version }} | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "${{ matrix.ruby-version }}" | |
bundler: "2.4" | |
bundler-cache: true | |
cache-version: | |
"1-os-${{ matrix.operating-system }}-rv-${{ matrix.ruby-version }}" | |
- name: Run RSpec Tests | |
if: ${{ !matrix.code-coverage }} | |
run: bundle exec rake test:rspec | |
- name: Run RSpec Tests with Code Coverage | |
if: ${{ matrix.code-coverage }} | |
uses: paambaati/codeclimate-action@v4.0.0 | |
env: | |
CC_TEST_REPORTER_ID: 7574433e1beed630cb9a171c688bb9e010d5028f00f7218d6e845fe138c65168 | |
with: | |
coverageCommand: bundle exec rake test:rspec | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- code-coverage: false | |
operating-system: ubuntu | |
ruby-version: "3.0" | |
- code-coverage: false | |
operating-system: ubuntu | |
ruby-version: "3.1" | |
- code-coverage: true | |
operating-system: ubuntu | |
ruby-version: "3.2" | |
- code-coverage: false | |
operating-system: windows | |
ruby-version: "3.2" | |
commit-assemble: | |
name: Commit - Assemble | |
needs: | |
- commit-compile | |
if: ${{ github.ref_type == 'branch' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Download Bundler Lockfile | |
uses: actions/download-artifact@v3 | |
with: | |
name: bundler-lockfile-os-ubuntu-rv-3.2 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.2" | |
bundler: "2.4" | |
bundler-cache: true | |
cache-version: "1-os-ubuntu-rv-3.2" | |
- name: Build Ruby Gem | |
env: | |
GEM_PRIVATE_KEY: ${{ secrets.GEM_PRIVATE_KEY }} | |
run: | | |
printf -- "${GEM_PRIVATE_KEY}\n" > certs/gem-private_key.pem | |
gem cert --add certs/gem-public_cert.pem | |
gem build kitchen-terraform.gemspec --strict --output kitchen-terraform.gem | |
- name: Upload Ruby Gem | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ruby-gem | |
path: kitchen-terraform.gem | |
commit-code-analysis: | |
name: Commit - Code Analysis | |
if: ${{ github.ref_type == 'branch' }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Initialize CodeQL | |
uses: github/codeql-action/init@v2 | |
with: | |
config-file: .github/codeql/config.yml | |
languages: ruby | |
- name: Perform CodeQL Analysis | |
uses: github/codeql-action/analyze@v2 | |
acceptance: | |
name: Acceptance | |
needs: | |
- commit-unit-test | |
- commit-assemble | |
- commit-code-analysis | |
if: | |
${{ github.ref_type == 'branch' && github.event_name == 'push' && | |
github.ref_name == 'main' }} | |
runs-on: ${{ matrix.operating-system }}-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Setup Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.2" | |
bundler-cache: false | |
- name: Download Ruby Gem | |
uses: actions/download-artifact@v3 | |
with: | |
name: ruby-gem | |
- name: Install Ruby Gems | |
run: | |
gem install --conservative --minimal-deps --verbose | |
kitchen-terraform.gem rake | |
- name: Setup Terraform | |
uses: hashicorp/setup-terraform@v2 | |
with: | |
terraform_version: ${{ matrix.terraform-version }} | |
terraform_wrapper: false | |
- name: Setup Terragrunt | |
if: ${{ matrix.operating-system == 'macos' }} | |
uses: autero1/action-terragrunt@v1.3.2 | |
with: | |
terragrunt_version: ${{ matrix.terragrunt-version }} | |
- name: Mirror Terraform Providers | |
run: | | |
cd ./test/terraform/PlugIns | |
terraform providers mirror ./PlugInDirectory | |
- name: Run Kitchen Tests | |
run: | | |
rake --trace test:kitchen:attributes-${{ matrix.operating-system }} | |
rake --trace test:kitchen:plug-ins-${{ matrix.operating-system }} | |
rake --trace test:kitchen:variables-${{ matrix.operating-system }} | |
rake --trace test:kitchen:workspaces-${{ matrix.operating-system }} | |
- name: Run Kitchen Test backend-ssh | |
if: ${{ matrix.operating-system == 'ubuntu' }} | |
run: | | |
chmod 400 ./test/terraform/backend-ssh/id_ed25519 | |
rake test:kitchen:backend-ssh-ubuntu | |
- name: Run Kitchen doctor | |
run: | | |
rake --trace test:kitchen:doctor-${{ matrix.operating-system }} | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- operating-system: macos | |
terraform-version: "1.1.4" | |
terragrunt-version: "0.36.0" | |
- operating-system: ubuntu | |
terraform-version: "0.15.5" | |
- operating-system: ubuntu | |
terraform-version: "0.14.11" | |
- operating-system: windows | |
terraform-version: "0.13.7" | |
release: | |
name: Release | |
if: ${{ github.ref_type == 'tag' && startsWith(github.ref_name, 'v') }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Set up Ruby | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "3.2" | |
bundler-cache: false | |
- name: Download Ruby Gem Release Candidate | |
uses: dawidd6/action-download-artifact@v2 | |
with: | |
commit: ${{ github.sha }} | |
event: push | |
name: ruby-gem | |
workflow_conclusion: success | |
- name: Publish Ruby Gem Release Candidate | |
env: | |
GEM_HOST_API_KEY: ${{ secrets.GEM_HOST_API_KEY }} | |
run: gem push kitchen-terraform.gem |