Skip to content

Updating figma tokens #6

Updating figma tokens

Updating figma tokens #6

Workflow file for this run

name: Token update
run-name: Updating figma tokens
on:
deployment: null
schedule:
- cron: '30 5 * * 6'
workflow_dispatch: null
jobs:
update_tokens:
name: "Figma token update"
runs-on: ubuntu-latest
outputs:
changes: ${{steps.token_update.outputs.changes}}
version: ${{steps.token_update.outputs.version}}
message: ${{steps.token_update.outputs.message}}
steps:
- uses: actions/checkout@v4
- name: Setup jq
uses: dcarbone/[email protected]
- name: Check jq
run: |
which jq
jq --version
- name: Setup Bun
id: bun_setup
uses: oven-sh/setup-bun@v1
with:
bun-version: latest
- name: Check bun
run: |
which bun
bun --version
- name: Install dependencies
id: bun_install
run: bun install
- name: Setup environment
id: env_setup
env:
FIGMA_TOKEN: ${{secrets.FIGMA_TOKEN}}
FIGMA_TEAM_ID: ${{secrets.FIGMA_TEAM_ID}}
FIGMA_FILE_URLS: ${{secrets.FIGMA_FILE_URLS}}
run: |
touch .env
echo "FIGMA_TOKEN=${{env.FIGMA_TOKEN}}" >> .env
echo "FIGMA_TEAM_ID=${{env.FIGMA_TEAM_ID}}" >> .env
echo "FIGMA_FILE_URLS=${{env.FIGMA_FILE_URLS}}" >> .env
- name: Token update
id: token_update
run: |
# create temp
mkdir temp
touch temp/output.json
# update figma tokens
bun run update
# evaluate script output
changes=$(echo $(<./temp/output.json) | jq ".changes")
GITHUB_OUTPUT
if (( $changes == "false" ))
then
# no commit or publish needed
echo "changes=false" >> $GITHUB_OUTPUT
else
# new changes have been generated
# pull message and version from script output
message=$(echo $(<./temp/output.json) | jq ".message")
version=$(echo $(<./temp/output.json) | jq ".version")
# expose output to further steps
echo "changes=true" >> $GITHUB_OUTPUT
echo "message=$message" >> $GITHUB_OUTPUT
echo "version=$version" >> $GITHUB_OUTPUT
fi
env:
FIGMA_TOKEN: ${{secrets.FIGMA_TOKEN}}
FIGMA_TEAM_ID: ${{secrets.FIGMA_TEAM_ID}}
FIGMA_FILE_URLS: ${{secrets.FIGMA_FILE_URLS}}
- name: Revision bump
id: revision_bump
if: steps.token_update.outputs.changes == true
run: |
tmp=$(mktemp);
jq --arg v "${{steps.token_update.outputs.version}}" '.version = $v' package.json > "$tmp";
mv "$tmp" package.json;
- name: Git commit and push
id: git_push
if: steps.token_update.outputs.changes == true
env:
CI_COMMIT_AUTHOR: CI
CI_COMMIT_EMAIL: [email protected]
CI_COMMIT_MESSAGE: ${{steps.token_update.outputs.message}}
run: |
git config --global user.name "${{ env.CI_COMMIT_AUTHOR }}"
git config --global user.email "${{ env.CI_COMMIT_EMAIL }}"
git add .
git commit -m "${{env.CI_COMMIT_MESSAGE}}"
git push