Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Files
F9125111
nightly.yml
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Subscribers
None
nightly.yml
View Options
name
:
"nightly"
on
:
schedule
:
-
cron
:
'0
0
*
*
*'
env
:
HONEYCOMB_WRITEKEY
:
7f3c63a70eecc61d635917de46bea4e6
HONEYCOMB_DATASET
:
litmus tests
jobs
:
setup_matrix
:
name
:
"Setup
Test
Matrix"
runs-on
:
ubuntu-20.04
outputs
:
matrix
:
${{ steps.get-matrix.outputs.matrix }}
steps
:
-
name
:
"Honeycomb:
Start
recording"
uses
:
kvrhdn/gha-buildevents@v1.0.2
with
:
apikey
:
${{ env.HONEYCOMB_WRITEKEY }}
dataset
:
${{ env.HONEYCOMB_DATASET }}
job-status
:
${{ job.status }}
-
name
:
"Honeycomb:
Start
first
step"
run
:
|
echo STEP_ID=0 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
-
name
:
Checkout Source
uses
:
actions/checkout@v2
if
:
${{ github.repository_owner == 'puppetlabs' }}
-
name
:
Activate Ruby 2.7
uses
:
actions/setup-ruby@v1
if
:
${{ github.repository_owner == 'puppetlabs' }}
with
:
ruby-version
:
"2.7"
-
name
:
Cache gems
uses
:
actions/cache@v2
if
:
${{ github.repository_owner == 'puppetlabs' }}
with
:
path
:
vendor/gems
key
:
${{ runner.os }}-${{ github.event_name }}-${{ hashFiles('**/Gemfile') }}
restore-keys
:
|
${{ runner.os }}-${{ github.event_name }}-
${{ runner.os }}-
-
name
:
Install gems
if
:
${{ github.repository_owner == 'puppetlabs' }}
run
:
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle config path vendor/gems' -- bundle config path vendor/gems
buildevents cmd $TRACE_ID $STEP_ID 'bundle config jobs 8' -- bundle config jobs 8
buildevents cmd $TRACE_ID $STEP_ID 'bundle config retry 3' -- bundle config retry 3
buildevents cmd $TRACE_ID $STEP_ID 'bundle install' -- bundle install
buildevents cmd $TRACE_ID $STEP_ID 'bundle clean' -- bundle clean
-
name
:
Setup Acceptance Test Matrix
id
:
get-matrix
if
:
${{ github.repository_owner == 'puppetlabs' }}
run
:
|
if [ '${{ github.repository_owner }}' == 'puppetlabs' ]; then
buildevents cmd $TRACE_ID $STEP_ID matrix_from_metadata -- bundle exec matrix_from_metadata
else
echo "::set-output name=matrix::{}"
fi
-
name
:
"Honeycomb:
Record
setup
time"
if
:
${{ always() }}
run
:
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Setup Test Matrix'
Acceptance
:
needs
:
-
setup_matrix
runs-on
:
ubuntu-20.04
strategy
:
fail-fast
:
false
matrix
:
${{fromJson(needs.setup_matrix.outputs.matrix)}}
env
:
BUILDEVENT_FILE
:
'../buildevents.txt'
steps
:
-
run
:
|
echo 'platform=${{ matrix.platform }}' >> $BUILDEVENT_FILE
echo 'collection=${{ matrix.collection }}' >> $BUILDEVENT_FILE
-
name
:
"Honeycomb:
Start
recording"
uses
:
kvrhdn/gha-buildevents@v1.0.2
with
:
apikey
:
${{ env.HONEYCOMB_WRITEKEY }}
dataset
:
${{ env.HONEYCOMB_DATASET }}
job-status
:
${{ job.status }}
matrix-key
:
${{ matrix.platform }}-${{ matrix.collection }}
-
name
:
"Honeycomb:
start
first
step"
run
:
|
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-1 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
-
name
:
Checkout Source
uses
:
actions/checkout@v2
-
name
:
Activate Ruby 2.7
uses
:
actions/setup-ruby@v1
with
:
ruby-version
:
"2.7"
-
name
:
Cache gems
uses
:
actions/cache@v2
with
:
path
:
vendor/gems
key
:
${{ runner.os }}-${{ github.event_name }}-${{ hashFiles('**/Gemfile') }}
restore-keys
:
|
${{ runner.os }}-${{ github.event_name }}-
${{ runner.os }}-
-
name
:
"Honeycomb:
Record
cache
setup
time"
if
:
${{ always() }}
run
:
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Cache retrieval'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-2 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
-
name
:
Bundler Setup
run
:
|
buildevents cmd $TRACE_ID $STEP_ID 'bundle config path vendor/gems' -- bundle config path vendor/gems
buildevents cmd $TRACE_ID $STEP_ID 'bundle config jobs 8' -- bundle config jobs 8
buildevents cmd $TRACE_ID $STEP_ID 'bundle config retry 3' -- bundle config retry 3
buildevents cmd $TRACE_ID $STEP_ID 'bundle install' -- bundle install
buildevents cmd $TRACE_ID $STEP_ID 'bundle clean' -- bundle clean
echo ::group::bundler environment
buildevents cmd $TRACE_ID $STEP_ID 'bundle env' -- bundle env
echo ::endgroup::
-
name
:
"Honeycomb:
Record
Bundler
Setup
time"
if
:
${{ always() }}
run
:
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Bundler Setup'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-3 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
-
name
:
Provision test environment
run
:
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:provision ${{ matrix.platform }}' -- bundle exec rake 'litmus:provision[provision::provision_service,${{ matrix.platform }}]'
echo ::group::=== REQUEST ===
cat request.json || true
echo
echo ::endgroup::
echo ::group::=== INVENTORY ===
sed -e 's/password: .*/password: "[redacted]"/' < inventory.yaml || true
echo ::endgroup::
# The provision service hands out machines as soon as they're provisioned.
# The GCP VMs might still take a while to spool up and configure themselves fully.
# This retry loop spins until all agents have been installed successfully.
-
name
:
Install agent
uses
:
nick-invision/retry@v1
with
:
timeout_minutes
:
30
max_attempts
:
5
retry_wait_seconds
:
60
command
:
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_agent ${{ matrix.collection }}' -- bundle exec rake 'litmus:install_agent[${{ matrix.collection }}]'
# The agent installer on windows does not finish in time for this to work. To
# work around this for now, retry after a minute if installing the module failed.
-
name
:
Install module
uses
:
nick-invision/retry@v1
with
:
timeout_minutes
:
30
max_attempts
:
2
retry_wait_seconds
:
60
command
:
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:install_module' -- bundle exec rake 'litmus:install_module'
-
name
:
"Honeycomb:
Record
deployment
times"
if
:
${{ always() }}
run
:
|
echo ::group::honeycomb step
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Deploy test system'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-4 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
echo ::endgroup::
-
name
:
Run acceptance tests
run
:
|
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:acceptance:parallel' -- bundle exec rake 'litmus:acceptance:parallel'
-
name
:
"Honeycomb:
Record
acceptance
testing
times"
if
:
${{ always() }}
run
:
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Run acceptance tests'
echo STEP_ID=${{ matrix.platform }}-${{ matrix.collection }}-5 >> $GITHUB_ENV
echo STEP_START=$(date +%s) >> $GITHUB_ENV
-
name
:
Remove test environment
if
:
${{ always() }}
run
:
|
if [ -f inventory.yaml ]; then
buildevents cmd $TRACE_ID $STEP_ID 'rake litmus:tear_down' -- bundle exec rake 'litmus:tear_down'
echo ::group::=== REQUEST ===
cat request.json || true
echo
echo ::endgroup::
fi
-
name
:
"Honeycomb:
Record
removal
times"
if
:
${{ always() }}
run
:
|
buildevents step $TRACE_ID $STEP_ID $STEP_START 'Remove test environment'
slack-workflow-status
:
if
:
always()
name
:
Post Workflow Status To Slack
needs
:
-
Acceptance
runs-on
:
ubuntu-20.04
steps
:
-
name
:
Slack Workflow Notification
uses
:
Gamesight/slack-workflow-status@master
with
:
# Required Input
repo_token
:
${{ secrets.GITHUB_TOKEN }}
slack_webhook_url
:
${{ secrets.SLACK_WEBHOOK }}
# Optional Input
channel
:
'#team-ia-bots'
name
:
'GABot'
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Jun 21, 8:05 PM (3 w, 1 d ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3280979
Attached To
R205 puppet-puppetlabs-docker
Event Timeline
Log In to Comment