Nightly Release Tests #138
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: 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 }} | |
DEN_TESTER_TOKEN: ${{ secrets.DEN_TESTER_PROD_TOKEN }} | |
DEN_TESTER_USERNAME: ${{ secrets.DEN_TESTER_USERNAME }} | |
API_SERVER_URL: ${{ env.API_SERVER_URL }} | |
- name: Run not cluster tests | |
env: | |
KITCHEN_TESTER_TOKEN: ${{ secrets.KITCHEN_TESTER_PROD_TOKEN }} | |
KITCHEN_TESTER_USERNAME: ${{ secrets.KITCHEN_TESTER_USERNAME }} | |
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_PROD_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 }} | |
DEN_TESTER_TOKEN: ${{ secrets.DEN_TESTER_PROD_TOKEN }} | |
DEN_TESTER_USERNAME: ${{ secrets.DEN_TESTER_USERNAME }} | |
API_SERVER_URL: ${{ env.API_SERVER_URL }} | |
- name: Run cluster and not on-demand tests | |
env: | |
KITCHEN_TESTER_TOKEN: ${{ secrets.KITCHEN_TESTER_PROD_TOKEN }} | |
KITCHEN_TESTER_USERNAME: ${{ secrets.KITCHEN_TESTER_USERNAME }} | |
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_PROD_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 }} | |
DEN_TESTER_TOKEN: ${{ secrets.DEN_TESTER_PROD_TOKEN }} | |
DEN_TESTER_USERNAME: ${{ secrets.DEN_TESTER_USERNAME }} | |
API_SERVER_URL: ${{ env.API_SERVER_URL }} | |
- name: Run on-demand aws tests | |
env: | |
KITCHEN_TESTER_TOKEN: ${{ secrets.KITCHEN_TESTER_PROD_TOKEN }} | |
KITCHEN_TESTER_USERNAME: ${{ secrets.KITCHEN_TESTER_USERNAME }} | |
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_PROD_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 }} | |
DEN_TESTER_TOKEN: ${{ secrets.DEN_TESTER_PROD_TOKEN }} | |
DEN_TESTER_USERNAME: ${{ secrets.DEN_TESTER_USERNAME }} | |
API_SERVER_URL: ${{ env.API_SERVER_URL }} | |
- name: Run on-demand gcp tests | |
env: | |
KITCHEN_TESTER_TOKEN: ${{ secrets.KITCHEN_TESTER_PROD_TOKEN }} | |
KITCHEN_TESTER_USERNAME: ${{ secrets.KITCHEN_TESTER_USERNAME }} | |
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_PROD_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 }} | |
DEN_TESTER_TOKEN: ${{ secrets.DEN_TESTER_PROD_TOKEN }} | |
DEN_TESTER_USERNAME: ${{ secrets.DEN_TESTER_USERNAME }} | |
API_SERVER_URL: ${{ env.API_SERVER_URL }} | |
- name: Run kubernetes tests | |
env: | |
KITCHEN_TESTER_TOKEN: ${{ secrets.KITCHEN_TESTER_PROD_TOKEN }} | |
KITCHEN_TESTER_USERNAME: ${{ secrets.KITCHEN_TESTER_USERNAME }} | |
ORG_MEMBER_TOKEN: ${{ secrets.ORG_MEMBER_PROD_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 }} | |
DEN_TESTER_TOKEN: ${{ secrets.DEN_TESTER_PROD_TOKEN }} | |
DEN_TESTER_USERNAME: ${{ secrets.DEN_TESTER_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 |