commit 1d162e0cdece3dc59b9fdd082c8c56d679424aee Author: Dmitriy Kaurov <108007263+redmaycry@users.noreply.github.com> Date: Tue Oct 25 14:45:12 2022 +0300 Initial commit diff --git a/.github/workflows/runtests.yml b/.github/workflows/runtests.yml new file mode 100644 index 0000000..fa06dff --- /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: echo Ain\'t no ssp yet + + #- 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 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..117b9a6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,19 @@ +# Binaries for programs and plugins +*.exe +*.exe~ +*.dll +*.so +*.dylib + +# Test binary, built with `go test -c` +*.test + +# Output of the go coverage tool, specifically when used with LiteIDE +*.out + +# Dependency directories (remove the comment below to include it) +vendor/ + +# IDEs directories +.idea +.vscode diff --git a/README.md b/README.md new file mode 100644 index 0000000..2b6802a --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +Репозиторий с настроенными тестами задания на вакансию Go Junior Developer. + +Вам нужно: +- создать новый репозиторий, используя этот как шаблон (зелёная кнопка Use this template) +- чуть-чуть поправить файл `.github/workflows/runtests.yml` - добавить в него команду сборки бинарника вашего решения, так, чтобы он оказался по пути `builds/ssp` +- раскомментировать строчки в воркфлоу, которые разрешают запускать builds/ssp (`chmod +x builds/ssp`) + +Дальше, по идее, можно наслаждаться тестами при каждом обновлении кода в ветке `main` + +### Обновление шаблона + +Чтобы иметь возможность получать обновления автотестов и других частей шаблона, выполните команду: + +`git remote add -m main template https://github.com/dimashepelev/ssp-testbed.git` + +Для обновления кода автотестов выполните команду: + +`git fetch template && git checkout template/main .github` + +Затем добавьте полученные изменения в свой репозиторий.