Skip to content

Nightly Release Tests #126

Nightly Release Tests

Nightly Release Tests #126

name: Nightly Release Tests
on:
workflow_dispatch:
schedule:
# Run every night at 2 AM UTC
- cron: '0 2 * * *'
jobs:
not-cluster-tests:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Release Testing
uses: ./.github/workflows/setup_release_testing
with:
AWS_OSS_ROLE_ARN: ${{ secrets.AWS_OSS_ROLE_ARN }}
DEV_AWS_ACCESS_KEY: ${{ secrets.DEV_AWS_ACCESS_KEY }}
DEV_AWS_SECRET_KEY: ${{ secrets.DEV_AWS_SECRET_KEY }}
KUBECONFIG: ${{ secrets.KUBECONFIG }}
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
CI_ACCOUNT_TOKEN: ${{ secrets.CI_ACCOUNT_TOKEN }}
CI_ACCOUNT_USERNAME: ${{ secrets.CI_ACCOUNT_USERNAME }}
API_SERVER_URL: ${{ env.API_SERVER_URL }}
- name: Run not cluster tests
env:
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}
TEST_USERNAME: ${{ secrets.TEST_USERNAME }}
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_TOKEN }}
ORG_MEMBER_USERNAME: ${{ secrets.ORG_MEMBER_USERNAME }}
run: pytest --level release tests -k "not cluster" --detached
timeout-minutes: 180
- name: Teardown all clusters
if: always()
run: |
sky status
sky down --all -y
sky status
cluster-tests:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Release Testing
uses: ./.github/workflows/setup_release_testing
with:
AWS_OSS_ROLE_ARN: ${{ secrets.AWS_OSS_ROLE_ARN }}
DEV_AWS_ACCESS_KEY: ${{ secrets.DEV_AWS_ACCESS_KEY }}
DEV_AWS_SECRET_KEY: ${{ secrets.DEV_AWS_SECRET_KEY }}
KUBECONFIG: ${{ secrets.KUBECONFIG }}
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
CI_ACCOUNT_TOKEN: ${{ secrets.CI_ACCOUNT_TOKEN }}
CI_ACCOUNT_USERNAME: ${{ secrets.CI_ACCOUNT_USERNAME }}
API_SERVER_URL: ${{ env.API_SERVER_URL }}
- name: Run cluster and not on-demand tests
env:
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}
TEST_USERNAME: ${{ secrets.TEST_USERNAME }}
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_TOKEN }}
ORG_MEMBER_USERNAME: ${{ secrets.ORG_MEMBER_USERNAME }}
run: pytest --level release tests -k "cluster and not ondemand" --detached
timeout-minutes: 180
- name: Teardown all cluster-tests clusters
if: always()
run: |
sky status
sky down --all -y
sky status
ondemand-aws-tests:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Release Testing
uses: ./.github/workflows/setup_release_testing
with:
AWS_OSS_ROLE_ARN: ${{ secrets.AWS_OSS_ROLE_ARN }}
DEV_AWS_ACCESS_KEY: ${{ secrets.DEV_AWS_ACCESS_KEY }}
DEV_AWS_SECRET_KEY: ${{ secrets.DEV_AWS_SECRET_KEY }}
KUBECONFIG: ${{ secrets.KUBECONFIG }}
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
CI_ACCOUNT_TOKEN: ${{ secrets.CI_ACCOUNT_TOKEN }}
CI_ACCOUNT_USERNAME: ${{ secrets.CI_ACCOUNT_USERNAME }}
API_SERVER_URL: ${{ env.API_SERVER_URL }}
- name: Run on-demand aws tests
env:
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}
TEST_USERNAME: ${{ secrets.TEST_USERNAME }}
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_TOKEN }}
ORG_MEMBER_USERNAME: ${{ secrets.ORG_MEMBER_USERNAME }}
run: pytest --level release tests -k "ondemand_aws_docker_cluster" --detached
timeout-minutes: 180
- name: Teardown all ondemand-aws-tests clusters
if: always()
run: |
sky status
sky down --all -y
sky status
ondemand-gcp-tests:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Release Testing
uses: ./.github/workflows/setup_release_testing
with:
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
KUBECONFIG: ${{ secrets.KUBECONFIG }}
AWS_OSS_ROLE_ARN: ${{ secrets.AWS_OSS_ROLE_ARN }}
DEV_AWS_ACCESS_KEY: ${{ secrets.DEV_AWS_ACCESS_KEY }}
DEV_AWS_SECRET_KEY: ${{ secrets.DEV_AWS_SECRET_KEY }}
CI_ACCOUNT_TOKEN: ${{ secrets.CI_ACCOUNT_TOKEN }}
CI_ACCOUNT_USERNAME: ${{ secrets.CI_ACCOUNT_USERNAME }}
API_SERVER_URL: ${{ env.API_SERVER_URL }}
- name: Run on-demand gcp tests
env:
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}
TEST_USERNAME: ${{ secrets.TEST_USERNAME }}
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_TOKEN }}
ORG_MEMBER_USERNAME: ${{ secrets.ORG_MEMBER_USERNAME }}
run: pytest --level release tests -k "ondemand_gcp_cluster" --detached
timeout-minutes: 180
- name: Teardown all ondemand-gcp-tests clusters
if: always()
run: |
sky status
sky down --all -y
sky status
kubernetes-tests:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Release Testing
uses: ./.github/workflows/setup_release_testing
with:
KUBECONFIG: ${{ secrets.KUBECONFIG }}
AWS_OSS_ROLE_ARN: ${{ secrets.AWS_OSS_ROLE_ARN }}
DEV_AWS_ACCESS_KEY: ${{ secrets.DEV_AWS_ACCESS_KEY }}
DEV_AWS_SECRET_KEY: ${{ secrets.DEV_AWS_SECRET_KEY }}
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
CI_ACCOUNT_TOKEN: ${{ secrets.CI_ACCOUNT_TOKEN }}
CI_ACCOUNT_USERNAME: ${{ secrets.CI_ACCOUNT_USERNAME }}
API_SERVER_URL: ${{ env.API_SERVER_URL }}
- name: Run kubernetes tests
env:
TEST_TOKEN: ${{ secrets.TEST_TOKEN }}
TEST_USERNAME: ${{ secrets.TEST_USERNAME }}
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_TOKEN }}
ORG_MEMBER_USERNAME: ${{ secrets.ORG_MEMBER_USERNAME }}
run: pytest --level release tests -k "ondemand_k8s_cluster" --detached
timeout-minutes: 180
- name: Teardown all kubernetes-tests clusters
if: always()
run: |
sky status
sky down --all -y
sky status
check-cluster-status:
if: always()
needs:
- not-cluster-tests
- cluster-tests
- ondemand-aws-tests
- ondemand-gcp-tests
- kubernetes-tests
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- name: Check out repository code
uses: actions/checkout@v3
- name: Setup Release Testing
uses: ./.github/workflows/setup_release_testing
with:
KUBECONFIG: ${{ secrets.KUBECONFIG }}
AWS_OSS_ROLE_ARN: ${{ secrets.AWS_OSS_ROLE_ARN }}
DEV_AWS_ACCESS_KEY: ${{ secrets.DEV_AWS_ACCESS_KEY }}
DEV_AWS_SECRET_KEY: ${{ secrets.DEV_AWS_SECRET_KEY }}
GCP_SERVICE_ACCOUNT_KEY: ${{ secrets.GCP_SERVICE_ACCOUNT_KEY }}
GCP_PROJECT_ID: ${{ secrets.GCP_PROJECT_ID }}
CI_ACCOUNT_TOKEN: ${{ secrets.CI_ACCOUNT_TOKEN }}
CI_ACCOUNT_USERNAME: ${{ secrets.CI_ACCOUNT_USERNAME }}
API_SERVER_URL: ${{ env.API_SERVER_URL }}
- name: Wait to check cluster status
run: sleep 600 # 10 minutes
- name: Check cluster status
run: sky status