Update coder templates automatically
Create a GitHub secret named CODER_SESSION_TOKEN
with your coder session token
You can generate a long lived session token by running the following command in your browser console while logged into Coder with a Template Admin or Owner role.
coder token create --lifetime 8760h --name "GitHub Actions"
Create a .github/workflows/push-coder-template.yaml
file and use one of the examples below.
Name | Description | Default |
---|---|---|
url |
Required The url of coder deployment (e.g. https://dev.coder.com). | - |
coder_session_token |
Required The session token of coder. | - |
id |
Required The name of the template. Visible under Template Settings > General info in the coder deployment. | - |
dir |
Required The directory of the template that contains main.tf file |
- |
name |
New version name for the template. | Autogenerated name by Coder |
activate |
Activate the new template version. | true |
message |
Update message (similar to commit messages) | - |
dry_run |
Dry run mode. | false |
Update a Coder template with the latest commit hash as the version name, commit message as the update message and mark this as active.
name: Update Coder Template
on:
push:
branches:
- main
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Get latest commit hash
id: latest_commit
run: echo "hash=$(git rev-parse --short HEAD)" >> $GITHUB_OUTPUT
- name: Get commit title
id: commit_title
run: echo "title=$(git log -1 --pretty=%s)" >> $GITHUB_OUTPUT
- name: Update Coder Template
uses: matifali/update-coder-template@v3
with:
id: my-template
dir: my-template
url: https://coder.example.com
name: ${{ steps.latest_commit.outputs.hash }}
message: ${{ steps.commit_title.outputs.title }}
coder_session_token: ${{ secrets.CODER_SESSION_TOKEN }}
Update a Coder template with a random version name without activating.
name: Update Coder Template
on:
push:
branches:
- main
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update Coder Template
uses: matifali/update-coder-template@v3
with:
id: my-template
dir: my-template
url: https://coder.example.com
activate: false
coder_session_token: ${{ secrets.CODER_SESSION_TOKEN }}