Convert Figma logo to code with AI

actions logostarter-workflows

Accelerating new GitHub Actions workflows

8,899
5,184
8,899
51

Top Related Projects

Azure Pipelines YAML examples, templates, and community interaction

Workflow Engine for Kubernetes

53,762

Run your GitHub Actions locally 🚀

Azure Quickstart Templates

Quick Overview

The actions/starter-workflows repository is a collection of starter workflow templates for GitHub Actions. It provides a variety of pre-configured workflows for different programming languages, frameworks, and deployment scenarios, making it easier for developers to set up CI/CD pipelines for their projects.

Pros

  • Offers a wide range of ready-to-use workflow templates for various technologies
  • Reduces the time and effort required to set up GitHub Actions workflows
  • Maintained by GitHub, ensuring high-quality and up-to-date templates
  • Serves as a learning resource for GitHub Actions best practices

Cons

  • Some templates may require customization to fit specific project needs
  • Not all programming languages or frameworks are equally represented
  • May lead to over-reliance on pre-built templates, potentially limiting understanding of GitHub Actions
  • Templates may not always follow the most optimal or efficient approach for every scenario

Getting Started

To use a starter workflow from this repository:

  1. Go to your GitHub repository
  2. Click on the "Actions" tab
  3. Click on "New workflow"
  4. Browse or search for the desired workflow template
  5. Click "Set up this workflow"
  6. Review and customize the workflow file as needed
  7. Commit the new workflow file to your repository

The workflow will now run according to the specified triggers and steps.

Competitor Comparisons

Azure Pipelines YAML examples, templates, and community interaction

Pros of azure-pipelines-yaml

  • More extensive integration with Azure services and ecosystems
  • Supports multi-stage pipelines with dependencies and conditions
  • Offers more advanced deployment scenarios and approvals

Cons of azure-pipelines-yaml

  • Steeper learning curve compared to GitHub Actions
  • Less community-contributed workflows and actions
  • Primarily focused on Azure DevOps, limiting flexibility for other platforms

Code Comparison

starter-workflows:

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: npm ci
    - run: npm test

azure-pipelines-yaml:

trigger:
- main
pool:
  vmImage: 'ubuntu-latest'
steps:
- task: NodeTool@0
  inputs:
    versionSpec: '14.x'
- script: |
    npm install
    npm test

Both repositories provide starter templates for CI/CD pipelines, but they cater to different platforms. starter-workflows focuses on GitHub Actions, offering a wide range of templates for various languages and frameworks. It's more accessible for GitHub users and has a larger community contribution base.

azure-pipelines-yaml is tailored for Azure DevOps, providing more complex pipeline configurations and better integration with Azure services. It's ideal for teams heavily invested in the Microsoft ecosystem but may be overkill for simpler projects or those not using Azure DevOps.

Workflow Engine for Kubernetes

Pros of Argo Workflows

  • More powerful and flexible workflow engine, supporting complex DAGs and parallelism
  • Kubernetes-native, allowing for better resource management and scalability
  • Supports artifact passing between steps and caching for improved efficiency

Cons of Argo Workflows

  • Steeper learning curve due to its complexity and Kubernetes-centric design
  • Requires a Kubernetes cluster, which may be overkill for smaller projects
  • Less integrated with GitHub's ecosystem compared to GitHub Actions

Code Comparison

Argo Workflows:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
spec:
  entrypoint: hello-world
  templates:
  - name: hello-world
    container:
      image: docker/whalesay
      command: [cowsay]
      args: ["Hello World"]

GitHub Actions (starter-workflows):

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - run: echo "Hello World"

Argo Workflows offers more detailed control over container execution, while GitHub Actions provides a simpler syntax for common CI/CD tasks. Argo Workflows is better suited for complex, distributed workflows, whereas GitHub Actions excels in straightforward GitHub-centric automation.

53,762

Run your GitHub Actions locally 🚀

Pros of act

  • Allows local testing of GitHub Actions workflows without pushing to a repository
  • Supports running workflows in Docker containers, simulating GitHub's environment
  • Faster iteration and debugging of workflows without consuming GitHub Actions minutes

