nightly #783
This file contains hidden or 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: "nightly" | |
on: | |
schedule: | |
- cron: '0 0 * * *' | |
env: | |
SERVICE_URL: https://facade-maint-config-windows-use-ssh-6f3kfepqcq-ew.a.run.app/v1/provision | |
jobs: | |
Spec: | |
uses: "puppetlabs/cat-github-actions/.github/workflows/module_ci.yml@main" | |
secrets: "inherit" | |
setup_matrix: | |
name: "Setup Test Matrix" | |
needs: "Spec" | |
runs-on: ubuntu-latest | |
outputs: | |
matrix: ${{ steps.get-matrix.outputs.matrix }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
- name: Activate Ruby 2.7 | |
uses: ruby/setup-ruby@v1 | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
with: | |
ruby-version: "2.7" | |
bundler-cache: true | |
- name: Print bundle environment | |
if: ${{ github.repository_owner == 'puppetlabs' }} | |
run: | | |
echo ::group::bundler environment | |
bundle env | |
echo ::endgroup:: | |
- name: Setup Acceptance Test Matrix | |
id: get-matrix | |
run: | | |
bundle exec matrix_from_metadata_v2 | |
Acceptance: | |
name: "${{matrix.platforms.label}}, ${{matrix.collection}}" | |
needs: | |
- setup_matrix | |
if: ${{ needs.setup_matrix.outputs.matrix != '{}' }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: ${{fromJson(needs.setup_matrix.outputs.matrix)}} | |
env: | |
PUPPET_GEM_VERSION: '~> 7.24' | |
FACTER_GEM_VERSION: 'https://github.com/puppetlabs/facter#main' | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
- name: Activate Ruby 2.7 | |
uses: ruby/setup-ruby@v1 | |
with: | |
ruby-version: "2.7" | |
bundler-cache: true | |
- name: Print bundle environment | |
run: | | |
echo ::group::bundler environment | |
bundle env | |
echo ::endgroup:: | |
- name: Provision test environment | |
run: | | |
bundle exec rake "litmus:provision[${{matrix.platforms.provider}},${{ matrix.platforms.image }}]" | |
- name: Install agent | |
run: | | |
bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]' | |
- name: Install module | |
run: | | |
bundle exec rake 'litmus:install_module' | |
- name: Authenitcate with GCP | |
run: | | |
echo '${{ secrets.GCP_CONNECTION }}' >> creds.json | |
bundle exec bolt file upload creds.json C:\\creds.json --targets ssh_nodes --inventoryfile spec/fixtures/litmus_inventory.yaml | |
bundle exec bolt command run "gcloud auth activate-service-account --key-file C:\\creds.json" --targets ssh_nodes --inventoryfile spec/fixtures/litmus_inventory.yaml | |
- name: Download OS ISO | |
run: | | |
bundle exec bolt command run 'gsutil -q cp gs://artifactory-modules/windows/en_windows_server_2019_updated_july_2020_x64_dvd_94453821.iso C:\\' --targets ssh_nodes --inventoryfile spec/fixtures/litmus_inventory.yaml | |
- name: Download SQLServer ISO | |
run: | | |
bundle exec bolt command run 'gsutil -q cp gs://artifactory-modules/puppetlabs-sqlserver/SQLServer2019CTP2.4-x64-ENU.iso C:\\' --targets ssh_nodes --inventoryfile spec/fixtures/litmus_inventory.yaml | |
- name: Set Environment Variable | |
run: | | |
pass=`grep -oP '(?<=password: ).*' spec/fixtures/litmus_inventory.yaml` | |
bundle exec bolt command run "[Environment]::SetEnvironmentVariable('pass', '$pass', 'Machine')" --targets ssh_nodes --inventoryfile spec/fixtures/litmus_inventory.yaml | |
- name: Run acceptance tests | |
run: | | |
for i in 1 2 3; do | |
if bundle exec rake 'litmus:acceptance:parallel'; then | |
break | |
elif [ "$i" -lt 3 ]; then | |
echo "Retrying acceptance tests (Attempt $i)" | |
else | |
echo "Acceptance tests failed after $i attempts." | |
exit 1 | |
fi | |
done | |
- name: Remove test environment | |
if: ${{ always() }} | |
continue-on-error: true | |
run: | | |
bundle exec rake 'litmus:tear_down' |