Skip to content

fix preview tests

fix preview tests #22

Workflow file for this run

name: E2E Tests for Astro Deploy Action
on:
push:
branches:
- main
- e2e-tests
workflow_dispatch:
env:
ASTRO_API_TOKEN: ${{ secrets.ASTRO_API_TOKEN }}
ORGANIZATION_ID: ${{ secrets.ORGANIZATION_ID }}
WORKSPACE_ID: ${{ secrets.WORKSPACE_ID }}
DEPLOYMENT_ID: ${{ secrets.DEPLOYMENT_ID }}
ASTRONOMER_HOST: ${{ secrets.ASTRONOMER_HOST }}
jobs:
# dag-deploy-test:
# name: DAG Deploy Test
# runs-on: ubuntu-latest
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Install dependencies
# run: |
# sudo apt-get install jq
# # we need to pre-install the CLI to set the context
# curl -sSL https://install.astronomer.io | sudo bash -s
# - name: Set CLI context
# run: astro context switch ${{ secrets.ASTRONOMER_HOST }}
# - name: Get Deployment Info Before Test
# id: get-deployment-before
# uses: ./.github/workflows/e2e/get_deployment_info
# with:
# deployment_id: ${{ secrets.DEPLOYMENT_ID }}
# organization_id: ${{ secrets.ORGANIZATION_ID }}
# astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
# astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
# - name: Simulate DAG Update
# run: |
# git config user.name "Dummy User"
# git config user.email "dummy@example.com"
# echo "# Simulated change" >> e2e/astro-project/dags/example_dag_basic.py
# git add e2e/astro-project/dags/example_dag_basic.py
# git commit -m "Simulate DAG update"
# - name: Deploy to Astro
# uses: ./
# with:
# deployment-id: ${{ secrets.DEPLOYMENT_ID }}
# workspace: ${{ secrets.WORKSPACE_ID }}
# parse: true
# root-folder: e2e/astro-project
# - name: Get Deployment Info After Test
# id: get-deployment-after
# uses: ./.github/workflows/e2e/get_deployment_info
# with:
# deployment_id: ${{ secrets.DEPLOYMENT_ID }}
# organization_id: ${{ secrets.ORGANIZATION_ID }}
# astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
# astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
# - name: Validate Deployment
# uses: ./.github/workflows/e2e/validate_deployment
# with:
# dag_tarball_version_before: ${{ steps.get-deployment-before.outputs.desired_dag_tarball_version }}
# image_version_before: ${{ steps.get-deployment-before.outputs.desired_image_version }}
# dag_tarball_version_after: ${{ steps.get-deployment-after.outputs.desired_dag_tarball_version }}
# image_version_after: ${{ steps.get-deployment-after.outputs.desired_image_version }}
# pytests-test:
# name: Pytest Test
# runs-on: ubuntu-latest
# needs: dag-deploy-test
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
# - name: Install dependencies
# run: |
# sudo apt-get install jq
# # we need to pre-install the CLI to set the context
# curl -sSL https://install.astronomer.io | sudo bash -s
# - name: Set CLI context
# run: astro context switch ${{ secrets.ASTRONOMER_HOST }}
# - name: Get Deployment Info Before Test
# id: get-deployment-before
# uses: ./.github/workflows/e2e/get_deployment_info
# with:
# deployment_id: ${{ secrets.DEPLOYMENT_ID }}
# organization_id: ${{ secrets.ORGANIZATION_ID }}
# astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
# astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
# - name: Run Pytest
# uses: ./
# with:
# deployment-id: ${{ secrets.DEPLOYMENT_ID }}
# workspace: ${{ secrets.WORKSPACE_ID }}
# pytest: true
# root-folder: e2e/astro-project
# - name: Get Deployment Info After Test
# id: get-deployment-after
# uses: ./.github/workflows/e2e/get_deployment_info
# with:
# deployment_id: ${{ secrets.DEPLOYMENT_ID }}
# organization_id: ${{ secrets.ORGANIZATION_ID }}
# astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
# astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
# - name: Validate Deployment
# uses: ./.github/workflows/e2e/validate_deployment
# with:
# dag_tarball_version_before: ${{ steps.get-deployment-before.outputs.desired_dag_tarball_version }}
# image_version_before: ${{ steps.get-deployment-before.outputs.desired_image_version }}
# dag_tarball_version_after: ${{ steps.get-deployment-after.outputs.desired_dag_tarball_version }}
# image_version_after: ${{ steps.get-deployment-after.outputs.desired_image_version }}
# custom-docker-image-test:
# name: Custom Docker Image Test
# runs-on: ubuntu-latest
# needs: dag-deploy-test
# steps:
# - name: Checkout code
# uses: actions/checkout@v2
# - name: Install dependencies
# run: |
# sudo apt-get install jq
# # we need to pre-install the CLI to set the context
# curl -sSL https://install.astronomer.io | sudo bash -s
# - name: Build Docker image
# run: cd e2e/astro-project && docker build -t custom-image:latest .
# - name: Set CLI context
# run: astro context switch ${{ secrets.ASTRONOMER_HOST }}
# - name: Get Deployment Info Before Test
# id: get-deployment-before
# uses: ./.github/workflows/e2e/get_deployment_info
# with:
# deployment_id: ${{ secrets.DEPLOYMENT_ID }}
# organization_id: ${{ secrets.ORGANIZATION_ID }}
# astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
# astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
# - name: Deploy to Astro
# uses: ./
# with:
# deployment-id: ${{ secrets.DEPLOYMENT_ID }}
# workspace: ${{ secrets.WORKSPACE_ID }}
# image-name: custom-image:latest
# root-folder: e2e/astro-project
# - name: Get Deployment Info After Test
# id: get-deployment-after
# uses: ./.github/workflows/e2e/get_deployment_info
# with:
# deployment_id: ${{ secrets.DEPLOYMENT_ID }}
# organization_id: ${{ secrets.ORGANIZATION_ID }}
# astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
# astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
# - name: Validate Deployment
# uses: ./.github/workflows/e2e/validate_deployment
# with:
# dag_tarball_version_before: ${{ steps.get-deployment-before.outputs.desired_dag_tarball_version }}
# image_version_before: ${{ steps.get-deployment-before.outputs.desired_image_version }}
# dag_tarball_version_after: ${{ steps.get-deployment-after.outputs.desiredDagTarballVersion }}
# image_version_after: ${{ steps.get-deployment-after.outputs.desired_image_version }}
deployment-preview-test:
name: Deployment Preview Test
runs-on: ubuntu-latest
# needs: custom-docker-image-test
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install dependencies
id: install-pre-reqs
run: |
sudo apt-get install jq
# we need to pre-install the CLI to set the context
curl -sSL https://install.astronomer.io | sudo bash -s
echo "preview_id=$(( RANDOM % 1000 ))" >> GITHUB_ENV
- name: Set CLI context
run: astro context switch ${{ secrets.ASTRONOMER_HOST }}
- name: Create Deployment Preview
id: create-preview
uses: ./
with:
deployment-id: ${{ secrets.DEPLOYMENT_ID }}
workspace: ${{ secrets.WORKSPACE_ID }}
action: create-deployment-preview
preview-name: test-preview-${{ steps.install-pre-reqs.outputs.preview-id }}
root-folder: e2e/astro-project
- name: Get Deployment Info Before Test
id: get-deployment-before
uses: ./.github/workflows/e2e/get_deployment_info
with:
deployment_id: ${{ steps.create-preview.outputs.preview-id }}
organization_id: ${{ secrets.ORGANIZATION_ID }}
astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
- name: Deploy to Deployment Preview
id: deploy-preview
uses: ./
with:
deployment-id: ${{ steps.create-preview.outputs.preview-id }}
workspace: ${{ secrets.WORKSPACE_ID }}
action: deploy-deployment-preview
root-folder: e2e/astro-project
preview-name: test-preview-${{ steps.install-pre-reqs.outputs.preview-id }}
- name: Get Deployment Info After Test
id: get-deployment-after
uses: ./.github/workflows/e2e/get_deployment_info
with:
deployment_id: ${{ steps.deploy-preview.outputs.preview-id }}
organization_id: ${{ secrets.ORGANIZATION_ID }}
astro_api_token: ${{ secrets.ASTRO_API_TOKEN }}
astronomer_host: ${{ secrets.ASTRONOMER_HOST }}
- name: Validate Deployment
uses: ./.github/workflows/e2e/validate_deployment
with:
dag_tarball_version_before: ${{ steps.get-deployment-before.outputs.desired_dag_tarball_version }}
image_version_before: ${{ steps.get-deployment-before.outputs.desired_image_version }}
dag_tarball_version_after: ${{ steps.get-deployment-after.outputs.desired_dag_tarball_version }}
image_version_after: ${{ steps.get-deployment-after.outputs.desired_image_version }}
- name: Delete Deployment Preview
id: delete-preview
uses: ./
with:
deployment-id: ${{ steps.create-preview.outputs.preview-id }}
workspace: ${{ secrets.WORKSPACE_ID }}
action: delete-deployment-preview
- name: Validate Deployment Preview Deletion
run: echo "Deployment preview deleted successfully."