Files
hatchet/.github/workflows/test.yml
T
abelanger5 78685d0098 feat(security): multiple encryption options, API tokens, easier setup (#125)
* (wip) encryption

* feat: api tokens

* chore: add api token generation command

* fix: e2e tests

* chore: set timeout for e2e job

* fix: e2e tests, remove client-side certs

* chore: address PR review comments

* fix: token tests

* chore: address review comments and fix tests
2024-01-26 15:38:36 -05:00

171 lines
3.9 KiB
YAML

name: test
on: pull_request
jobs:
generate:
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://hatchet:hatchet@127.0.0.1:5431/hatchet
steps:
- uses: actions/checkout@v4
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "25.2"
- name: Install Task
uses: arduino/setup-task@v1
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21"
- name: Setup pnpm
uses: pnpm/action-setup@v2
with:
version: 8
run_install: false
- name: Compose
run: docker compose up -d
- name: Generate
run: |
go run github.com/steebchen/prisma-client-go db push --skip-generate
task generate
- name: Check for diff
run: git diff --exit-code
- name: Teardown
run: docker compose down
unit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "25.1"
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21"
- name: Go deps
run: go mod download
- name: Generate
run: go generate ./...
- name: Test
run: go test ./... -v -failfast
integration:
runs-on: ubuntu-latest
env:
DATABASE_URL: postgresql://hatchet:hatchet@127.0.0.1:5431/hatchet
steps:
- uses: actions/checkout@v4
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "25.1"
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21"
- name: Compose
run: docker compose up -d
- name: Go deps
run: go mod download
- name: Generate
run: go run github.com/steebchen/prisma-client-go db push
- name: Test
run: go test -tags integration ./... -v -failfast
- name: Teardown
run: docker compose down
e2e:
runs-on: ubuntu-latest
timeout-minutes: 5
env:
DATABASE_URL: postgresql://hatchet:hatchet@127.0.0.1:5431/hatchet
steps:
- uses: actions/checkout@v4
- name: Install Task
uses: arduino/setup-task@v1
- name: Install Protoc
uses: arduino/setup-protoc@v2
with:
version: "25.1"
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.21"
- name: Compose
run: docker compose up -d
- name: Go deps
run: go mod download
- name: Generate
run: |
go run github.com/steebchen/prisma-client-go db push
task generate-certs
- name: Prepare
run: |
cat > .env <<EOF
DATABASE_URL='postgresql://hatchet:hatchet@127.0.0.1:5431/hatchet'
SERVER_TLS_CERT_FILE=./hack/dev/certs/cluster.pem
SERVER_TLS_KEY_FILE=./hack/dev/certs/cluster.key
SERVER_TLS_ROOT_CA_FILE=./hack/dev/certs/ca.cert
SERVER_PORT=8080
SERVER_URL=https://app.dev.hatchet-tools.com
SERVER_AUTH_COOKIE_SECRETS="something something"
SERVER_AUTH_COOKIE_DOMAIN=app.dev.hatchet-tools.com
SERVER_AUTH_COOKIE_INSECURE=false
SERVER_AUTH_SET_EMAIL_VERIFIED=true
EOF
- name: Run engine
run: |
set -a
. .env
set +a
go run ./cmd/hatchet-admin quickstart
go run ./cmd/hatchet-engine --config ./generated/ &
go run ./cmd/hatchet-api --config ./generated/ &
sleep 30
- name: Test
run: |
export HATCHET_CLIENT_TOKEN="$(go run ./cmd/hatchet-admin token create --config ./generated/ --tenant-id 707d0855-80ab-4e1f-a156-f1c4546cbf52)"
go test -tags e2e ./... -p 1 -v -failfast
- name: Teardown
run: docker compose down