Browse Source

Initial commit

remotes/github-test/main
Dmitriy Kaurov 3 years ago committed by GitHub
commit
1d162e0cde
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 78
      .github/workflows/runtests.yml
  2. 19
      .gitignore
  3. 20
      README.md

78
.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

19
.gitignore vendored

@ -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

20
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`
Затем добавьте полученные изменения в свой репозиторий.
Loading…
Cancel
Save