@@ -3,11 +3,15 @@ on: issues
33
44jobs :
55 test-task-creation :
6+ permissions :
7+ contents : read
68 runs-on : ubuntu-latest
79 steps :
810 - name : Checkout code
911 uses : actions/checkout@v4
10-
12+ with :
13+ persist-credentials : false
14+
1115 - name : Test action - Create new task
1216 id : create_task
1317 uses : ./
@@ -22,30 +26,39 @@ jobs:
2226 github-token : ${{ secrets.GITHUB_TOKEN }}
2327 github-issue-url : ${{ github.event.issue.html_url }}
2428 comment-on-issue : " false"
25-
29+
2630 - name : Verify outputs from create
31+ env :
32+ TASK_CREATED : ${{ steps.create_task.outputs.task-created }}
33+ TASK_NAME : ${{ steps.create_task.outputs.task-name }}
34+ TASK_URL : ${{ steps.create_task.outputs.task-url }}
35+ CODER_USERNAME : ${{ steps.create_task.outputs.coder-username }}
2736 run : |
28- echo "Task created: ${{ steps.create_task.outputs.task-created } }"
29- echo "Task name: ${{ steps.create_task.outputs.task-name } }"
30- echo "Task URL: ${{ steps.create_task.outputs.task-url } }"
31- echo "Coder username: ${{ steps.create_task.outputs.coder-username } }"
32-
33- # Verify outputs are not empty
34- if [ -z "${{ steps.create_task.outputs.task-name }}" ]; then
35- echo "ERROR: task-name output is empty "
37+ echo "Task created: ${TASK_CREATED }"
38+ echo "Task name: ${TASK_NAME }"
39+ echo "Task URL: ${TASK_URL }"
40+ echo "Coder username: ${CODER_USERNAME }"
41+
42+ # Verify outputs. These need to be kept in sync with test-event.json
43+ if [[ ${TASK_CREATED} != "true" ] ]; then
44+ echo "ERROR: task-created output should be true "
3645 exit 1
3746 fi
38- if [ -z "${{ steps.create_task.outputs.task-url }}" ]; then
39- echo "ERROR: task-url output is empty "
47+ if [[ ${TASK_NAME} != "integration-test-1" ] ]; then
48+ echo "ERROR: task-name output mismatch "
4049 exit 1
4150 fi
42- if [ -z "${{ steps.create_task.outputs.coder-username }}" ]; then
43- echo "ERROR: coder-username output is empty "
51+ if [[ ${CODER_USERNAME} != "testuser" ] ]; then
52+ echo "ERROR: coder-username output mismatch "
4453 exit 1
4554 fi
46-
47- echo "✅ All outputs present"
48-
55+ if [[ ! ${TASK_URL} =~ /tasks/${CODER_USERNAME}/[a-f0-9-]+$ ]]; then
56+ echo "ERROR: task-url output does not match expected format"
57+ exit 1
58+ fi
59+
60+ echo "✅ All outputs verified"
61+
4962 - name : Test action - Update existing task
5063 id : update_task
5164 uses : ./
@@ -60,24 +73,48 @@ jobs:
6073 github-token : ${{ secrets.GITHUB_TOKEN }}
6174 github-issue-url : ${{ github.event.issue.html_url }}
6275 comment-on-issue : " false"
63-
76+
6477 - name : Verify outputs from update
78+ env :
79+ PREV_TASK_NAME : ${{ steps.create_task.outputs.task-name }}
80+ PREV_TASK_URL : ${{ steps.create_task.outputs.task-url }}
81+ PREV_CODER_USERNAME : ${{ steps.create_task.outputs.coder-username }}
82+ TASK_CREATED : ${{ steps.update_task.outputs.task-created }}
83+ TASK_NAME : ${{ steps.update_task.outputs.task-name }}
84+ TASK_URL : ${{ steps.update_task.outputs.task-url }}
85+ CODER_USERNAME : ${{ steps.update_task.outputs.coder-username }}
6586 run : |
66- echo "Task created: ${{ steps.update_task.outputs.task-created }}"
67- echo "Task name: ${{ steps.update_task.outputs.task-name }}"
68-
87+ echo "Task created: ${TASK_CREATED}"
88+ echo "Task name: ${TASK_NAME}"
89+ echo "Task URL: ${TASK_URL}"
90+ echo "Coder username: ${CODER_USERNAME}"
91+
6992 # Verify task was not created (should be false for update)
70- if [ "${{ steps.update_task.outputs.task-created }} " != "false" ]; then
71- echo "ERROR: Expected task-created to be false for update, got: ${{ steps.update_task.outputs.task-created } }"
93+ if [[ "${TASK_CREATED} " != "false" ] ]; then
94+ echo "ERROR: Expected task-created to be false for update, got: ${TASK_CREATED }"
7295 exit 1
7396 fi
74-
75- # Verify task names match (same task)
76- if [ "${{ steps.create_task.outputs.task-name }}" != "${{ steps.update_task.outputs.task-name }}" ]; then
97+
98+ # Verify other outputs match previous
99+ if [[ ${PREV_TASK_NAME} != "${TASK_NAME}" ] ]; then
77100 echo "ERROR: Task names don't match"
78- echo " Create: ${{ steps.create_task.outputs.task-name }}"
79- echo " Update: ${{ steps.update_task.outputs.task-name }}"
101+ echo " Create: ${PREV_TASK_NAME}"
102+ echo " Update: ${TASK_NAME}"
103+ exit 1
104+ fi
105+
106+ if [[ ${PREV_TASK_URL} != "${TASK_URL}" ]]; then
107+ echo "ERROR: Task URLs don't match"
108+ echo " Create: ${PREV_TASK_URL}"
109+ echo " Update: ${TASK_URL}"
80110 exit 1
81111 fi
82-
112+
113+ if [[ ${PREV_CODER_USERNAME} != "${CODER_USERNAME}" ]]; then
114+ echo "ERROR: Coder usernames don't match"
115+ echo " Create: ${PREV_CODER_USERNAME}"
116+ echo " Update: ${CODER_USERNAME}"
117+ exit 1
118+ fi
119+
83120 echo "✅ Update task behavior verified"
0 commit comments