Top Related Projects
Azure Pipelines YAML examples, templates, and community interaction
Workflow Engine for Kubernetes
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:
- Go to your GitHub repository
- Click on the "Actions" tab
- Click on "New workflow"
- Browse or search for the desired workflow template
- Click "Set up this workflow"
- Review and customize the workflow file as needed
- 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.
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 designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
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
- ci: solutions for Continuous Integration workflows
- deployments: solutions for Deployment workflows
- automation: solutions for automating workflows
- code-scanning: solutions for Code Scanning
- pages: solutions for Pages workflows
- icons: svg icons for the relevant template
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 onboardingiconName
: the icon name in the relevant folder, for example,django
should have an iconicons/django.svg
. Only SVG is supported at this time. Another option is to use octicon. The format to use an octicon isocticon <<icon name>>
. Example:octicon person
creator
: creator of the template shown in onboarding. All the workflow templates from an author will have the samecreator
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 examplemain
andmaster
$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
Top Related Projects
Azure Pipelines YAML examples, templates, and community interaction
Workflow Engine for Kubernetes
Run your GitHub Actions locally 🚀
Azure Quickstart Templates
Convert designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot