|
|
|
# This is a basic workflow to help you get started with Actions
|
|
|
|
|
|
|
|
name: CI
|
|
|
|
|
|
|
|
# Controls when the workflow will run
|
|
|
|
on:
|
|
|
|
# Triggers the workflow on push or pull request events but only for the "main" branch
|
|
|
|
push:
|
|
|
|
branches: [ "main", "master" ]
|
|
|
|
pull_request:
|
|
|
|
branches: [ "main", "master" ]
|
|
|
|
|
|
|
|
# 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
|
|
|
|
|
|
|
|
# Steps represent a sequence of tasks that will be executed as part of the job
|
|
|
|
steps:
|
|
|
|
- uses: actions/checkout@v3
|
|
|
|
|
|
|
|
- name: Set up Go
|
|
|
|
uses: actions/setup-go@v3
|
|
|
|
with:
|
|
|
|
go-version: 1.19
|
|
|
|
check-latest: true
|
|
|
|
|
|
|
|
- name: Create dir for binaries
|
|
|
|
run: mkdir builds
|
|
|
|
|
|
|
|
- name: Download DSP binary
|
|
|
|
run: curl -o builds/dsp https://dummy-dsp.s3.eu-central-1.amazonaws.com/dsp
|
|
|
|
|
|
|
|
- name: Making it executable
|
|
|
|
run: chmod +x builds/dsp
|
|
|
|
|
|
|
|
- name: Download tests binary
|
|
|
|
run: curl -o builds/tests https://dummy-dsp.s3.eu-central-1.amazonaws.com/tests
|
|
|
|
|
|
|
|
- name: Making it executable
|
|
|
|
run: chmod +x builds/tests
|
|
|
|
|
|
|
|
# your code must be built into builds/ssp binary
|
|
|
|
- name: Build SSP binary
|
|
|
|
run: go build -o builds/ssp cmd/main.go
|
|
|
|
|
|
|
|
- name: Making it executable
|
|
|
|
run: chmod +x builds/ssp
|
|
|
|
|
|
|
|
# run a battery of tests
|
|
|
|
- name: happy path
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_HappyPath) && sleep 1
|
|
|
|
|
|
|
|
- name: not totally happy path, easy difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_LessHappyEasy) && sleep 1
|
|
|
|
|
|
|
|
- name: not totally happy path, medium difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_LessHappyMedium) && sleep 1
|
|
|
|
|
|
|
|
- name: not totally happy path, hard difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_LessHappyHard) && sleep 1
|
|
|
|
|
|
|
|
- name: not happy at all, easy difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_NotHappyEasy) && sleep 1
|
|
|
|
|
|
|
|
- name: not happy at all, medium difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_NotHappyMedium) && sleep 1
|
|
|
|
|
|
|
|
- name: not happy at all, hard difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_NotHappyHard) && sleep 1
|
|
|
|
|
|
|
|
- name: not happy at all, hardcore difficulty
|
|
|
|
run: (cd builds && ./tests -test.v -test.run Test_NotHappyHardcore) && sleep 1
|