Cons of act

  • May not perfectly replicate GitHub's environment, leading to potential discrepancies
  • Limited support for certain GitHub Actions features and integrations
  • Requires Docker to be installed and running on the local machine

Code Comparison

act:

# Run a specific job from the workflow file
act -j build

# Run the entire workflow with verbose output
act -v

starter-workflows:

name: CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm ci
      - run: npm test

Summary

act is a tool for locally testing GitHub Actions workflows, offering faster iteration and debugging without consuming GitHub resources. However, it may not perfectly replicate GitHub's environment and requires Docker. starter-workflows provides a collection of template workflows for various languages and tools, ready to be used in GitHub repositories. While starter-workflows offers a quick start for setting up CI/CD pipelines, act focuses on local testing and development of workflows.

Azure Quickstart Templates

Pros of azure-quickstart-templates

  • Extensive collection of Azure-specific templates for various services and scenarios
  • Includes detailed documentation and parameter files for each template
  • Supports complex, multi-resource deployments in Azure

Cons of azure-quickstart-templates

  • Limited to Azure platform, not applicable for other cloud providers or CI/CD systems
  • Requires knowledge of Azure Resource Manager (ARM) template syntax
  • May have a steeper learning curve for users unfamiliar with Azure

Code Comparison

starter-workflows:

name: Node.js CI
on: [push]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Use Node.js
      uses: actions/setup-node@v1

azure-quickstart-templates:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "metadata": {
        "description": "Storage Account Name"
      }
    }
  }
}

The starter-workflows repository focuses on providing YAML-based workflow templates for GitHub Actions, suitable for various CI/CD scenarios across different platforms. In contrast, azure-quickstart-templates offers JSON-based ARM templates specifically for deploying resources in Azure, with a more complex structure but greater flexibility for Azure-specific deployments.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Starter Workflows

These are the workflow files for helping people get started with GitHub Actions. They're presented whenever you start to create a new GitHub Actions workflow.

If you want to get started with GitHub Actions, you can use these starter workflows by clicking the "Actions" tab in the repository where you want to create a workflow.

Directory structure

Each workflow must be written in YAML and have a .yml extension. They also need a corresponding .properties.json file that contains extra metadata about the workflow (this is displayed in the GitHub.com UI).

For example: ci/django.yml and ci/properties/django.properties.json.

Valid properties

  • name: the name shown in onboarding. This property is unique within the repository.
  • description: the description shown in onboarding
  • iconName: the icon name in the relevant folder, for example, django should have an icon icons/django.svg. Only SVG is supported at this time. Another option is to use octicon. The format to use an octicon is octicon <<icon name>>. Example: octicon person
  • creator: creator of the template shown in onboarding. All the workflow templates from an author will have the same creator field.
  • categories: the categories that it will be shown under. Choose at least one category from the list here. Further, choose the categories from the list of languages available here and the list of tech stacks available here. When a user views the available templates, those templates that match the language and tech stacks will feature more prominently.

Categories

  • continuous-integration
  • deployment
  • testing
  • code-quality
  • code-review
  • dependency-management
  • monitoring
  • Automation
  • utilities
  • Pages
  • Hugo

Variables

These variables can be placed in the starter workflow and will be substituted as detailed below:

  • $default-branch: will substitute the branch from the repository, for example main and master
  • $protected-branches: will substitute any protected branches from the repository
  • $cron-daily: will substitute a valid but random time within the day

How to test templates before publishing

Disable template for public

The template author adds a labels array in the template's properties.json file with a label preview. This will hide the template from users, unless user uses query parameter preview=true in the URL. Example properties.json file:

{
    "name": "Node.js",
    "description": "Build and test a Node.js project with npm.",
    "iconName": "nodejs",
    "categories": ["Continuous integration", "JavaScript", "npm", "React", "Angular", "Vue"],
    "labels": ["preview"]
}

For viewing the templates with preview label, provide query parameter preview=true to the new workflow page URL. Eg. https://github.com/<owner>/<repo_name>/actions/new?preview=true.

Enable template for public

Remove the labels array from properties.json file to publish the template to public