https://github.com/drivly/deploy-worker
Blazing Fast Build & Deployment of Cloudflare Workers & Workers for Platforms supporting HTTP Imports
https://github.com/drivly/deploy-worker
Last synced: about 1 month ago
JSON representation
Blazing Fast Build & Deployment of Cloudflare Workers & Workers for Platforms supporting HTTP Imports
- Host: GitHub
- URL: https://github.com/drivly/deploy-worker
- Owner: drivly
- License: mit
- Created: 2022-09-29T19:40:35.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-02-10T21:53:44.000Z (3 months ago)
- Last Synced: 2025-04-11T21:19:31.025Z (about 1 month ago)
- Language: JavaScript
- Homepage: https://github.com/marketplace/actions/deploy-worker
- Size: 8.01 MB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Deploy Worker GitHub Action
### Blazing Fast Build & Deployment of Cloudflare Workers
- Supports HTTP imports
- Supports Workers for PlatformsYou don't even need a Cloudflare account to deploy workers with this action.
```yaml
name: Deploy
on: push
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
steps:
- uses: actions/checkout@v3
- name: deploy-worker
uses: drivly/deploy-worker@beta-3
with:
name: 'hello-world'
main: './worker.js'
```You can specify a domain name, just CNAME that domain to `workers.do` and you're good to go.
```yaml
- name: deploy-worker
uses: drivly/deploy-worker@beta-3
with:
name: 'hello-world'
main: './worker.js'
domain: 'nathanclevenger.com'
```But you can deploy to your Cloudflare account if you prefer:
```yaml
name: Deploy
on: push
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
steps:
- uses: actions/checkout@v3
- name: deploy-worker
uses: drivly/deploy-worker@beta-3
with:
name: 'hello-world'
main: './worker.js'
cloudflareAccountId: ${{ secrets.CF_ACCOUNT_ID }}
cloudflareApiToken: ${{ secrets.CF_API_TOKEN }}
```You can also specify a 'wrangler.toml' file to use for configuration:
```yaml
name: Deploy
on: push
jobs:
deploy:
runs-on: ubuntu-latest
name: Deploy
steps:
- uses: actions/checkout@v3
- name: deploy-worker
uses: drivly/deploy-worker@beta-3
with:
name: 'hello-world'
main: './worker.js'
config: './wrangler.toml'
cloudflareAccountId: ${{ secrets.CF_ACCOUNT_ID }}
cloudflareApiToken: ${{ secrets.CF_API_TOKEN }}
```But you can also specify your configuration in YAML:
```yaml
config: './worker.yaml'
```
`worker.yaml`:
```yaml
name: worker
main: ./some-entrypoint
account_id: ''
workers_dev: true
usage_model: unbound
routes:
- pattern: '*'
zone_name: ZONE_NAME
route:
pattern: '*'
zone_name: ZONE_NAME
keep_vars: true
vars:
KEY: value
triggers:
crons:
- 1 * * * *
kv_namespaces:
- binding:
id:
preview_id:
- binding:
id:
preview_id:
durable_objects:
bindings:
- name: TEST_OBJECT
class_name: ''
script_name: ''
migrations:
- tag: ''
new_classes:
- ''
renamed_classes:
- from: DurableObjectExample
to: UpdatedName
deleted_classes:
- DeprecatedClass
r2_buckets:
- binding: TEST_BUCKET
bucket_name: ''
preview_bucket_name: ''
build:
command: npm run build
cwd: build_cwd
watch_dir: build_watch_dir
rules:
- type: Text
globs:
- '**/*.md'
fallthrough: true
text_blobs:
TEXT: ''
wasm_modules:
MODULE: module.wasm
data_blobs:
DATA: ''
tsconfig: ./tsconfig.json
minify: false
node_compat: false
site:
bucket: ./public
include:
- upload_dir
exclude:
- ignore_dir
env:
compatibility_date: '2021-11-12'
compatibility_flags:
- formdata_parser_supports_files
services:
- binding: TEST_BINDING
service: ''
environment: ''
```Or JSON if you prefer:
```yaml
config: './worker.json'
```
`worker.json`:
```json
{
"name": "worker",
"main": "./some-entrypoint",
"account_id": "",
"workers_dev": true,
"usage_model": "unbound",
"routes": [
{
"pattern": "*",
"zone_name": "ZONE_NAME"
}
],
"route": {
"pattern": "*",
"zone_name": "ZONE_NAME"
},
"keep_vars": true,
"vars": {
"KEY": "value"
},
"triggers": {
"crons": [
"1 * * * *"
]
},
"kv_namespaces": [
{
"binding": "",
"id": "",
"preview_id": ""
},
{
"binding": "",
"id": "",
"preview_id": ""
}
],
"durable_objects": {
"bindings": [
{
"name": "TEST_OBJECT",
"class_name": "",
"script_name": ""
}
]
},
"migrations": [
{
"tag": "",
"new_classes": [
""
],
"renamed_classes": [
{
"from": "DurableObjectExample",
"to": "UpdatedName"
}
],
"deleted_classes": [
"DeprecatedClass"
],
"r2_buckets": [
{
"binding": "TEST_BUCKET",
"bucket_name": "",
"preview_bucket_name": ""
}
]
}
],
"build": {
"command": "npm run build",
"cwd": "build_cwd",
"watch_dir": "build_watch_dir"
},
"rules": [
{
"type": "Text",
"globs": [
"**/*.md"
],
"fallthrough": true
}
],
"text_blobs": {
"TEXT": ""
},
"wasm_modules": {
"MODULE": "module.wasm"
},
"data_blobs": {
"DATA": "",
"tsconfig": "./tsconfig.json",
"minify": false,
"node_compat": false
},
"site": {
"bucket": "./public",
"include": [
"upload_dir"
],
"exclude": [
"ignore_dir"
]
},
"env": {
"compatibility_date": "2021-11-12",
"compatibility_flags": [
"formdata_parser_supports_files"
],
"services": [
{
"binding": "TEST_BINDING",
"service": "",
"environment": ""
}
]
}
}
```