Actions: Mute updates in production #176
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: 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@v3 | |
- 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" | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
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/auth@v1 | |
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/setup-gcloud@v1 | |
- name: Deploy to Staging and Test | |
run: | | |
declare -a args=( | |
kernelci-staging "" 1 | |
--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 | |
deploy_to_production: | |
needs: deploy_to_staging | |
runs-on: ubuntu-latest | |
environment: production | |
concurrency: production | |
steps: | |
- uses: actions/checkout@v3 | |
- 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" | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
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/auth@v1 | |
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/setup-gcloud@v1 | |
- name: Deploy Playground | |
run: | | |
declare -a args=( | |
kernelci-production "playground" 1 | |
--smtp-mocked | |
--optimize=2 | |
) | |
./cloud deploy "${args[@]}" -v | |
- name: Deploy Production | |
run: | | |
declare -a args=( | |
kernelci-production "" 1 | |
# Mute updates until we clear the queue | |
--mute-updates | |
--extra-cc=kernelci-results-staging@groups.io | |
) | |
./cloud deploy "${args[@]}" -v |