برنامه نویسی

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 دیدن کنید.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا