CMD Challenge
This repository contains the code for the site cmdchallenge.com
Installation
- Install Docker
- Install
asdf asdf installdocker pull registry.gitlab.com/jarv/cmdchallenge/cmddocker 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.