diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 16d143395ac..d1d0a687134 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -181,7 +181,7 @@ pnpm exec trigger dev --log-level debug 6. Navigate to the `hello-world` project in your local dashboard at localhost:3030 and you should see the list of tasks. -7. Go to the "Test" page in the sidebar and select a task. Then enter a payload and click "Run test". You can tell what the payloads should be by looking at the relevant task file inside the reference project's `src/trigger` folder. Many of them accept an empty payload. +7. On the Tasks page, open a task and press the "Test" button to open its test page. Then enter a payload and click "Run test". You can tell what the payloads should be by looking at the relevant task file inside the reference project's `src/trigger` folder. Many of them accept an empty payload. 8. Feel free to add additional files in the reference project's `src/trigger` dir to test out specific aspects of the system, or add in edge cases. diff --git a/docs/guides/examples/sentry-error-tracking.mdx b/docs/guides/examples/sentry-error-tracking.mdx index 3af32bdbd01..66f6d6694ea 100644 --- a/docs/guides/examples/sentry-error-tracking.mdx +++ b/docs/guides/examples/sentry-error-tracking.mdx @@ -169,7 +169,7 @@ After creating the task, deploy your project. -Once deployed, navigate to the `test` page in the sidebar of your [Trigger.dev dashboard](https://cloud.trigger.dev), click on your `prod` environment, and select the `sentryErrorTest` task. +Once deployed, open the `sentry-error-test` task in your [Trigger.dev dashboard](https://cloud.trigger.dev) (make sure you're in your `prod` environment) and press the "Test" button to open the test page for it. Run a test task with an empty payload by clicking the `Run test` button. diff --git a/docs/images/schedules-blank.png b/docs/images/schedules-blank.png index d0015b4476a..c5752d7e77a 100644 Binary files a/docs/images/schedules-blank.png and b/docs/images/schedules-blank.png differ diff --git a/docs/images/schedules-create.png b/docs/images/schedules-create.png index 52818e8a02f..5207706da83 100644 Binary files a/docs/images/schedules-create.png and b/docs/images/schedules-create.png differ diff --git a/docs/images/schedules-test-form.png b/docs/images/schedules-test-form.png index 52ac12b64d2..79f59af479e 100644 Binary files a/docs/images/schedules-test-form.png and b/docs/images/schedules-test-form.png differ diff --git a/docs/images/schedules-test.png b/docs/images/schedules-test.png index 0e9301bfefb..4c2cf9efcba 100644 Binary files a/docs/images/schedules-test.png and b/docs/images/schedules-test.png differ diff --git a/docs/images/test-dashboard.png b/docs/images/test-dashboard.png index 14fccdbddda..deee18fb008 100644 Binary files a/docs/images/test-dashboard.png and b/docs/images/test-dashboard.png differ diff --git a/docs/run-tests.mdx b/docs/run-tests.mdx index 6598f7dbab5..01396d2f648 100644 --- a/docs/run-tests.mdx +++ b/docs/run-tests.mdx @@ -3,18 +3,19 @@ title: "Run tests" description: "You can use the dashboard to run a test of your tasks." --- -From the "Test" page in the side menu of the dashboard you can run a test for any of your tasks from any environment. +You can run a test for any of your tasks, in any environment, from the dashboard. -![Select an environment](/images/test-dashboard.png) + + There is no longer a "Test" page in the sidebar. You test a task from the task itself: on the + Tasks page open a task (or use the "Test" action next to a task in the Runs list) and press the + "Test" button to open its test page. + - Select a task to test +On a task's test page you can: - Include a payload or metadata +- Enter the run's input — a JSON **payload** and optional **metadata**. Scheduled tasks show timestamp fields instead of a payload. +- Configure run **options** like the machine size, version, queue, tags, retries, max duration, or a delay. +- Pre-populate the form from a previous run with **Recent runs**, or save and reuse a configuration with **Templates**. +- Press **Run test** to trigger the run. - Configure any additional options like the machine size, queue or delay - - Select from previous test runs - - Save the current test configuration as a template for later - - Run the test +![Test page](/images/test-dashboard.png) diff --git a/docs/snippets/step-run-test.mdx b/docs/snippets/step-run-test.mdx index 90d89094d5d..d862262e350 100644 --- a/docs/snippets/step-run-test.mdx +++ b/docs/snippets/step-run-test.mdx @@ -1,12 +1,10 @@ -The CLI `dev` command spits out various useful URLs. Right now we want to visit the Test page. +The CLI `dev` command spits out various useful URLs, including a link to the dashboard. Open it, find your Example task on the Tasks page, and press the "Test" button to open its test page. -You should see our Example task in the list , select it. Most tasks have a "payload" which you enter in the JSON editor , but our example task doesn't need any input. +Most tasks have a "payload" which you enter in the JSON editor, but our example task doesn't need any input. You can also configure run options, pre-populate the form from recent runs, and save run templates. -You can configure options on the run , view recent payloads , and create run templates . - -Press the "Run test" button . +Press the "Run test" button. ![Test page](/images/test-dashboard.png) diff --git a/docs/tasks/scheduled.mdx b/docs/tasks/scheduled.mdx index a9dc3587d66..3731ec04103 100644 --- a/docs/tasks/scheduled.mdx +++ b/docs/tasks/scheduled.mdx @@ -127,11 +127,11 @@ export const secondScheduledTask = schedules.task({ }); ``` -When you run the [dev](/cli-dev-commands) or [deploy](/cli-deploy-commands) commands, declarative schedules will be synced. If you add, delete or edit the `cron` property it will be updated when you run these commands. You can view your schedules on the Schedules page in the dashboard. +When you run the [dev](/cli-dev-commands) or [deploy](/cli-deploy-commands) commands, declarative schedules will be synced. If you add, delete or edit the `cron` property it will be updated when you run these commands. You can view your synced schedules in the dashboard: open the task on the Tasks page and check its "Schedules" tab. ### Imperative schedules -Alternatively you can explicitly attach schedules to a `schedules.task`. You can do this in the Schedules page in the dashboard by just pressing the "New schedule" button, or you can use the SDK to create schedules. +Alternatively you can explicitly attach schedules to a `schedules.task`. You can do this in the dashboard from the scheduled task's page by pressing the "Create schedule" button, or you can use the SDK to create schedules. The advantage of imperative schedules is that they can be created dynamically, for example, you could create a schedule for each user in your database. They can also be activated, disabled, edited, and deleted without deploying new code by using the SDK or dashboard. @@ -166,26 +166,37 @@ There are two situations when a scheduled task won't trigger: ## Attaching schedules in the dashboard -You need to attach a schedule to a task before it will run on a schedule. You can attach static schedules in the dashboard: +You need to attach a schedule to a task before it will run on a schedule. You can attach imperative schedules in the dashboard: + + + **The Schedules page has moved.** There is no longer a standalone "Schedules" page in the + sidebar. Schedules now live on the Tasks page: open a scheduled task to create, view, edit, + enable/disable, and delete its schedules. The old `/schedules` URL redirects to the Tasks page. + + The scheduled task must already exist first — define it in your code with `schedules.task()` and + sync it to the environment by running the [dev](/cli-dev-commands) or + [deploy](/cli-deploy-commands) command so it appears on the Tasks page. A project with no tasks + yet will only show the deploy onboarding. + - - In the sidebar select the "Schedules" page, then press the "New schedule" button. Or you can - follow the onboarding and press the create in dashboard button. ![Blank schedules - page](/images/schedules-blank.png) + + In the sidebar select the "Tasks" page, then select the scheduled task you want to attach a + schedule to (scheduled tasks have a clock icon, and you can filter the list to Scheduled). + ![Scheduled task page](/images/schedules-blank.png) - Fill in the form and press "Create schedule" when you're done. ![Environment variables - page](/images/schedules-create.png) + Press the "Create schedule" button, fill in the form, and press "Create schedule" when you're + done. ![Create schedule form](/images/schedules-create.png) These are the options when creating a schedule: | Name | Description | | ----------------- | --------------------------------------------------------------------------------------------- | | Task | The id of the task you want to attach to. | -| Cron pattern | The schedule in cron format. | +| Cron pattern | The schedule in cron format. You can also describe it in natural language and press "Generate" to fill this in. | | Timezone | The timezone the schedule will run in. Defaults to "UTC" | | External id | An optional external id, usually you'd use a userId. | | Deduplication key | An optional deduplication key. If you pass the same value, it will update rather than create. Scoped per project, not per environment. | @@ -195,6 +206,12 @@ These are the options when creating a schedule: +## Managing schedules in the dashboard + +Open the scheduled task and switch to the "Schedules" tab to see every schedule attached to it — both declarative and imperative — with its type, cron pattern, external id, next and last run, and status. + +Click a schedule to open the inspector, where you can **enable/disable**, **edit**, or **delete** imperative schedules without deploying new code. Declarative schedules are managed in your code, so they can't be edited or deleted from here. + ## Attaching schedules with the SDK You call `schedules.create()` to create a schedule from your code. Here's the simplest possible example: @@ -302,14 +319,19 @@ You can also retrieve, list, delete, deactivate and re-activate schedules using You can test a scheduled task in the dashboard. Note that the `scheduleId` will always come through as `sched_1234` to the run. + + There is no longer a standalone "Test" page in the sidebar. You test a task from the task itself — + open it on the Tasks page and press the "Test schedule" button. + + - - In the sidebar select the "Test" page, then select a scheduled task from the list (they have a - clock icon on them) ![Test page](/images/schedules-test.png) + + On the "Tasks" page, open your scheduled task and press the "Test schedule" button. + ![Scheduled task page](/images/schedules-test.png) - + Fill in the form [1]. You can select from a recent run [2] to pre-populate the fields. Press "Run test" when you're ready ![Schedule test form](/images/schedules-test-form.png)