Skip to content

test: plural up tests #1112

test: plural up tests

test: plural up tests #1112

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_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: Post a slack message on finish
uses: slackapi/[email protected]
with:
webhook-type: incoming-webhook
webhook: ${{ secrets.SLACK_WEBHOOK }}
payload: |
text: "*GitHub Action build result*: ${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}"
blocks:
- type: "section"
text:
type: "mrkdwn"
text: "GitHub Action build result: ${{ job.status }}\n${{ github.event.pull_request.html_url || github.event.head_commit.url }}"
if: always()
- name: Upload venom logs on failure
uses: slackapi/[email protected]
with:
method: files.uploadV2
token: ${{ secrets.SLACK_BOT_TOKEN }}
# ${{ secrets.SLACK_CHANNEL_ID }}
payload: |
{
"channel": "C082X869RU1" ,
"initial_comment": "Google e2e test has failed. Here are the generated files.",
"file_uploads": [
{
"file": "${{ env.TESTOUT_PATH }}/venom.log",
"filename": "venom.log"
},
{
"file": "${{ env.TESTOUT_PATH }}/test_results.html",
"filename": "rest_results.html"
}
]
}
if: failure()
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 -upgrade
terraform apply -auto-approve
terraform destroy -auto-approve
# - name: Run tests
# env:
# 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