woodpecker/web
Anbraten ed6d3f3cea
Use go embed for web files and remove httptreemux (#382)
- replace togo with go embed
- replace httptreemux with gin

closes #308
2021-09-29 17:34:56 +02:00
..
dist Use go embed for web files and remove httptreemux (#382) 2021-09-29 17:34:56 +02:00
src Remove push, tag and deployment webhook filters (#281) 2021-09-18 16:28:35 +02:00
vendor/drone-js Ran npx prettier --write "**/*.js" "*.js" 2019-11-15 10:46:33 +01:00
.babelrc Pull in frontend 2019-11-12 14:27:39 +01:00
.eslintrc.js Updated project linter rules and ran it 2019-11-15 10:50:46 +01:00
.lesshintrc Pull in frontend 2019-11-12 14:27:39 +01:00
LICENSE Pull in frontend 2019-11-12 14:27:39 +01:00
package-lock.json Revert "Bump webpack-dev-server from 2.11.5 to 3.1.11 in /web" 2021-02-26 08:49:19 +01:00
package.json Fix lint 2021-05-27 07:06:55 +02:00
README.md Pull in frontend 2019-11-12 14:27:39 +01:00
web.go Use go embed for web files and remove httptreemux (#382) 2021-09-29 17:34:56 +02:00
webpack.config.js Use go embed for web files and remove httptreemux (#382) 2021-09-29 17:34:56 +02:00
yarn.lock [multipipeline-group-ui] yarn install 2021-03-04 19:10:57 +01:00

This project contains the source code for the drone user interface. The generated javascript and css assets are embedded into a Go source file which is imported into the main drone application, using go get.

Building

To compile the source and create minified css and javascript assets:

yarn install    # install project dependencies

yarn run format # formats the codebase
yarn run lint   # lints the codebase
yarn run test   # tests the codebase
yarn run build  # builds the production bundle

Running

To run a devserver with watching, hotreloading and proxy to drone server:

export DRONE_SERVER=<drone server>
export DRONE_TOKEN=<drone api token>

yarn run start

For example:

export DRONE_SERVER=http://your.drone.server
export DRONE_TOKEN=eyJhbGciOiJIUzI1NiIsIn...

yarn run start

Note you will need to retrieve your drone user token from the tokens screen in the drone user interface. When the server is running you can open the following url in your browser:

http://localhost:9999

Releases

To bundle and embed the code in a Go source file install the following command line utility:

go get github.com/bradrydzewski/togo

To generate the Go source file run the following command:

go generate ./...
go install ./...

Note that for security reasons we will not accept a pull request that updates embedded Go asset file since we are not able to easily review the embedded, minified code. This file is instead automatically generated by our build server to prevent tampering.