Spin gh – اقدامات GitHub را برای Spin Apps خود در چند ثانیه ایجاد کنید

Summarize this content to 400 words in Persian Lang
نویسنده: تورستن هانس
ما بسیار هیجان زده هستیم که اولین نسخه پلاگین Spin gh را اعلام کنیم! مانند همه توسعه دهندگان، ما زمان قابل توجهی را صرف خودکار کردن وظایف با استفاده از یکپارچه سازی مداوم یا انواع دیگر ساخت های متمرکز می کنیم. برای سادهسازی چشمگیر این موضوع در زمینه برنامههای Spin، نشستیم و آن را نوشتیم gh افزونه یک پلاگین ساده و در عین حال قدرتمند که میتواند اکشنهای GitHub را برای برنامههای Spin شما ایجاد کند.
اسپین چیست
Spin ابزار توسعه دهنده منبع باز برای ساخت برنامه های WebAssembly است. Spin همراه با باتریهایی برای ساخت برنامههای WebAssembly واکنشپذیر ارائه میشود (ما اغلب آنها را برنامههای Spin مینامیم). Spin یک زبان آگنوستیک است، بنابراین میتوانید از میان طیف وسیعی از زبانهای برنامهنویسی برای ساخت برنامههای Spin خود انتخاب کنید. Spin قابلیت حمل در سیستمهای عامل و معماریهای مختلف، جعبهشنی سخت و زمانهای شروع سرد زیر میلیثانیهای باورنکردنی را تضمین میکند. مستندات پروژه را بررسی کنید تا عمیق تر در Spin غوطه ور شوید.
پلاگین اسپین چیست؟
با افزونههای Spin، میتوان فرمانها و قابلیتهای فرعی جدیدی را بدون تغییر در پایه کد خود Spin به Spin اضافه کرد. پلاگین های Spin را می توان به مخزن مرکزی Spin Plugins ارسال کرد که به کاربران امکان می دهد آنها را با استفاده از spin plugins list و spin plugins install دستورات به عنوان مثال، اخیراً یک مشارکت اجتماعی برای یک پلاگین ماشه Kinesis داشتیم. از آنجایی که پلاگینهای Spin چرخه عمر خاص خود را دارند، میتوان آنها را مستقل از Spin توسعه و منتشر کرد و بهروزرسانیها با اجرا نصب میشوند. spin plugins update (برای به روز رسانی فید افزونه Spin) و spin plugins upgrade (برای ارتقاء یک پلاگین Spin خاص).
نحوه نصب Spin gh پلاگین
از آنجا که gh افزونه به مخزن پلاگین اسپین ارسال شده است، می توانید آن را نصب کنید gh افزونه با استفاده از دستورات زیر:
# Update the list of Spin plugins
spin plugins update
# Install the gh Spin plugin
spin plugins install gh
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
یک بار gh افزونه نصب شده است، می توانید شروع به تولید فایل های گردش کار GitHub Action برای برنامه های Spin خود کنید. قبل از اینکه به سمت استفاده از gh افزونه، بیایید به سرعت به تمام قابلیت های آن نگاهی بیندازیم.
چه چیزی gh افزونه می تواند برای شما انجام دهد!
ایجاد یک GitHub Action با اجرای ساده یک لاینر جالب است، اما قابلیتهای زیادی وجود دارد که ممکن است در وهله اول چندان واضح نباشند. لیست زیر از چیزهایی را ببینید gh این افزونه هنگام ایجاد یک گردش کار GitHub برای شما انجام می دهد:
دایرکتوری فعلی را به صورت بازگشتی بررسی کنید و همه برنامه های Spin و اجزای مربوطه آنها را کشف کنید
تمام زبان های برنامه نویسی مختلف مورد استفاده را شناسایی کنید
مشخص کنید که کدام پلاگین برای کامپایل کد منبع شما در WebAssembly مورد نیاز است
رندر یک GitHub Action Workflow، که
ایجاد یک ماشه گردش کار (قابل تنظیم)
آخرین نسخه Spin را نصب می کند (قابل تنظیم)
پلاگین های Spin را نصب می کند (قابل تنظیم)
متغیرهای محیط گردش کار فردی را تنظیم کنید
همه ابزارهای مخصوص زبان را نصب می کند
پین زبان و نسخه ابزار (قابل تنظیم)
هر برنامه Spin کشف شده در درخت فهرست فعلی را می سازد
با اولین انتشار از gh پلاگین، برنامه های Spin ساخته شده با Rust، JavaScript، TypeScript، GoLang و Python پشتیبانی می شوند. ما در آینده نزدیک به طور مداوم برای زبان های دیگر پشتیبانی خواهیم کرد.
با استفاده از چرخش gh افزونه
یک نمونه Spin App ایجاد کنید
برای اهداف تصویری، می توانید از هر برنامه Spin موجود استفاده کنید یا با استفاده از یک برنامه جدید ایجاد کنید spin new:
# Create a new Spin App using the http-js template
spin new -t http-js -a hello-spin
# Move into the hello-spin folder
cd hello-spin
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
عالی! با استفاده از برنامه Spin جدید خود، میتوانید ادامه دهید و شروع به تولید GitHub Actions کنید.
ایجاد اکشن های GitHub با spin gh create-action
ما سعی کردیم پیشفرضهای معقولی را ارائه کنیم تا شما را با بیشترین سرعت ممکن پیش ببریم و در عین حال امکان سفارشیسازی رایج را در هنگام ایجاد اکشنهای GitHub جدید فراهم کنیم.
بیایید ساده شروع کنیم و یک اجرا خشک انجام دهیم (که محتویات فایل گردش کار GitHub Action را در stdout فقط):
# Generate a basic GitHub Action
spin gh create-action –dry-run
Discovered Spin App: hello-spin at .
– JavaScript Component discovered at .
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
name: “CI”
on:
push:
branches:
– “main”
env:
NODE_VERSION: “22”
SPIN_VERSION: “”
jobs:
spin:
runs-on: “ubuntu-latest”
name: Build Spin App
steps:
– uses: actions/checkout@v4
– name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: “${{ env.NODE_VERSION }}”
– name: Install Spin
uses: fermyon/actions/spin/setup@v1
with:
plugins: js2wasm
– name: Component Dependency Installation
run: npm install
working-directory: .
– name: Build hello-spin
run: spin build
working-directory: .
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
GitHub Action Triggers را سفارشی کنید
به عنوان یک مثال اضافی، بیایید ببینیم چگونه میتوانید رفتار را تغییر دهید spin gh create-action برای ایجاد یک GitHub Action با استفاده از تریگرهایی غیر از CI برای فشار روی main.
ساده ترین تغییر ممکن است تغییر شاخه از main به چیز دیگری این را می توان با استفاده از –ci پرچم:
# Create an Action that runs for every push on my-awesome-branch
spin gh create-action –ci my-awesome-branch –dry-run
Discovered Spin App: hello-spin at .
– JavaScript Component discovered at
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
name: “CI”
on:
push:
branches:
– “my-awesome-branch”
# snip
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
در مرحله بعد، بیایید یک ماشه دیگر اضافه کنیم تا مطمئن شویم که اکشن GitHub ما نیز هر شب ساعت 2 بامداد اجرا می شود، با استفاده از تریگر cron – که می توانیم با استفاده از آن تنظیم کنیم –cron پرچم:
# Create an Action that runs for every push on my-awesome-branch and every night at 2am
spin gh create-action –ci my-awesome-branch –cron “0 2 * * *” –dry-run
Discovered Spin App: hello-spin at .
– JavaScript Component discovered at
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
name: “CI”
on:
push:
branches:
– “my-awesome-branch”
schedule:
– cron: “0 2 * * *”
# snip
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اینها فقط دو نمونه بودند تا نشان دهند چگونه می توانید آن را سفارشی کنید gh برای تولید GitHub Action با توجه به نیاز شما.
حتی گزینه های سفارشی سازی بیشتری نیز وجود دارد gh افزونه پروژه README را بررسی کنید تا در مورد همه آنها بیشتر بدانید.
قالب خود را بیاورید
آیا شما بسیاری از برنامه های Spin را مدیریت می کنید؟ یا، آیا میخواهید رویههایی را داشته باشید که بخشی از قالب پیشفرض مورد استفاده برای تولید اکشن GitHub نباشد؟
مشکلی نیست! شما می توانید الگوی خود را برای ایجاد اکشن های GitHub با استفاده از spin gh create-action فرمان در اینجا لازم نیست از صفر شروع کنید، می توانید از آن استفاده کنید spin gh eject دستور دهید و از الگوی پیشفرض ما برای راهاندازی قالب خود استفاده کنید!
# Store the default template in a file
spin gh eject –output ./my-gh-actions-template.yaml –overwrite
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
با یک الگوی مناسب در جای خود، می توانید فراخوانی کنید spin gh create-action و با استفاده از –template پرچم، همانطور که در قطعه زیر نشان داده شده است:
# Create a GitHub Action using a custom template
spin gh create-action –name custom-ci –template ./my-gh-actions-template.yaml
وارد حالت تمام صفحه شوید
از حالت تمام صفحه خارج شوید
اگر در حال ساختن قالب خود هستید، قطعاً باید در پروژه README مرور کنید تا تمام دادههایی را که پس از رندر کردن فایل گردش کار GitHub Action به الگو منتقل میشوند، کشف کنید.
نظر خود را در مورد این افزونه در Discord ما با ما در میان بگذارید.
اگر با اشکال مواجه شدید، میخواهید ویژگیهای جدیدی را ببینید، یا میخواهید کد منبع را بررسی کنید، به راحتی از مخزن در GitHub دیدن کنید.
نویسنده: تورستن هانس
ما بسیار هیجان زده هستیم که اولین نسخه پلاگین Spin gh را اعلام کنیم! مانند همه توسعه دهندگان، ما زمان قابل توجهی را صرف خودکار کردن وظایف با استفاده از یکپارچه سازی مداوم یا انواع دیگر ساخت های متمرکز می کنیم. برای سادهسازی چشمگیر این موضوع در زمینه برنامههای Spin، نشستیم و آن را نوشتیم gh
افزونه یک پلاگین ساده و در عین حال قدرتمند که میتواند اکشنهای GitHub را برای برنامههای Spin شما ایجاد کند.
اسپین چیست
Spin ابزار توسعه دهنده منبع باز برای ساخت برنامه های WebAssembly است. Spin همراه با باتریهایی برای ساخت برنامههای WebAssembly واکنشپذیر ارائه میشود (ما اغلب آنها را برنامههای Spin مینامیم). Spin یک زبان آگنوستیک است، بنابراین میتوانید از میان طیف وسیعی از زبانهای برنامهنویسی برای ساخت برنامههای Spin خود انتخاب کنید. Spin قابلیت حمل در سیستمهای عامل و معماریهای مختلف، جعبهشنی سخت و زمانهای شروع سرد زیر میلیثانیهای باورنکردنی را تضمین میکند. مستندات پروژه را بررسی کنید تا عمیق تر در Spin غوطه ور شوید.
پلاگین اسپین چیست؟
با افزونههای Spin، میتوان فرمانها و قابلیتهای فرعی جدیدی را بدون تغییر در پایه کد خود Spin به Spin اضافه کرد. پلاگین های Spin را می توان به مخزن مرکزی Spin Plugins ارسال کرد که به کاربران امکان می دهد آنها را با استفاده از spin plugins list
و spin plugins install
دستورات به عنوان مثال، اخیراً یک مشارکت اجتماعی برای یک پلاگین ماشه Kinesis داشتیم. از آنجایی که پلاگینهای Spin چرخه عمر خاص خود را دارند، میتوان آنها را مستقل از Spin توسعه و منتشر کرد و بهروزرسانیها با اجرا نصب میشوند. spin plugins update
(برای به روز رسانی فید افزونه Spin) و spin plugins upgrade
(برای ارتقاء یک پلاگین Spin خاص).
نحوه نصب Spin gh
پلاگین
از آنجا که gh
افزونه به مخزن پلاگین اسپین ارسال شده است، می توانید آن را نصب کنید gh
افزونه با استفاده از دستورات زیر:
# Update the list of Spin plugins
spin plugins update
# Install the gh Spin plugin
spin plugins install gh
یک بار gh
افزونه نصب شده است، می توانید شروع به تولید فایل های گردش کار GitHub Action برای برنامه های Spin خود کنید. قبل از اینکه به سمت استفاده از gh
افزونه، بیایید به سرعت به تمام قابلیت های آن نگاهی بیندازیم.
چه چیزی gh
افزونه می تواند برای شما انجام دهد!
ایجاد یک GitHub Action با اجرای ساده یک لاینر جالب است، اما قابلیتهای زیادی وجود دارد که ممکن است در وهله اول چندان واضح نباشند. لیست زیر از چیزهایی را ببینید gh
این افزونه هنگام ایجاد یک گردش کار GitHub برای شما انجام می دهد:
- دایرکتوری فعلی را به صورت بازگشتی بررسی کنید و همه برنامه های Spin و اجزای مربوطه آنها را کشف کنید
- تمام زبان های برنامه نویسی مختلف مورد استفاده را شناسایی کنید
- مشخص کنید که کدام پلاگین برای کامپایل کد منبع شما در WebAssembly مورد نیاز است
- رندر یک GitHub Action Workflow، که
- ایجاد یک ماشه گردش کار (قابل تنظیم)
- آخرین نسخه Spin را نصب می کند (قابل تنظیم)
- پلاگین های Spin را نصب می کند (قابل تنظیم)
- متغیرهای محیط گردش کار فردی را تنظیم کنید
- همه ابزارهای مخصوص زبان را نصب می کند
- پین زبان و نسخه ابزار (قابل تنظیم)
- هر برنامه Spin کشف شده در درخت فهرست فعلی را می سازد
با اولین انتشار از gh
پلاگین، برنامه های Spin ساخته شده با Rust، JavaScript، TypeScript، GoLang و Python پشتیبانی می شوند. ما در آینده نزدیک به طور مداوم برای زبان های دیگر پشتیبانی خواهیم کرد.
با استفاده از چرخش gh
افزونه
یک نمونه Spin App ایجاد کنید
برای اهداف تصویری، می توانید از هر برنامه Spin موجود استفاده کنید یا با استفاده از یک برنامه جدید ایجاد کنید spin new
:
# Create a new Spin App using the http-js template
spin new -t http-js -a hello-spin
# Move into the hello-spin folder
cd hello-spin
عالی! با استفاده از برنامه Spin جدید خود، میتوانید ادامه دهید و شروع به تولید GitHub Actions کنید.
ایجاد اکشن های GitHub با spin gh create-action
ما سعی کردیم پیشفرضهای معقولی را ارائه کنیم تا شما را با بیشترین سرعت ممکن پیش ببریم و در عین حال امکان سفارشیسازی رایج را در هنگام ایجاد اکشنهای GitHub جدید فراهم کنیم.
بیایید ساده شروع کنیم و یک اجرا خشک انجام دهیم (که محتویات فایل گردش کار GitHub Action را در stdout
فقط):
# Generate a basic GitHub Action
spin gh create-action --dry-run
Discovered Spin App: hello-spin at .
- JavaScript Component discovered at .
name: "CI"
on:
push:
branches:
- "main"
env:
NODE_VERSION: "22"
SPIN_VERSION: ""
jobs:
spin:
runs-on: "ubuntu-latest"
name: Build Spin App
steps:
- uses: actions/checkout@v4
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: "${{ env.NODE_VERSION }}"
- name: Install Spin
uses: fermyon/actions/spin/setup@v1
with:
plugins: js2wasm
- name: Component Dependency Installation
run: npm install
working-directory: .
- name: Build hello-spin
run: spin build
working-directory: .
GitHub Action Triggers را سفارشی کنید
به عنوان یک مثال اضافی، بیایید ببینیم چگونه میتوانید رفتار را تغییر دهید spin gh create-action
برای ایجاد یک GitHub Action با استفاده از تریگرهایی غیر از CI برای فشار روی main
.
ساده ترین تغییر ممکن است تغییر شاخه از main
به چیز دیگری این را می توان با استفاده از --ci
پرچم:
# Create an Action that runs for every push on my-awesome-branch
spin gh create-action --ci my-awesome-branch --dry-run
Discovered Spin App: hello-spin at .
- JavaScript Component discovered at
name: "CI"
on:
push:
branches:
- "my-awesome-branch"
# snip
در مرحله بعد، بیایید یک ماشه دیگر اضافه کنیم تا مطمئن شویم که اکشن GitHub ما نیز هر شب ساعت 2 بامداد اجرا می شود، با استفاده از تریگر cron – که می توانیم با استفاده از آن تنظیم کنیم --cron
پرچم:
# Create an Action that runs for every push on my-awesome-branch and every night at 2am
spin gh create-action --ci my-awesome-branch --cron "0 2 * * *" --dry-run
Discovered Spin App: hello-spin at .
- JavaScript Component discovered at
name: "CI"
on:
push:
branches:
- "my-awesome-branch"
schedule:
- cron: "0 2 * * *"
# snip
اینها فقط دو نمونه بودند تا نشان دهند چگونه می توانید آن را سفارشی کنید gh
برای تولید GitHub Action با توجه به نیاز شما.
حتی گزینه های سفارشی سازی بیشتری نیز وجود دارد gh
افزونه پروژه README را بررسی کنید تا در مورد همه آنها بیشتر بدانید.
قالب خود را بیاورید
آیا شما بسیاری از برنامه های Spin را مدیریت می کنید؟ یا، آیا میخواهید رویههایی را داشته باشید که بخشی از قالب پیشفرض مورد استفاده برای تولید اکشن GitHub نباشد؟
مشکلی نیست! شما می توانید الگوی خود را برای ایجاد اکشن های GitHub با استفاده از spin gh create-action
فرمان در اینجا لازم نیست از صفر شروع کنید، می توانید از آن استفاده کنید spin gh eject
دستور دهید و از الگوی پیشفرض ما برای راهاندازی قالب خود استفاده کنید!
# Store the default template in a file
spin gh eject --output ./my-gh-actions-template.yaml --overwrite
با یک الگوی مناسب در جای خود، می توانید فراخوانی کنید spin gh create-action
و با استفاده از --template
پرچم، همانطور که در قطعه زیر نشان داده شده است:
# Create a GitHub Action using a custom template
spin gh create-action --name custom-ci --template ./my-gh-actions-template.yaml
اگر در حال ساختن قالب خود هستید، قطعاً باید در پروژه README مرور کنید تا تمام دادههایی را که پس از رندر کردن فایل گردش کار GitHub Action به الگو منتقل میشوند، کشف کنید.
نظر خود را در مورد این افزونه در Discord ما با ما در میان بگذارید.
اگر با اشکال مواجه شدید، میخواهید ویژگیهای جدیدی را ببینید، یا میخواهید کد منبع را بررسی کنید، به راحتی از مخزن در GitHub دیدن کنید.