Skip to content

cloud: Work around broken unauthenticated functions #271

cloud: Work around broken unauthenticated functions

cloud: Work around broken unauthenticated functions #271

Workflow file for this run

name: deploy
"on":
push:
branches: [main]
workflow_dispatch: {}
jobs:
test:
uses: kernelci/kcidb/.github/workflows/test.yml@main
secrets:
GCLOUD_PROJECT: ${{ secrets.GCLOUD_PROJECT }}
GCLOUD_SA_KEY: ${{ secrets.GCLOUD_SA_KEY }}
deploy_to_staging:
needs: test
runs-on: ubuntu-latest
environment: staging
concurrency: staging
steps:
- uses: actions/checkout@v4
- name: Check credentials
env:
GCLOUD_PROJECT: ${{ secrets.GCLOUD_PROJECT }}
GCLOUD_SA_KEY: ${{ secrets.GCLOUD_SA_KEY }}
run: |
# Check credentials
CREDENTIALS_PRESENT=true
function check() {
if eval "test -z \"\$$1\""; then
echo "$1 secret is missing." >&2
CREDENTIALS_PRESENT=false
fi
}
check GCLOUD_PROJECT
check GCLOUD_SA_KEY
if "$CREDENTIALS_PRESENT"; then
echo "All required credentials are present, continuing." >&2
else
echo "Required credentials are missing, aborting." >&2
fi
"$CREDENTIALS_PRESENT"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install
run: |
python -m pip install --upgrade pip setuptools
pip3 install --upgrade '.[dev]'
- name: Authenticate to Google Cloud
id: auth
uses: google-github-actions/[email protected]
with:
project_id: ${{ secrets.GCLOUD_PROJECT }}
credentials_json: ${{ secrets.GCLOUD_SA_KEY }}
create_credentials_file: true
export_environment_variables: true
- name: Setup Google Cloud SDK
uses: google-github-actions/[email protected]
- name: Deploy to Staging and Test
run: |
declare -a args=(
kernelci-staging ""
--smtp-mocked
)
./cloud deploy "${args[@]}" -v
KCIDB_DEPLOYMENT="This deployment is empty" \
./cloud shell "${args[@]}" --heavy-asserts -- \
pytest --tb=native --verbosity=2 --log-level=DEBUG \
--durations=0 --durations-min=1
deploy_to_production:
needs: deploy_to_staging
runs-on: ubuntu-latest
environment: production
concurrency: production
steps:
- uses: actions/checkout@v4
- name: Check credentials
env:
GCLOUD_PROJECT: ${{ secrets.GCLOUD_PROJECT }}
GCLOUD_SA_KEY: ${{ secrets.GCLOUD_SA_KEY }}
run: |
# Check credentials
CREDENTIALS_PRESENT=true
function check() {
if eval "test -z \"\$$1\""; then
echo "$1 secret is missing." >&2
CREDENTIALS_PRESENT=false
fi
}
check GCLOUD_PROJECT
check GCLOUD_SA_KEY
if "$CREDENTIALS_PRESENT"; then
echo "All required credentials are present, continuing." >&2
else
echo "Required credentials are missing, aborting." >&2
fi
"$CREDENTIALS_PRESENT"
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: 3.9
- name: Install
run: |
python -m pip install --upgrade pip setuptools
pip3 install --upgrade '.[dev]'
- name: Authenticate to Google Cloud
id: auth
uses: google-github-actions/[email protected]
with:
project_id: ${{ secrets.GCLOUD_PROJECT }}
credentials_json: ${{ secrets.GCLOUD_SA_KEY }}
create_credentials_file: true
export_environment_variables: true
- name: Setup Google Cloud SDK
uses: google-github-actions/[email protected]
- name: Deploy Playground
run: |
declare -a args=(
kernelci-production "playground"
--smtp-mocked
--optimize=2
)
./cloud deploy "${args[@]}" -v
- name: Deploy Production
run: |
declare -r cost_thresholds_json='[
100,
200,
300,
400,
500,
600,
700,
800,
900,
[1000, "./cloud shutdown kernelci-production \"\" -v"]
]'
declare -a args=(
kernelci-production ""
--grafana-url=https://kcidb.kernelci.org
--grafana-public
--grafana-anonymous
[email protected]
--cost-thresholds="$cost_thresholds_json"
)
./cloud deploy "${args[@]}" -v