During the development of Parrot, I found immense inspiration from the exceptional work of other talented creators and contributors like @Gleb, @tonypinkevych and the entire community! Your dedication and passion fueled my own journey.
Today, I’m excited to give back and share something valuable as well.
Now that the Parrot Plugin is live, I’ve become acutely aware of the laborious and error-prone steps involved in releasing a new version of a Figma plugin.
Before
commit and push changes to the repository
building the plugin code for production
updating version numbers
realizing that 3. should have happend before 2. to work properly with mixedpanel
publishing to Sentry
Preparing release in the Figma App and press publish
Comming from Backend and Mobile App development and used to tools like fastlane or helm this felt a bit wonky and very slow.
With figcd this happens all in the background with a single command - that is meant to run in your github workflow.
With figcd
npx figcd release
.
I hope this helps others facing the same - if you have any feedback please open an Issue in the repo or comment below.
Last but not least: Please help me to grow the bird!
If you like to see more like this please support me and help to spread the news about the recently published Parrot Plugin!
Checkout the latest version, leave a heart on the community page and don’t hesitate to reach out for any feedback or ideas that could make it better!
Hi @parrot, awesome tool! I’m trying to integrate figcd with GitHub Actions and I have a question.
Do I need to authenticate and update the GitHub secret every time I release? It seems like the token expires. Is there a way to use a personal access token instead?
Hey @atrutt, great you are using it and you have been able to set it all up - Looks like the docs and prompts are doing its job
Regarding your question: yes the token expires from time to time. I updated it in github ~ once a month for Parrot. I will double check if a normal access key would do the trick as well - but i am afraid the api to upload the builds require a web auth token. I will double check and come back to you. If you want to contribute you can also check the sources - happy to merge in suggestions.
Thanks Martin! Yes, your docs were really easy to follow (especially since it was my first time using GitHub Actions). Thanks for making something so cool and covering a gap in the plugin development process.
I did check with a normal access key and I believe it doesn’t work. Having the context that updating the secret ~once a month is helpful, I was mainly worried that I would have to update it every time I wanted to release.
@atrutt, I thought about it - i recall a time where i used a token longer than a month. this was during a period where i published on very short intervals (1-5 days). It might be that the expiration of the token is based on the last usage or something like that. I coudn’t find a refresh / access token exchange in the request done by Figma and the api is “private” and not documented but i will investigate further. Please let me know if i can support you further
Oh nice! Thanks for that info and your prompt support, very appreciated.
Some small clarifications to the documentation may be helpful. For example, I wasn’t sure how to format the plugin description. I did some digging and it seems that you can provide it as an HTML string in a .txt file. Example: "<h2>Plugin title</h2><p>Description text</p>" You can see how Figma formats the description using the developer panel.
Also, I found it helpful to provide my plugin’s name and description as env variables publish.yml file.
That’s definitely just my own preference but it may be a handy example for people?
It would be really cool if you could manage image assets (icon and cover image) in the release but I’m not sure what kind of restrictions would be involved.
Again, thanks for your awesome work. I’m really psyched that this is working for my plugin!
I checked the tokens again - the calls I use to publish only allow the webauth tokens - I don’t see a way around renewal of token from time to time without support from Figma for now. Who could be involved on this topic @Josh ?
@atrutt You are right in some fields like description and release notes support a html subset.
Using env vars to inject the store_name tagline is an interesting approach as well!
I will add those informations to the readme as soon as i find some time
Image upload would round up the tool and could be done in the same way the tool uploads the build. I didn’t have the need for it since the image change rather seldom and can be changed in the portal without republishing.