Tests: E2E #332
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: "Tests: E2E" | |
concurrency: # This is required to ensure that only a single job or workflow using the same concurrency group will run at a time. | |
group: ${{ github.workflow }} | |
cancel-in-progress: false | |
defaults: | |
run: | |
shell: bash | |
env: | |
AWS_PROFILE: default | |
AWS_REGION: us-east-1 | |
on: | |
workflow_dispatch: | |
pull_request: | |
jobs: | |
build: | |
name: Build | |
strategy: | |
matrix: | |
os: | |
- ubuntu-latest | |
# TODO: re-enable other platforms after Ubuntu is working fine | |
# - macos-latest | |
# - windows-latest | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Build | |
run: | | |
go mod download | |
make bin | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ize-${{ matrix.os }}-${{ github.sha }} | |
path: ${{ github.workspace }}/bin/ize | |
test-ecs-apps: | |
name: ECS Apps Monorepo | |
needs: build | |
strategy: | |
max-parallel: 1 | |
matrix: | |
os: | |
- ubuntu-latest | |
# - windows-latest | |
# - macos-latest | |
runs-on: ${{ matrix.os }} | |
env: | |
IZE_EXAMPLES_PATH: ${{ github.workspace }}/examples/ecs-apps-monorepo | |
steps: | |
- name: Configure Environment Variables | |
run: | | |
echo "${{ github.workspace }}/bin/" >> $GITHUB_PATH | |
echo "ENV=${{ github.job }}-$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_PROD }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_PROD }} | |
aws-region: ${{ env.AWS_REGION }} | |
env: | |
AWS_PROFILE: # This is required due to a bug https://stackoverflow.com/a/77731682 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Prepare Test Environment | |
run: mv "${{ env.IZE_EXAMPLES_PATH }}/.ize/env/testnut" "${{ env.IZE_EXAMPLES_PATH }}/.ize/env/${{ env.ENV }}" | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ize-${{ matrix.os }}-${{ github.sha }} | |
path: bin | |
- name: Make Executable | |
run: | | |
chmod +rx "${{ github.workspace }}/bin/ize" | |
ize --version | |
- name: Create AWS Profile | |
run: ize gen aws-profile | |
- name: Generate Test SSH Key | |
run: ssh-keygen -q -f ~/.ssh/id_rsa | |
- name: Run Tests | |
run: | | |
go test -v --timeout 0 --tags="e2e ecs_apps" ./tests/e2e | |
- name: Cleanup Infra | |
if: ${{ always() }} | |
run: | | |
cd "${{ env.IZE_EXAMPLES_PATH }}" | |
ize down --auto-approve | |
test-tunnel: | |
name: Bastion Tunnel Monorepo | |
needs: build | |
strategy: | |
max-parallel: 1 | |
matrix: | |
os: | |
- ubuntu-latest | |
# TODO: re-enable other platforms after Ubuntu is working fine | |
# - windows-latest | |
# - macos-latest | |
runs-on: ${{ matrix.os }} | |
env: | |
IZE_EXAMPLES_PATH: ${{ github.workspace }}/examples/bastion-tunnel-monorepo | |
steps: | |
- name: Configure Environment Variables | |
run: | | |
echo "${{ github.workspace }}/bin/" >> $GITHUB_PATH | |
echo "ENV=${{ github.job }}-$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_PROD }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_PROD }} | |
aws-region: ${{ env.AWS_REGION }} | |
env: | |
AWS_PROFILE: # This is required due to a bug https://stackoverflow.com/a/77731682 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Prepare Test Environment | |
run: mv "${{ env.IZE_EXAMPLES_PATH }}/.ize/env/testnut" "${{ env.IZE_EXAMPLES_PATH }}/.ize/env/${{ env.ENV }}" | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ize-${{ matrix.os }}-${{ github.sha }} | |
path: bin | |
- name: Make Executable | |
run: | | |
chmod +rx "${{ github.workspace }}/bin/ize" | |
ize --version | |
- name: Create AWS Profile | |
run: ize gen aws-profile | |
- name: Generate Test SSH Key | |
run: | | |
ssh-keygen -q -f ~/.ssh/id_rsa -t rsa -N '' | |
ssh-keygen -q -f ~/.ssh/id_rsa_tunnel_test -t rsa -N '' | |
chmod 600 ~/.ssh/id_rsa_tunnel_test | |
chmod 600 ~/.ssh/id_rsa_tunnel_test.pub | |
cat ~/.ssh/id_rsa_tunnel_test.pub | |
ls -ld ~/.ssh/* | |
- name: Run Tests | |
run: | | |
go test -v --timeout 0 --tags="e2e bastion_tunnel" ./tests/e2e | |
- name: Cleanup Infra | |
if: ${{ always() }} | |
run: | | |
cd "${{ env.IZE_EXAMPLES_PATH }}" | |
ize down --auto-approve | |
test-terraform: | |
name: Terraform Commands | |
needs: build | |
strategy: | |
max-parallel: 1 | |
matrix: | |
os: | |
- ubuntu-latest | |
# TODO: re-enable other platforms after Ubuntu is working fine | |
# - macos-latest | |
# - windows-latest | |
runs-on: ${{ matrix.os }} | |
env: | |
IZE_EXAMPLES_PATH: ${{ github.workspace }}/examples/sls-apps-monorepo | |
steps: | |
- name: Configure Environment Variables | |
run: | | |
echo "${{ github.workspace }}/bin/" >> $GITHUB_PATH | |
echo "ENV=${{ github.job }}-$(echo $GITHUB_SHA | cut -c 1-6)" >> $GITHUB_ENV | |
- name: Configure AWS Credentials | |
uses: aws-actions/configure-aws-credentials@v4 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID_PROD }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY_PROD }} | |
aws-region: ${{ env.AWS_REGION }} | |
env: | |
AWS_PROFILE: # This is required due to a bug https://stackoverflow.com/a/77731682 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: 1.22.x | |
- name: Checkout Code | |
uses: actions/checkout@v2 | |
- name: Prepare Test Environment | |
run: mv "${{ env.IZE_EXAMPLES_PATH }}/.ize/env/testnut" "${{ env.IZE_EXAMPLES_PATH }}/.ize/env/${{ env.ENV }}" | |
- uses: actions/download-artifact@v3 | |
with: | |
name: ize-${{ matrix.os }}-${{ github.sha }} | |
path: bin | |
- name: Make Executable | |
run: | | |
chmod +rx "${{ github.workspace }}/bin/ize" | |
ize --version | |
- name: Create AWS Profile | |
run: ize gen aws-profile | |
- name: Generate Test SSH Key | |
run: ssh-keygen -q -f ~/.ssh/id_rsa | |
- name: Run Tests | |
run: | | |
go test -v --timeout 0 --tags="e2e terraform" ./tests/e2e |