Skip to content

test: plural up tests #1097

test: plural up tests

test: plural up tests #1097

Workflow file for this run

name: E2E
on:
push:
branches:
- main
pull_request:
branches:
- main
workflow_dispatch:
permissions:
id-token: write
contents: read
env:
GOPATH: /home/runner/go/
GOBIN: /home/runner/go/bin
PLURAL_LOGIN_AFFIRM_CURRENT_USER: true
PLURAL_UP_AFFIRM_DEPLOY: true
TESTOUT_PATH: /home/runner/testout
SSH_PATH: /home/runner/.ssh
VENOM_PATH: /usr/local/bin/venom
VENOM_VAR_pluralHome: /home/runner/.plural
VENOM_VAR_directory: /home/runner/testout/azure
VENOM_VAR_gitRepo: [email protected]:pluralsh/plural-cli-e2e.git
VENOM_VAR_gitRepoPrivateKeyPath: /home/runner/.ssh/id_rsa
E2E_GCP_SA_KEY_FILE: /home/runner/google_sa.json
jobs:
plural-up-gcp:
name: plural up / GCP
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Store test timestamp
run: echo "TIMESTAMP=$(date +'%s')" >> $GITHUB_ENV
- name: Setup test repository SSH key
run: |
mkdir -p ${{ env.SSH_PATH }}
(base64 -d <<< ${{ secrets.E2E_REPO_PRIVATE_KEY }}) >> ${{ env.VENOM_VAR_gitRepoPrivateKeyPath }}
chmod 600 ${{ env.VENOM_VAR_gitRepoPrivateKeyPath }}
eval "$(ssh-agent -s)"
ssh-add ${{ env.VENOM_VAR_gitRepoPrivateKeyPath }}
- name: Decode and save Google service account to a file
run: (base64 -d <<< ${{ secrets.E2E_GCP_SA_KEY }}) >> ${{ env.E2E_GCP_SA_KEY_FILE }}
- name: Setup Go
uses: actions/[email protected]
with:
go-version-file: go.mod
- name: Add GOBIN to PATH
run: echo $GOBIN >> $GITHUB_PATH
- name: Setup Venom
run: |
curl https://github.com/ovh/venom/releases/download/v1.2.0/venom.linux-amd64 -L -o ${{ env.VENOM_PATH }}
chmod +x ${{ env.VENOM_PATH }}
venom version
- name: Setup Plural CLI
run: |
make install-cli
mkdir -p ${{ env.VENOM_VAR_pluralHome }}
plural version
- name: Print Terraform version
run: terraform --version
- name: Print Google Cloud CLI version
run: gcloud --version
- name: Run tests
env:
# Venom variables.
VENOM_VAR_provider: gcp
VENOM_VAR_region: us-central1
VENOM_VAR_gcpEmail: ${{ secrets.E2E_GCP_EMAIL }}
VENOM_VAR_gcpSAKeyFile: ${{ secrets.E2E_GCP_SA_KEY_FILE }}
VENOM_VAR_gcpOrgID: ${{ secrets.E2E_GCP_ORG_ID }}
VENOM_VAR_gcpBillingID: ${{ secrets.E2E_GCP_BILLING_ID }}
VENOM_VAR_project: e2e-${{ env.TIMESTAMP }}
VENOM_VAR_branch: e2e-${{ env.TIMESTAMP }}-gcp
VENOM_VAR_username: ${{ secrets.E2E_GCP_SA_USERNAME }}
VENOM_VAR_email: ${{ secrets.E2E_GCP_SA_EMAIL }}
VENOM_VAR_token: ${{ secrets.E2E_GCP_SA_TOKEN }}
run: venom run -vv --html-report --format=json --output-dir ${{ env.TESTOUT_PATH }} test/plural
- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: gcp
path: |
${{ env.TESTOUT_PATH }}/venom.log
${{ env.TESTOUT_PATH }}/test_results.html
compression-level: 9
plural-up-azure:
name: plural up / Azure
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Store test timestamp
run: echo "TIMESTAMP=$(date +'%s')" >> $GITHUB_ENV
- name: Setup test repository SSH key
run: |
mkdir -p ${{ env.SSH_PATH }}
(base64 -d <<< ${{ secrets.E2E_REPO_PRIVATE_KEY }}) >> ${{ env.VENOM_VAR_gitRepoPrivateKeyPath }}
chmod 600 ${{ env.VENOM_VAR_gitRepoPrivateKeyPath }}
eval "$(ssh-agent -s)"
ssh-add ${{ env.VENOM_VAR_gitRepoPrivateKeyPath }}
- name: Setup Go
uses: actions/[email protected]
with:
go-version-file: go.mod
- name: Add GOBIN to PATH
run: echo $GOBIN >> $GITHUB_PATH
- name: Setup Venom
run: |
curl https://github.com/ovh/venom/releases/download/v1.2.0/venom.linux-amd64 -L -o ${{ env.VENOM_PATH }}
chmod +x ${{ env.VENOM_PATH }}
venom version
- name: Setup Plural CLI
run: |
make install-cli
mkdir -p ${{ env.VENOM_VAR_pluralHome }}
plural version
- name: Print Terraform version
run: terraform --version
- name: Print Azure CLI version
run: az --version
- name: Login to Azure
uses: azure/login@v2
with:
client-id: ${{ secrets.E2E_AZURE_CLIENT_ID }}
tenant-id: ${{ secrets.E2E_AZURE_TENANT_ID }}
subscription-id: ${{ secrets.E2E_AZURE_SUBSCRIPTION_ID }}
- name: Test Terraform
# env:
# ARM_USE_AKS_WORKLOAD_IDENTITY: true
# ARM_USE_CLI: false
# # ARM_USE_MSI: true
# ARM_SUBSCRIPTION_ID: ${{ secrets.E2E_AZURE_SUBSCRIPTION_ID }}
# ARM_CLIENT_ID: ${{ secrets.E2E_AZURE_CLIENT_ID }}
# ARM_TENANT_ID: ${{ secrets.E2E_AZURE_TENANT_ID }}
run: |
terraform init
terraform apply --auto-approve
terraform destroy --auto-approve
# - name: Run tests
# env:
# # Terraform auth.
# # https://registry.terraform.io/providers/hashicorp/azurerm/3.117.0/docs/guides/aks_workload_identity#configuring-with-environment-variables
# # ARM_USE_AKS_WORKLOAD_IDENTITY: true
# ARM_USE_CLI: false
# ARM_USE_MSI: true
# ARM_SUBSCRIPTION_ID: ${{ secrets.E2E_AZURE_SUBSCRIPTION_ID }}
# ARM_CLIENT_ID: ${{ secrets.E2E_AZURE_CLIENT_ID }}
# ARM_TENANT_ID: ${{ secrets.E2E_AZURE_TENANT_ID }}
# # Venom variables.
# VENOM_VAR_provider: azure
# VENOM_VAR_region: polandcentral
# VENOM_VAR_azureTenantId: ${{ secrets.E2E_AZURE_TENANT_ID }}
# VENOM_VAR_azureSubscriptionId: ${{ secrets.E2E_AZURE_SUBSCRIPTION_ID }}
# VENOM_VAR_azureStorageAccount: e2e${{ env.TIMESTAMP }}
# VENOM_VAR_project: e2e-${{ env.TIMESTAMP }}
# VENOM_VAR_branch: e2e-${{ env.TIMESTAMP }}-azure
# VENOM_VAR_username: ${{ secrets.E2E_AZURE_SA_USERNAME }}
# VENOM_VAR_email: ${{ secrets.E2E_AZURE_SA_EMAIL }}
# VENOM_VAR_token: ${{ secrets.E2E_AZURE_SA_TOKEN }}
# run: venom run -vv --html-report --format=json --output-dir ${{ env.TESTOUT_PATH }} test/plural
- name: Upload artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: azure
path: |
${{ env.TESTOUT_PATH }}/venom.log
${{ env.TESTOUT_PATH }}/test_results.html
compression-level: 9