▀▀█ ▀ ▄ ▄▄ ▄▄▄ █ ▄ ▄ ▄▄▄ █▀ ▀ █▀ █ █ █ █ █ █ █▀▀▀▀ █ █ █ █ █ ▀█▄▄▀ ▀▄▄ ▀▄▄▀█ ▄▄█▄▄
relui is a web interface for managing the release process of Go.
Run the command with the appropriate libpq-style environment variables set.
PGHOST=localhost PGDATABASE=relui-dev PGUSER=postgres go run . -listen-http=localhost:8080
Alternatively, using docker:
make dev
Set your personal Google Cloud Project.
gcloud config set project PROJECT_ID
Enable the Cloud Build API from your project.
gcloud services enable cloudbuild.googleapis.com
Create a GCS bucket in your project.
gcloud storage buckets create gs://GCS_BUCKET_NAME
Run relui with additional parameters -cloud-build-project
and -scratch-files-base
. The local relui will run cloud build in you project and copy the results to your GCS bucket.
PGHOST=localhost PGDATABASE=relui-dev PGUSER=postgres go run . -listen-http=localhost:8080 -cloud-build-project PROJECT_ID -scratch-files-base gs://GCS_BUCKET_NAME
Create or edit SQL files in internal/relui/queries
. After editing the query, run sqlc generate
in this directory. The internal/relui/db
package contains the generated code.
See sqlc documentation for further details.
Migrations are managed using github.com/golang-migrate/migrate
.
go run -tags pgx github.com/golang-migrate/migrate/v4/cmd/migrate \ create \ --dir ../../internal/relui/migrations/ \ -ext sql \ my_fancy_migration # alternatively, install the migrate command with pgx support.
Migrations are automatically ran on application launch. “Down” migrations are not automatically run and must be manually invoked in psql
, or by the --migrate-down-up
flag or make migrate-down-up
.
Run go test with the appropriate libpq-style environment variables set. If the database connection fails, database integration tests will be skipped. If PGDATABASE is unset, relui-test is created, migrated, and used by default.
PGHOST=localhost PGUSER=postgres go test -v ./... ../../internal/relui/...
Alternatively, using docker:
make test
See the documentation on deployment.
This project uses eslint and stylelint to format JavaScript and CSS files.
To run:
npm run lint
Alternatively, using Docker:
make lint