Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save percybolmer/c9a60a819f849d6dfe9dd11f48245605 to your computer and use it in GitHub Desktop.
Save percybolmer/c9a60a819f849d6dfe9dd11f48245605 to your computer and use it in GitHub Desktop.
# This is a basic workflow to help you get started with Actions
name: build and test
# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
#Add services, aka Docker containers that runs in paralell
services:
#Name the service
postgres:
#Set the Docker image to use, find images on Dockerhub.com
image: postgres:12
# Set environment variables
env:
POSTGRES_USER: user
POSTGRES_PASSWORD: qwerty
POSTGRES_DB: workflow
# Expose ports
ports:
- 5432:5432
# Add some health options to make sure PostgreSQL is running fully before moving on
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2
# Sets up and installs Golang
- name: Setup Go environment
uses: actions/[email protected]
# Go get to fetch external dependecny like the PostgeSQL driver
- name: go get
run: go get -v -t -d ./...
# Run the go compile tooling using command line go build
- name: Build
run: go build
# Run unit tests that are available
- name: Test
# Notice the | ? This is used to run MULTIPLE command lines in one run.
run: |
go test -v
echo Complete
# The tests are using environment variables so we need to add those
env:
POSTGRES_HOST: localhost
POSTGRES_USER: user
POSTGRES_PASS: qwerty
POSTGRES_PORT: 5432
POSTGRES_DB: workflow
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment