CMD Challenge
This repository contains the code for the site cmdchallenge.com
Installation
- Install Docker
- Install
asdf
asdf install
docker pull registry.gitlab.com/jarv/cmdchallenge/cmd
docker pull registry.gitlab.com/jarv/cmdchallenge/cmd-no-bin
Testing
make test
Local development
Backend
Start the backend which will also initialize a new sqlite database in the cmdchallenge/
directory.
If you want to use the test in-memory database use the -dev
flag.
make build-image-cmd # builds the docker images for the runner
go run cmdchallenge/cmd/serve.go
Test a single command:
curl http://localhost:8181/c/r -X POST -F slug=hello_world -F cmd="echo hello world"
Fetch solutions:
curl http://localhost:8181/c/s?slug=hello_world
Frontend
Most of the logic is coded in src/cmdchallenge.js
, to compile run:
npx webpack
To start the development webserver:
make serve
CI vars
The following CI vars are necessary to run the full pipeline
AWS_ACCESS_KEY_ID
: Access key for AWSAWS_SECRET_ACCESS_KEY
: Secret key for AWSSTATE_S3_BUCKET
: where to store Terraform stateSTATE_S3_KEY
: key for storing stateSTATE_S3_REGION
: region for deploymentSSH_PRIVATE_KEY
: Private SSH key for the remote Docker machineSSH_PUBLIC_KEY
: Public SSH key for the remote Docker machine
Bugs / Suggestions
- Open a GitLab issue.