From 6e042d5c33f29b045c4c05f855bab095c3655a66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Sat, 22 Oct 2022 14:42:36 +0300 Subject: [PATCH] Add workflow --- .github/workflows/runtests.yml | 78 ++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 .github/workflows/runtests.yml diff --git a/.github/workflows/runtests.yml b/.github/workflows/runtests.yml new file mode 100644 index 0000000..47c0b8a --- /dev/null +++ b/.github/workflows/runtests.yml @@ -0,0 +1,78 @@ +# 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" ] + 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 + + # 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