Testing Hava CLI #7
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: Testing Hava CLI | |
on: | |
workflow_dispatch: | |
inputs: | |
General Comments: | |
description: 'General Comments' | |
required: false | |
default: "" | |
jobs: | |
EndToEndTests: | |
runs-on: ubuntu-latest | |
env: | |
HAVA_TOKEN: ${{ secrets.HAVA_TOKEN }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_CROSS_ACCOUNT_ROLE: ${{ secrets.AWS_CROSS_ACCOUNT_ROLE }} | |
HAVA_AWS_SOURCE_NAME: ${{ vars.HAVA_AWS_SOURCE_NAME }} | |
HAVA_AWSCAR_SOURCE_NAME: ${{ vars.HAVA_AWSCAR_SOURCE_NAME }} | |
HAVA_AZURE_SOURCE_NAME: ${{ vars.HAVA_AZURE_SOURCE_NAME }} | |
HAVA_GCP_SOURCE_NAME: ${{ vars.HAVA_GCP_SOURCE_NAME }} | |
GCP_ENCODED_FILE: ${{ secrets.GCP_ENCODED_FILE }} | |
ARM_CLIENT_ID: ${{ secrets.ARM_CLIENT_ID }} | |
ARM_TENANT_ID: ${{ secrets.ARM_TENANT_ID }} | |
ARM_SUBSCRIPTION_ID: ${{ secrets.ARM_SUBSCRIPTION_ID }} | |
ARM_SECRET_TEXT: ${{ secrets.ARM_SECRET_TEXT }} | |
AUTOMATION: 1 | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Install Go | |
uses: actions/setup-go@v4 | |
with: | |
go-version: 1.20.7 | |
- name: Install gox | |
run: | | |
go get github.com/mitchellh/gox | |
go install github.com/mitchellh/gox | |
- name: Install zip | |
run: | | |
sudo apt-get update -q | |
sudo apt-get install zip jq -q | |
- name: Cross compile | |
run: | | |
gox \ | |
-os="linux" \ | |
-ldflags="-X 'github.com/teamhava/hava-ui-cli/version.Build=${{ github.sha }}' -X 'github.com/teamhava/hava-ui-cli/version.Date=$(date)' -X 'github.com/teamhava/hava-ui-cli/version.BuiltBy=github'" \ | |
-arch="amd64" \ | |
-output "./hava" \ | |
. | |
- name: Print version | |
run: ./hava --version | |
- name: Create Source AWS (Using Access Keys) | |
run: ./hava source create aws --name $HAVA_AWS_SOURCE_NAME --access-key $AWS_ACCESS_KEY_ID --secret-key $AWS_SECRET_ACCESS_KEY | |
- name: List ALL sources | |
run: ./hava source list | |
- name: Get AWS source ID | |
id: awsSourceID | |
run: | | |
AWS_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_AWS_SOURCE_NAME) | .Id') | |
echo "AWS_SOURCE_ID=$AWS_SOURCE_ID" >> $GITHUB_ENV | |
- name: List specific source | |
run: ./hava source list --source-id $AWS_SOURCE_ID | |
- name: Create Source AWS (Using Cross Account Roles) | |
run: ./hava source create aws --name $HAVA_AWSCAR_SOURCE_NAME --role-arn $AWS_CROSS_ACCOUNT_ROLE | |
- name: Create Source GCP | |
run: ./hava source create gcp --name $HAVA_GCP_SOURCE_NAME --config-file $GCP_ENCODED_FILE | |
- name: Create Source Azure | |
run: ./hava source create azure --name $HAVA_AZURE_SOURCE_NAME --client-id $ARM_CLIENT_ID --tenant-id $ARM_TENANT_ID --subscription-id $ARM_SUBSCRIPTION_ID --secret-key $ARM_SECRET_TEXT | |
- name: List ALL sources | |
run: ./hava source list | |
- name: List ALL sources (Markdown) | |
run: | | |
STEP_SUMMARY=$(./hava source list --markdown) | |
echo "### List ALL sources (Markdown) :rocket:" >> $GITHUB_STEP_SUMMARY | |
echo "$STEP_SUMMARY" >> $GITHUB_STEP_SUMMARY | |
echo "$STEP_SUMMARY" | |
- name: List ALL sources (HTML) | |
run: | | |
STEP_SUMMARY=$(./hava source list --html) | |
echo "### List ALL sources (HTML) :rocket:" >> $GITHUB_STEP_SUMMARY | |
echo "$STEP_SUMMARY" >> $GITHUB_STEP_SUMMARY | |
echo "$STEP_SUMMARY" | |
- name: List ALL sources (JSON OUTPUT) | |
run: ./hava source list --json | jq | |
- name: Get GCP source ID | |
id: gcpSourceID | |
run: | | |
GCP_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_GCP_SOURCE_NAME) | .Id') | |
echo "GCP_SOURCE_ID=$GCP_SOURCE_ID" >> $GITHUB_ENV | |
- name: Get Azure source ID | |
id: azureSourceID | |
run: | | |
AZURE_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_AZURE_SOURCE_NAME) | .Id') | |
echo "AZURE_SOURCE_ID=$AZURE_SOURCE_ID" >> $GITHUB_ENV | |
- name: Get AWS CAR source ID | |
id: awsCarSourceID | |
run: | | |
AWSCAR_SOURCE_ID=$(./hava source list --json | jq -r '.[] | select(.Name==env.HAVA_AWSCAR_SOURCE_NAME) | .Id') | |
echo "AWSCAR_SOURCE_ID=$AWSCAR_SOURCE_ID" >> $GITHUB_ENV | |
- name: Update GCP Source | |
run: ./hava source update gcp --name GCPDevChange --source-id $GCP_SOURCE_ID | |
- name: Quick Pause to review | |
run: sleep 30s | |
- name: Sync AWS Source | |
run: ./hava source sync $AWS_SOURCE_ID | |
- name: List ALL sources | |
run: ./hava source list | |
- name: Delete AWS Keys Source | |
run: ./hava source delete $AWS_SOURCE_ID --autoapprove | |
- name: Delete AWS CAR Source | |
run: ./hava source delete $AWSCAR_SOURCE_ID --autoapprove | |
- name: Delete GCP Source | |
run: ./hava source delete $GCP_SOURCE_ID --autoapprove | |
- name: Delete AZURE Source | |
run: ./hava source delete $AZURE_SOURCE_ID --autoapprove | |
- name: List ALL sources | |
run: ./hava source list | |