mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2024-11-29 21:31:02 +00:00
5557674835
Adding [Gitpod](https://github.com/gitpod-io/gitpod) allows us and others to easily start a complete Woodpecker setup and development cloud IDE. It starts a Woodpecker server, agent and a preconfigured Gitea instance. You can login at Gitea with `woodpecker` and `password`.
79 lines
2.9 KiB
YAML
79 lines
2.9 KiB
YAML
tasks:
|
|
- name: Server
|
|
env:
|
|
WOODPECKER_OPEN: true
|
|
WOODPECKER_ADMIN: woodpecker
|
|
WOODPECKER_HOST: http://host.docker.internal:8000
|
|
WOODPECKER_SECRET: "1234"
|
|
WOODPECKER_GITEA: true
|
|
WOODPECKER_DEV_WWW_PROXY: http://localhost:8010
|
|
WOODPECKER_BACKEND_DOCKER_NETWORK: ci_default
|
|
init: |
|
|
go mod tidy
|
|
mkdir -p web/dist
|
|
touch web/dist/index.html
|
|
echo WOODPECKER_GITEA_URL=https://3000-${GITPOD_WORKSPACE_ID}.${GITPOD_WORKSPACE_CLUSTER_HOST} >> .env
|
|
echo WOODPECKER_DEV_OAUTH_HOST=https://8000-${GITPOD_WORKSPACE_ID}.${GITPOD_WORKSPACE_CLUSTER_HOST} >> .env
|
|
gp sync-await gitea
|
|
gp sync-done woodpecker-server
|
|
command: go run github.com/woodpecker-ci/woodpecker/cmd/server
|
|
- name: Agent
|
|
env:
|
|
WOODPECKER_SERVER: localhost:9000
|
|
WOODPECKER_SECRET: "1234"
|
|
WOODPECKER_MAX_PROCS: 1
|
|
WOODPECKER_HEALTHCHECK: false
|
|
init: |
|
|
gp sync-await woodpecker-server
|
|
command: go run github.com/woodpecker-ci/woodpecker/cmd/agent
|
|
- name: Gitea
|
|
command: |
|
|
export DOCKER_COMPOSE_CMD="docker-compose -f docker-compose.gitpod.yml -p woodpecker"
|
|
export GITEA_CLI_CMD="$DOCKER_COMPOSE_CMD exec -u git gitea gitea"
|
|
$DOCKER_COMPOSE_CMD up -d
|
|
sleep 10s
|
|
$GITEA_CLI_CMD admin user create --username woodpecker --password password --email woodpecker@localhost --admin
|
|
export GITEA_TOKEN=$($GITEA_CLI_CMD admin user generate-access-token -u woodpecker --raw)
|
|
GITEA_OAUTH_APP=$(curl -X 'POST' 'http://localhost:3000/api/v1/user/applications/oauth2' \
|
|
-H 'accept: application/json' -H 'Content-Type: application/json' -H "Authorization: token ${GITEA_TOKEN}" \
|
|
-d "{ \"name\": \"Woodpecker CI\", \"redirect_uris\": [ \"https://8000-${GITPOD_WORKSPACE_ID}.${GITPOD_WORKSPACE_CLUSTER_HOST}/authorize\" ] }")
|
|
echo WOODPECKER_GITEA_CLIENT=$(echo $GITEA_OAUTH_APP | jq -r .client_id) >> .env
|
|
echo WOODPECKER_GITEA_SECRET=$(echo $GITEA_OAUTH_APP | jq -r .client_secret) >> .env
|
|
gp sync-done gitea
|
|
$DOCKER_COMPOSE_CMD logs -f
|
|
- name: App
|
|
init: |
|
|
cd web/
|
|
yarn install
|
|
command: yarn start
|
|
- name: Docs
|
|
init: |
|
|
cd docs/
|
|
yarn install
|
|
yarn build:woodpecker-plugins
|
|
command: yarn start --port 4000
|
|
|
|
ports:
|
|
- port: 3000
|
|
onOpen: ignore
|
|
visibility: public # TODO: https://github.com/woodpecker-ci/woodpecker/issues/856
|
|
- port: 8000
|
|
onOpen: notify
|
|
visibility: public # TODO: https://github.com/woodpecker-ci/woodpecker/issues/856
|
|
- port: 9000
|
|
onOpen: ignore
|
|
- port: 8010
|
|
onOpen: ignore
|
|
- port: 4000
|
|
onOpen: notify
|
|
|
|
vscode:
|
|
extensions:
|
|
- "golang.go"
|
|
- "EditorConfig.EditorConfig"
|
|
- "dbaeumer.vscode-eslint"
|
|
- "esbenp.prettier-vscode"
|
|
- "voorjaar.windicss-intellisense"
|
|
- "johnsoncodehk.volar"
|
|
- "redhat.vscode-yaml"
|
|
- "davidanson.vscode-markdownlint"
|