Skip to content

LAB5_Set secrets in GitHub for CI CD

David Jones-Gilardi edited this page Feb 16, 2021 · 19 revisions

⚒️ Set secrets in GitHub for CI/CD

Objectives

In this step, we will:

  • Set Github secrets to allow database connectivity for CI/CD actions

We will cover:

  1. Configure secrets in GitHub
  2. Verify your secrets

1. Configure secrets in GitHub

Every application should have a CI/CD (Continuous Integration, Continuous Deployment) pipeline. This allows for quick iteration of changes to production deployment by taking advantage of automation and tests to ensure everything is working properly.

After each commit a workflow is initialized to BUILD your project, EXECUTE tests and DEPLOY to Netlify. The good thing is many CI/CD tools are provided right within GitHub. Adding this capability just takes a couple steps.

✅ Step 1a: Create a secret for each environment variable set in the .env file

In this step, we'll use the same exact environment variables we just set in our applications's .env file and copy each as a separate secret in GitHub. You can open up your .env file in an editor and copy the values exactly as you see them.

✅ 1. Within YOUR Battlestax repository in GitHub click on Settings in the top toolbar.

✅ 2. Choose Secrets from the menu on the left.

✅ 3. Finally click the New repository secret button on the top right of the page for each of the variables we used earlier.

Netlify Setup Example

You should repeat this step for each of the variables listed below.

ASTRA_DB_USERNAME=battle_user
ASTRA_DB_PASSWORD=battle_password1
ASTRA_DB_KEYSPACE=battlestax
ASTRA_DB_ID=[the value you retrieved above from YOUR database]
ASTRA_DB_REGION=[the value you retrieved above from YOUR database]
GAMES_COLLECTION=games

These values are used to connect unit and functional tests defined in your GitHub actions and application to the database when they execute. Since the database is needed for our application to fully function, our tests expect database connectivity to pass.

2. Verify your secrets

This should look like:

Netlify Setup Example

Clone this wiki locally