tasks: - name: Server env: WOODPECKER_OPEN: true WOODPECKER_ADMIN: woodpecker WOODPECKER_HOST: http://host.docker.internal:8000 WOODPECKER_EXPERT_WEBHOOK_HOST: http://host.docker.internal:8000 WOODPECKER_AGENT_SECRET: '1234' WOODPECKER_GITEA: true WOODPECKER_DEV_WWW_PROXY: http://localhost:8010 WOODPECKER_BACKEND_DOCKER_NETWORK: ci_default init: | GO_VERSION=1.22 rm -rf ~/go curl -fsSL https://dl.google.com/go/go$GO_VERSION.linux-amd64.tar.gz | tar xzs -C ~/ go mod tidy mkdir -p web/dist touch web/dist/index.html make build-server command: | grep "WOODPECKER_GITEA_URL=" .env \ && sed "s,^WOODPECKER_GITEA_URL=.*,WOODPECKER_GITEA_URL=$(gp url 3000)," .env \ || echo WOODPECKER_GITEA_URL=$(gp url 3000) >> .env grep "WOODPECKER_HOST=" .env \ && sed "s,^WOODPECKER_HOST=.*,WOODPECKER_HOST=$(gp url 8000)," .env \ || echo WOODPECKER_HOST=$(gp url 8000) >> .env gp sync-await gitea gp sync-done woodpecker-server go run go.woodpecker-ci.org/woodpecker/v2/cmd/server - name: Agent env: WOODPECKER_SERVER: localhost:9000 WOODPECKER_AGENT_SECRET: '1234' WOODPECKER_MAX_WORKFLOWS: 1 WOODPECKER_HEALTHCHECK: false command: | gp sync-await woodpecker-server go run go.woodpecker-ci.org/woodpecker/v2/cmd/agent - name: Gitea command: | export DOCKER_COMPOSE_CMD="docker-compose -f docker-compose.gitpod.yaml -p woodpecker" export GITEA_CLI_CMD="$DOCKER_COMPOSE_CMD exec -u git gitea gitea" $DOCKER_COMPOSE_CMD up -d until curl --output /dev/null --silent --head --fail http://localhost:3000; do printf '.'; sleep 1; done $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 --scopes write:repository,write:user --raw | tail -n 1 | awk 'NF{ print $NF }') 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\", \"confidential_client\": true, \"redirect_uris\": [ \"https://8000-${GITPOD_WORKSPACE_ID}.${GITPOD_WORKSPACE_CLUSTER_HOST}/authorize\" ] }") touch .env grep "WOODPECKER_GITEA_CLIENT=" .env \ && sed "s,^WOODPECKER_GITEA_CLIENT=.*,WOODPECKER_GITEA_CLIENT=$(echo $GITEA_OAUTH_APP | jq -r .client_id)," .env \ || echo WOODPECKER_GITEA_CLIENT=$(echo $GITEA_OAUTH_APP | jq -r .client_id) >> .env grep "WOODPECKER_GITEA_SECRET=" .env \ && sed "s,^WOODPECKER_GITEA_SECRET=.*,WOODPECKER_GITEA_SECRET=$(echo $GITEA_OAUTH_APP | jq -r .client_secret)," .env \ || echo WOODPECKER_GITEA_SECRET=$(echo $GITEA_OAUTH_APP | jq -r .client_secret) >> .env curl -X 'POST' \ 'http://localhost:3000/api/v1/user/repos' \ -H 'accept: application/json' \ -H 'Content-Type: application/json' \ -H "Authorization: token ${GITEA_TOKEN}" \ -d '{ "auto_init": false, "name": "woodpecker-test", "private": true, "template": false, "trust_model": "default" }' cd contrib/woodpecker-test-repo git init git checkout -b main git remote add origin http://woodpecker:${GITEA_TOKEN}@localhost:3000/woodpecker/woodpecker-test.git git add . git commit -m "Initial commit" git push -u origin main cd ../.. gp sync-done gitea $DOCKER_COMPOSE_CMD logs -f - name: App before: | cd web/ init: | pnpm install command: | pnpm start - name: Docs before: | cd docs/ init: | pnpm install pnpm build:woodpecker-plugins command: | pnpm start --port 4000 ports: - port: 3000 name: Gitea onOpen: ignore visibility: public # TODO: https://github.com/woodpecker-ci/woodpecker/issues/856 - port: 8000 name: Woodpecker onOpen: notify visibility: public # TODO: https://github.com/woodpecker-ci/woodpecker/issues/856 - port: 9000 name: Woodpecker GRPC onOpen: ignore - port: 8010 description: Do not use! Access woodpecker on port 8000 onOpen: ignore - port: 4000 name: Docs onOpen: notify vscode: extensions: # cSpell:disable - 'golang.go' - 'EditorConfig.EditorConfig' - 'dbaeumer.vscode-eslint' - 'esbenp.prettier-vscode' - 'bradlc.vscode-tailwindcss' - 'Vue.volar' - 'redhat.vscode-yaml' - 'davidanson.vscode-markdownlint' - 'streetsidesoftware.code-spell-checker' # cSpell:enable