Skip to content

AWS Acceptance Tests #81

AWS Acceptance Tests

AWS Acceptance Tests #81

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
name: "AWS Acceptance Tests"
on:
schedule:
- cron: '0 4 * * SUN'
workflow_dispatch:
inputs:
branch:
description: "A branch or SHA"
default: 'main'
required: false
run_pattern:
description: "The pattern to run tests on"
default: "TestAcc"
required: false
permissions:
contents: read
jobs:
get-go-version:
runs-on: ubuntu-latest
outputs:
go-version: ${{ steps.get-go-version.outputs.go-version }}
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
- name: 'Determine Go version'
id: get-go-version
run: |
echo "Found Go $(cat .go-version)"
echo "go-version=$(cat .go-version)" >> "$GITHUB_OUTPUT"
ebs-acc-tests:
needs:
- get-go-version
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
name: AWS EBS Acceptance tests
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
ref: ${{ github.event.inputs.branch }}
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ needs.get-go-version.outputs.go-version }}
- name: "Compile/install the plugin on the current branch"
run: |
make dev
- uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with:
aws-access-key-id: "${{ secrets.AWS_ACC_TEST_KEY_ID }}"
aws-secret-access-key: "${{ secrets.AWS_ACC_TEST_KEY_SECRET }}"
aws-region: "${{ secrets.AWS_ACC_TEST_REGION }}"
role-to-assume: "${{ secrets.AWS_ACC_TEST_ROLE }}"
role-session-name: "packer-aws-acceptance-tests"
role-duration-seconds: 21600 # 6h
- run: |
echo "Testing with Go ${{ needs.get-go-version.outputs.go-version }}"
PACKER_ACC=1 go test \
-timeout 5h \
-count 1 \
-run "${{ github.event.inputs.run_pattern }}" \
./builder/ebs
- run: zip ebs_failure_logs.zip builder/ebs/*txt
if: ${{ failure() }}
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ failure() }}
with:
name: "ebs_failure_logs.zip"
path: "ebs_failure_logs.zip"
retention-days: 5
ebssurrogate-acc-tests:
needs:
- get-go-version
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
name: AWS EBS Surrogate Acceptance tests
steps:
- uses: actions/checkout@0ad4b8fadaa221de15dcec353f45205ec38ea70b # v4.1.4
with:
ref: ${{ github.event.inputs.branch }}
- uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version: ${{ needs.get-go-version.outputs.go-version }}
- name: "Compile/install the plugin on the current branch"
run: |
make dev
- uses: aws-actions/configure-aws-credentials@e3dd6a429d7300a6a4c196c26e071d42e0343502 # v4.0.2
with:
aws-access-key-id: "${{ secrets.AWS_ACC_TEST_KEY_ID }}"
aws-secret-access-key: "${{ secrets.AWS_ACC_TEST_KEY_SECRET }}"
aws-region: "${{ secrets.AWS_ACC_TEST_REGION }}"
role-to-assume: "${{ secrets.AWS_ACC_TEST_ROLE }}"
role-session-name: "packer-aws-acceptance-tests"
role-duration-seconds: 14400 # 4h
- run: |
echo "Testing with Go ${{ needs.get-go-version.outputs.go-version }}"
PACKER_ACC=1 go test \
-timeout 1h \
-count 1 \
-run "${{ github.event.inputs.run_pattern }}" \
./builder/ebssurrogate
- run: zip ebssurrogate_failure_logs.zip builder/ebssurrogate/*txt
if: ${{ failure() }}
- uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
if: ${{ failure() }}
with:
name: "ebssurrogate_failure_logs.zip"
path: "ebssurrogate_failure_logs.zip"
retention-days: 5