├── .all-contributorsrc ├── .gitignore ├── .nvmrc ├── .prettierrc ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── animal.png ├── functions └── github.js ├── gatsby-browser.js ├── gatsby-config.js ├── gatsby-node.js ├── gatsby-ssr.js ├── netlify.toml ├── package-lock.json ├── package.json ├── src ├── actions │ ├── PHP-Lint.md │ ├── a-branch-cleanup.md │ ├── aloba.md │ ├── android.md │ ├── apprise-ga.md │ ├── assignee-to-reviewer.md │ ├── automerge.md │ ├── aws-sam.md │ ├── aws.md │ ├── azure.md │ ├── azure_node.md │ ├── cake-tasks.md │ ├── clojure-formatter.md │ ├── cloudflare-worker.md │ ├── composer.md │ ├── cowsays.md │ ├── dart-formatter.md │ ├── digitalocean.md │ ├── discord-notification.md │ ├── dnscontrol-action.md │ ├── docker-linter.md │ ├── docker.md │ ├── ember-cli.md │ ├── firebase.md │ ├── gatsby-cli.md │ ├── ghpages.md │ ├── git-auto-commit-action.md │ ├── gitcret.md │ ├── github-deployments.md │ ├── github-push-action.md │ ├── github-wiki.md │ ├── golang.md │ ├── google-cloud-platform.md │ ├── goreleaser.md │ ├── gradle.md │ ├── graphql-inspector.md │ ├── hadolint.md │ ├── heroku.md │ ├── home-assistant.md │ ├── httpie-action.md │ ├── hugo-to-github-pages.md │ ├── install-qt-action.md │ ├── issue-label-manager.md │ ├── jekyll-builds-on-github-pages.md │ ├── jenkins-single-shot.md │ ├── js-build-tools.md │ ├── lint-pull-request.md │ ├── mercure.md │ ├── mjolnir.md │ ├── my-broken-link-checker.md │ ├── netlify-build.md │ ├── netlify-cli.md │ ├── netlify-diff-includes.md │ ├── nexmo-sms.md │ ├── node-code-formatter.md │ ├── notify-slack-action.md │ ├── npm-audit-fix.md │ ├── npm-cli.md │ ├── okteto.md │ ├── pandoc.md │ ├── php-code-fixer.md │ ├── php-stan.md │ ├── phpqa.md │ ├── powershell-formatter.md │ ├── pr-status-giphy.md │ ├── psake.md │ ├── publish-puppet-forge.md │ ├── publish-wordpress-plugin.md │ ├── pulumi.md │ ├── py-lambda-action.md │ ├── pypi-publish.md │ ├── rebase-pr.md │ ├── release-archive.md │ ├── release_notify.md │ ├── repetitive.md │ ├── rstats.md │ ├── rsync.md │ ├── ruby-gems.md │ ├── ruby-linter.md │ ├── run-github-actions-locally.md │ ├── semantic-release-action.md │ ├── send-emails.md │ ├── setup-flutter.md │ ├── setup-php.md │ ├── shaking-finger.md │ ├── size-label-action.md │ ├── slack-message-as-bot.md │ ├── slack-message.md │ ├── sleep.md │ ├── spothub.md │ ├── ssh.md │ ├── storybook-surge.md │ ├── synk-cli.md │ ├── terraform.md │ ├── tslint-linter.md │ ├── tweet.md │ ├── twitter-action.md │ ├── vamp.md │ ├── vscode-vsce.md │ ├── wait-for-200.md │ ├── webpack-stats-to-packtracker.md │ ├── wemake-python-styleguide.md │ ├── wip.md │ ├── wordpress-dotorg-plugin-deploy.md │ ├── wordpress-plugin-asset-update.md │ ├── wordpress-pot-generator.md │ ├── wp-text-domain.md │ ├── yarn.md │ ├── zeit-now.md │ └── zola-deploy.md ├── components │ ├── Action-Card │ │ ├── index.js │ │ └── styles.css │ ├── ActionHeader │ │ └── index.js │ ├── Footer │ │ ├── index.js │ │ └── styles.css │ ├── Navigation │ │ ├── index.js │ │ └── styles.css │ ├── SiteHeader │ │ └── index.js │ ├── layout.css │ └── layout.js ├── functions │ └── github.js ├── images │ ├── .gitkeep │ ├── favicon.ico │ └── github.png ├── pages │ ├── 404.js │ └── index.js └── templates │ ├── blog-post.css │ └── blog-post.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | ./functions 9 | 10 | # Runtime data 11 | pids 12 | *.pid 13 | *.seed 14 | *.pid.lock 15 | 16 | # Directory for instrumented libs generated by jscoverage/JSCover 17 | lib-cov 18 | 19 | # Coverage directory used by tools like istanbul 20 | coverage 21 | 22 | # nyc test coverage 23 | .nyc_output 24 | 25 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 26 | .grunt 27 | 28 | # Bower dependency directory (https://bower.io/) 29 | bower_components 30 | 31 | # node-waf configuration 32 | .lock-wscript 33 | 34 | # Compiled binary addons (http://nodejs.org/api/addons.html) 35 | build/Release 36 | 37 | # Dependency directories 38 | node_modules/ 39 | jspm_packages/ 40 | 41 | # Typescript v1 declaration files 42 | typings/ 43 | 44 | # Optional npm cache directory 45 | .npm 46 | 47 | # Optional eslint cache 48 | .eslintcache 49 | 50 | # Optional REPL history 51 | .node_repl_history 52 | 53 | # Output of 'npm pack' 54 | *.tgz 55 | 56 | # dotenv environment variables file 57 | .env 58 | 59 | # gatsby files 60 | .cache/ 61 | public 62 | 63 | # Mac files 64 | .DS_Store 65 | 66 | # Yarn 67 | yarn-error.log 68 | .pnp/ 69 | .pnp.js 70 | # Yarn Integrity file 71 | .yarn-integrity 72 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | v10.16.3 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- 1 | { 2 | "semi": false, 3 | "singleQuote": true, 4 | "trailingComma": "es5" 5 | } 6 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Contributing 2 | 3 | Hi there! We're thrilled that you'd like to contribute to this project. Your help is essential for keeping it great. 4 | 5 | ## Issues 6 | 7 | We'd love you to open issues, if they're relevant to this repository: feature requests, bug reports, questions about our processes, declarations of gratefulness, etc. are all welcome. 8 | 9 | In particular, if you have a large PR you want to send our way, it may make sense to open an issue to discuss it with the maintainers first. 10 | 11 | ## Submitting a pull request 12 | 13 | 1. [Fork][fork] and clone the repository 14 | 1. Create a new branch: `git checkout -b my-branch-name` 15 | 1. Make your changes 16 | 1. Push to your fork and [submit a pull request][pr] 17 | 1. Pat your self on the back and wait for your pull request to be reviewed and merged. 18 | 19 | ## Adding your configuration to github-actions 20 | 21 | You can add your action to the website by creating a [new file md in `/actions directory`](https://github.com/boyney123/github-actions/new/master?filename=src/actions/your-action.md) with a template. 22 | 23 | You have two options to generate a template: 24 | 25 | 1. Use wizard magic and use this url to generate your markdown : [https://github-actions.netlify.com/.netlify/functions/github?url={YOUR_GITHUB_URL}](https://github-actions.netlify.com/.netlify/functions/github?url={YOUR_GITHUB_URL}) 26 | 27 | 2. Copy the contents below. 28 | 29 | ```m 30 | --- 31 | path: '/new-action' 32 | title: 'My New Action' 33 | github_url: 'https://github.com/action-url' 34 | author: 'David Boyne' 35 | twitter: '@boyney123' 36 | tags: ['tagExample'] 37 | subtitle: 'My new action that does some super cool things.' 38 | --- 39 | 40 | 41 | # Action details 42 | 43 | Write up a description or just copy your README here 44 | 45 | ``` 46 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) David Boyne 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: 6 | 7 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. 8 | 9 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 10 | -------------------------------------------------------------------------------- /animal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/boyney123/github-actions/e049d3c6f803a0fe0b7cfde7018f52d7fc601e28/animal.png -------------------------------------------------------------------------------- /gatsby-browser.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's Browser APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/browser-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | -------------------------------------------------------------------------------- /gatsby-config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | siteMetadata: { 3 | title: 'Github Actions', 4 | }, 5 | plugins: [ 6 | 'gatsby-plugin-react-helmet', 7 | { 8 | resolve: `gatsby-source-filesystem`, 9 | options: { 10 | name: `images`, 11 | path: `${__dirname}/src/images`, 12 | }, 13 | }, 14 | 'gatsby-transformer-sharp', 15 | 'gatsby-plugin-sharp', 16 | { 17 | resolve: `gatsby-plugin-manifest`, 18 | options: { 19 | name: 'gatsby-starter-default', 20 | short_name: 'starter', 21 | start_url: '/', 22 | background_color: '#663399', 23 | theme_color: '#663399', 24 | display: 'minimal-ui', 25 | icon: 'src/images/github.png', 26 | }, 27 | }, 28 | { 29 | resolve: `gatsby-plugin-google-analytics`, 30 | options: { 31 | trackingId: 'UA-133219838-1', 32 | }, 33 | }, 34 | { 35 | resolve: `gatsby-source-filesystem`, 36 | options: { 37 | path: `${__dirname}/src/actions`, 38 | name: 'actions', 39 | }, 40 | }, 41 | { 42 | resolve: 'gatsby-transformer-remark', 43 | options: { 44 | plugins: [], // just in case those previously mentioned remark plugins sound cool :) 45 | }, 46 | }, 47 | 48 | // this (optional) plugin enables Progressive Web App + Offline functionality 49 | // To learn more, visit: https://gatsby.app/offline 50 | // 'gatsby-plugin-offline', 51 | ], 52 | } 53 | -------------------------------------------------------------------------------- /gatsby-node.js: -------------------------------------------------------------------------------- 1 | const path = require('path') 2 | 3 | exports.createPages = ({ actions, graphql }) => { 4 | const { createPage } = actions 5 | 6 | const blogPostTemplate = path.resolve(`src/templates/blog-post.js`) 7 | 8 | return graphql(` 9 | { 10 | allMarkdownRemark( 11 | sort: { order: ASC, fields: [frontmatter___title] } 12 | limit: 1000 13 | ) { 14 | edges { 15 | node { 16 | frontmatter { 17 | path 18 | } 19 | } 20 | } 21 | } 22 | } 23 | `).then(result => { 24 | if (result.errors) { 25 | return Promise.reject(result.errors) 26 | } 27 | 28 | result.data.allMarkdownRemark.edges.forEach(({ node }) => { 29 | createPage({ 30 | path: node.frontmatter.path, 31 | component: blogPostTemplate, 32 | context: {}, // additional data can be passed via context 33 | }) 34 | }) 35 | }) 36 | } 37 | -------------------------------------------------------------------------------- /gatsby-ssr.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Implement Gatsby's SSR (Server Side Rendering) APIs in this file. 3 | * 4 | * See: https://www.gatsbyjs.org/docs/ssr-apis/ 5 | */ 6 | 7 | // You can delete this file if you're not using it 8 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | 2 | [build] 3 | functions = "functions" -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "github-action", 3 | "description": "List of Github Actions", 4 | "version": "1.0.0", 5 | "author": "David Boyne", 6 | "dependencies": { 7 | "fuse.js": "^3.3.0", 8 | "gatsby": "^2.13.40", 9 | "gatsby-image": "^2.0.20", 10 | "gatsby-plugin-google-analytics": "^2.0.8", 11 | "gatsby-plugin-manifest": "^2.0.9", 12 | "gatsby-plugin-offline": "^2.0.16", 13 | "gatsby-plugin-react-helmet": "^3.0.2", 14 | "gatsby-plugin-sharp": "^2.0.14", 15 | "gatsby-source-filesystem": "^2.0.11", 16 | "gatsby-transformer-remark": "^2.1.15", 17 | "gatsby-transformer-sharp": "^2.1.8", 18 | "json-to-frontmatter-markdown": "^1.0.0", 19 | "react": "^16.6.3", 20 | "react-dom": "^16.6.3", 21 | "react-helmet": "^5.2.0", 22 | "request": "^2.88.0", 23 | "request-promise": "^4.2.2", 24 | "tomlify": "^0.2.2", 25 | "url-join": "^4.0.0" 26 | }, 27 | "keywords": [ 28 | "gatsby" 29 | ], 30 | "license": "MIT", 31 | "scripts": { 32 | "build": "npm run build:functions && gatsby build", 33 | "build:functions": "netlify-lambda build src/functions", 34 | "develop": "gatsby develop", 35 | "start": "npm run develop", 36 | "format": "prettier --write \"src/**/*.js\"", 37 | "test": "echo \"Error: no test specified\" && exit 1" 38 | }, 39 | "devDependencies": { 40 | "all-contributors-cli": "^5.11.0", 41 | "netlify-lambda": "^1.3.0", 42 | "prettier": "^1.15.2" 43 | }, 44 | "repository": { 45 | "type": "git", 46 | "url": "https://github.com/gatsbyjs/gatsby-starter-default" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src/actions/PHP-Lint.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/PHP-Lint" 3 | title: "PHP Lint" 4 | github_url: "https://github.com/michaelw90/PHP-Lint" 5 | author: "michaelw90" 6 | subtitle: "Github Action for PHPLint" 7 | tags: ["github-actions","php","php-linter","linting"] 8 | --- 9 | # GitHub Action for PHPLint 10 | 11 | GitHub Action implementation of the PHPLint Package provided by [https://github.com/overtrue/phplint](@Overtrue/phplint). 12 | 13 | ## Usage 14 | 15 | You can use it as a Github Action like this: 16 | 17 | _.github/main.workflow_ 18 | ``` 19 | workflow "PHP Linting" { 20 | resolves = ["Execute"] 21 | on = "pull_request" 22 | } 23 | 24 | action "Execute" { 25 | uses = "michaelw90/php-lint@master" 26 | } 27 | 28 | ``` 29 | 30 | If provided, a `.phplint.yml` file in the root will be used for configuration during run of the Action. 31 | 32 | ## See it in practice 33 | 34 | You can find a working and not working PR here: 35 | https://github.com/michaelw90/PHP-Lint-Demo/pulls 36 | -------------------------------------------------------------------------------- /src/actions/a-branch-cleanup.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/a-branch-cleanup' 3 | title: 'A Branch Cleanup' 4 | github_url: 'https://github.com/jessfraz/branch-cleanup-action' 5 | author: 'jessfraz' 6 | tags: ['branch', 'pull-request', 'github'] 7 | subtitle: 'A GitHub action to automatically delete the branch after a pull request has been merged.' 8 | --- 9 | 10 | [![Travis CI](https://img.shields.io/travis/jessfraz/branch-cleanup-action.svg?style=for-the-badge)](https://travis-ci.org/jessfraz/branch-cleanup-action) 11 | 12 | > **NOTE:** This will **never** delete the repository's default branch. If the pull request is closed _without_ merging, it will **not** delete it. 13 | 14 | **Table of Contents** 15 | 16 | 17 | 18 | - [Usage](#usage) 19 | - [Contributing](#contributing) 20 | - [Running the tests](#running-the-tests) 21 | 22 | 23 | 24 | ## Usage 25 | 26 | ``` 27 | workflow "on pull request merge, delete the branch" { 28 | on = "pull_request" 29 | resolves = ["branch cleanup"] 30 | } 31 | 32 | action "branch cleanup" { 33 | uses = "jessfraz/branch-cleanup-action@master" 34 | secrets = ["GITHUB_TOKEN"] 35 | } 36 | ``` 37 | 38 | ![demo](https://github.com/jessfraz/branch-cleanup-action/raw/master/demo.png) 39 | -------------------------------------------------------------------------------- /src/actions/aloba.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/aloba" 3 | title: "aloba" 4 | github_url: "https://github.com/containous/aloba" 5 | author: "containous" 6 | subtitle: "Myrmica Aloba 🐜: Add labels and milestone on pull requests and issues." 7 | tags: ["labels","milestone","github","pull-requests","issues","assign"] 8 | --- 9 | 10 | # Myrmica Aloba 🐜: Add labels and milestone on pull requests and issues. 11 | 12 | [![Release](https://img.shields.io/github/release/containous/aloba.svg?style=flat)](https://github.com/containous/aloba/releases) 13 | [![Build Status](https://travis-ci.org/containous/aloba.svg?branch=master)](https://travis-ci.org/containous/aloba) 14 | [![Docker Build Status](https://img.shields.io/docker/build/containous/aloba.svg)](https://hub.docker.com/r/containous/aloba/builds/) 15 | 16 | - on new issue: adds the label `status/0-needs-triage` 17 | - on new pull request: 18 | - adds the label `status/0-needs-triage` 19 | - adds labels based on [rules](#rules). 20 | - adds a milestone (if a milestone matches the based branch of the PR). 21 | - adds a label related to the size of the pull request. 22 | 23 | ## Usage 24 | 25 | - `GITHUB_TOKEN`: Github Token. 26 | - `.github/aloba-rules.toml`: the rules to apply. 27 | 28 | ``` 29 | Myrmica Aloba - GitHub Action. 30 | 31 | Usage: action [--flag[=true|false| ]] [-f[true|false| ]] ... set true/false to boolean flag(s) 32 | 33 | Flags: 34 | --debug Debug mode. (default "false") 35 | --dry-run Dry run mode. (default "true") 36 | -h, --help Print Help (this message) and exit 37 | ``` 38 | 39 | ## Examples 40 | 41 | ```hcl 42 | workflow "Aloba: Issues" { 43 | on = "issues" 44 | resolves = ["issue-labels"] 45 | } 46 | 47 | action "issue-labels" { 48 | uses = "docker://containous/aloba" 49 | secrets = ["GITHUB_TOKEN"] 50 | args = "action --dry-run=false" 51 | } 52 | 53 | workflow "Aloba: Pull Requests" { 54 | on = "pull_request" 55 | resolves = ["pull-request-labels"] 56 | } 57 | 58 | action "pull-request-labels" { 59 | uses = "docker://containous/aloba" 60 | secrets = ["GITHUB_TOKEN"] 61 | args = "action --dry-run=false" 62 | } 63 | ``` 64 | 65 | ## Rules 66 | 67 | ```toml 68 | [[Rules]] 69 | Label = "area/vegetable" 70 | Regex = "(?i).*(tomate|carotte).*" 71 | 72 | [[Rules]] 73 | Label = "area/cheese" 74 | Regex = "cheese/.*" 75 | 76 | [[Rules]] 77 | Label = "area/infrastructure" 78 | Regex = "(?i)(\\.github|script/).*" 79 | 80 | [Limits] 81 | [Limits.Small] 82 | SumLimit = 150 83 | DiffLimit = 70 84 | FilesLimit = 20 85 | [Limits.Medium] 86 | SumLimit = 400 87 | DiffLimit = 200 88 | FilesLimit = 50 89 | ``` 90 | -------------------------------------------------------------------------------- /src/actions/android.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/android' 3 | title: 'Android' 4 | github_url: 'https://github.com/vgaidarji/android-github-actions' 5 | author: 'vgaidarji' 6 | tags: ['android'] 7 | subtitle: 'A collection of GitHub actions to perform Android related tasks.' 8 | --- 9 | 10 | ## Usage 11 | 12 | Usage information for individual commands can be found in their respective directories. 13 | -------------------------------------------------------------------------------- /src/actions/apprise-ga.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/apprise-ga" 3 | title: "apprise-ga" 4 | github_url: "https://github.com/cstuder/apprise-ga" 5 | author: "cstuder" 6 | subtitle: "GitHub Action to send a push notification via a series of different services thanks to the the Apprise library" 7 | tags: ["github-actions","notifications","email","push-notifications","events","apprise","jinja2"] 8 | --- 9 | # apprise-ga 10 | 11 | GitHub Action to send a push notification via a series of different services thanks to the the [Apprise library](https://github.com/caronc/apprise) 12 | 13 | Supports services like Slack, AWS SNS, Discord, IFTTT, Matrix, Microsoft Teams, Telegram, Twitter etc., as well as email and webhooks. 14 | 15 | Supports dynamically adding event data to the notification message. 16 | 17 | ## Action block syntax 18 | 19 | ```hcl 20 | action "Send push notification" { 21 | uses = "cstuder/apprise-ga@master" 22 | secrets = ["APPRISE_URL"] 23 | args = ["Notification title", "Notification message"] 24 | } 25 | ``` 26 | 27 | ## Usage 28 | 29 | 1. Create a new action in your workflow which uses `cstuder/apprise-ga@master`. 30 | 1. Look up the syntax for your push notification URL in the list of [Supported Notifications](https://github.com/caronc/apprise#supported-notifications) by Apprise. (I.e. `protocol://user:password@hostname/channel`) 31 | 1. Add this URL as the secret `APPRISE_URL` to the action. 32 | 1. Add your message to `args` in the format ["TITLE", "MESSAGE"]. (This might not work in the current version of the visual workflow editor.) 33 | 34 | ### Inserting event data with templates 35 | 36 | For both title and message you can use the [Jinja2](http://jinja.pocoo.org) syntax to insert data from the event trigger (`/github/workflow/event.json`) into your notification. 37 | 38 | Find the event data in the list of [GitHub webhook payloads](https://developer.github.com/v3/activity/events/types/). 39 | 40 | #### Templating example 41 | 42 | For a push event, you might use the following arguments: 43 | 44 | `args = ["Push received on {{ ref }}", "Commit by {{ head_commit.author.name }}: {{ head_commit.message | truncate(128) }} ({{ head_commit.id[0:7] }})"]` 45 | 46 | ## Action configuration 47 | 48 | ### Environment variables 49 | 50 | None. 51 | 52 | ### Secrets 53 | 54 | Key|Value 55 | ---|--- 56 | `APPRISE_URL`|Notification URL according to [Apprise](https://github.com/caronc/apprise#supported-notifications) 57 | 58 | ### Required arguments 59 | 60 | Position|Value 61 | ---|--- 62 | 1|Notification title 63 | 2|Notification message 64 | 65 | ### Optional arguments 66 | 67 | None. 68 | 69 | ## License 70 | 71 | MIT. 72 | -------------------------------------------------------------------------------- /src/actions/assignee-to-reviewer.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/assignee-to-reviewer' 3 | title: 'Set pull request reviewers based on assignees' 4 | github_url: 'https://github.com/pullreminders/assignee-to-reviewer-action' 5 | author: 'pullreminders' 6 | tags: ['github', 'pull-request'] 7 | subtitle: 'If your team currently uses pull request Assignees but would like to switch to Review Requests, having everyone change their workflows can be difficult. This GitHub Action eases the transition by automatically creating and removing review requests based on Assignees.' 8 | --- 9 | 10 | ## Usage 11 | 12 | This Action subscribes to [Pull request events](https://developer.github.com/v3/activity/events/types/#pullrequestevent) which fire whenever users are assigned or unassigned to pull requests. 13 | 14 | ```workflow 15 | workflow "Assign reviewers based on assignees" { 16 | on = "pull_request" 17 | resolves = ["Assignee to reviewer"] 18 | } 19 | 20 | action "Assignee to reviewer" { 21 | uses = "pullreminders/assignee-to-reviewer-action@master" 22 | secrets = [ 23 | "GITHUB_TOKEN" 24 | ] 25 | } 26 | ``` 27 | 28 | ## Demo 29 | 30 | 31 | -------------------------------------------------------------------------------- /src/actions/automerge.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/automerge' 3 | title: 'Automerge' 4 | github_url: 'https://github.com/pascalgn/automerge-action' 5 | author: 'Pascal' 6 | twitter: '@pascalgn' 7 | tags: ['merge', 'rebase'] 8 | subtitle: 'GitHub action to automatically merge pull requests that are ready.' 9 | --- 10 | 11 | GitHub action to automatically merge pull requests that are ready. 12 | 13 | This action will behave differently based on the labels assigned to a pull request: 14 | 15 | - `automerge` means that changes from the base branch will automatically be merged into the pull request, but only when "Require branches to be up to date before merging" is enabled in the branch protection rules. When the PR is ready, it will automatically be merged. 16 | - `autorebase` means that when changes happen in the base branch, the pull request will be rebased onto the base branch. When the PR is ready, it will automatically be merged (with a merge commit) into the base branch. 17 | - pull requests without one of these labels will be ignored 18 | 19 | A pull request is considered ready when: 20 | 21 | 1. the required number of review approvals has been given (if enabled in the branch protection rules) and 22 | 2. the required checks have passed (if enabled in the branch protection rules) and 23 | 3. the pull request is up to date (if enabled in the branch protection rules) 24 | 25 | After the pull request has been merged successfully, the branch will be deleted (unless there exist branch protection rules preventing this branch from being deleted). 26 | 27 | ## Usage 28 | 29 | Add this to your `.github/main.workflow` file: 30 | 31 | ``` 32 | workflow "automerge pull requests on updates" { 33 | on = "pull_request" 34 | resolves = ["automerge"] 35 | } 36 | 37 | workflow "automerge pull requests on reviews" { 38 | on = "pull_request_review" 39 | resolves = ["automerge"] 40 | } 41 | 42 | workflow "automerge pull requests on status updates" { 43 | on = "status" 44 | resolves = ["automerge"] 45 | } 46 | 47 | workflow "rebase other pull requests after merges" { 48 | on = "push" 49 | resolves = ["automerge"] 50 | } 51 | 52 | action "automerge" { 53 | uses = "pascalgn/automerge-action@9d655352861c757731df72b6ac21d65fdf6d92ee" 54 | secrets = ["GITHUB_TOKEN"] 55 | } 56 | ``` 57 | -------------------------------------------------------------------------------- /src/actions/aws-sam.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/aws-sam' 3 | title: 'AWS SAM' 4 | github_url: 'https://github.com/apex/actions/' 5 | author: 'apex' 6 | tags: ['aws', 'sam', 'serverless'] 7 | subtitle: 'Deploy serverless infrastructure with AWS SAM' 8 | --- 9 | 10 | 11 | 12 | ## Actions 13 | 14 | [GitHub Actions](https://github.com/features/actions) for automating builds, deployments, and so on. 15 | 16 | - [Up](./up) — Deploy serverless applications and APIs to [AWS Lambda](https://aws.amazon.com/lambda/) 17 | - [Go](./go) — Build Go applications 18 | - [Slack](./slack) — Send Slack messages 19 | - [AWS SAM](./aws/sam) — Deploy serverless infrastructure with [AWS SAM](https://aws.amazon.com/serverless/sam/) 20 | 21 | ## Resources 22 | 23 | - [Docker Images](https://github.com/lambci/docker-lambda) for Lambda 24 | 25 | --- 26 | -------------------------------------------------------------------------------- /src/actions/aws.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/aws' 3 | title: 'aws' 4 | github_url: 'https://github.com/actions/aws' 5 | author: 'github' 6 | tags: ['aws', 'amazon'] 7 | subtitle: 'This repository contains GitHub Actions for Amazon Web Services, for performing common tasks such as using EKS, as well as a generic cli for doing arbitrary actions with the AWS commandline client.' 8 | --- 9 | 10 | ## Usage 11 | 12 | Usage information for individual commands can be found in their respective directories. 13 | -------------------------------------------------------------------------------- /src/actions/azure.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/azure' 3 | title: 'Azure' 4 | github_url: 'https://github.com/Azure/github-actions' 5 | author: 'Azure' 6 | tags: ['azure', 'microsoft'] 7 | subtitle: 'This Action for Azure enables arbitrary actions for interacting with Azure services via the az command-line client.' 8 | --- 9 | 10 | _Not much details on the README.md_ 11 | 12 | More information found here [https://github.com/Azure/github-actions](https://github.com/Azure/github-actions) 13 | -------------------------------------------------------------------------------- /src/actions/azure_node.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/azure-node' 3 | title: 'Azure-Node' 4 | github_url: 'https://github.com/sdras/example-azure-node' 5 | author: 'Sarah Drasner' 6 | tags: ['azure', 'microsoft'] 7 | twitter: '@sarah_edo' 8 | subtitle: 'An example Node webapp deployed to Azure with GitHub actions. More info in this article: css-tricks.com/introducing-github-actions.' 9 | --- 10 | -------------------------------------------------------------------------------- /src/actions/cake-tasks.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/cake-tasks' 3 | title: 'Cake Tasks' 4 | github_url: 'https://github.com/gep13/cake-actions' 5 | author: 'gep13' 6 | tags: [] 7 | subtitle: 'These Cake GitHub Actions allow you to run Cake tasks as part of your GitHub workflow..' 8 | --- 9 | 10 | ## Actions 11 | 12 | ### Task Action 13 | 14 | Runs a Cake Task, defined in a build.cake in the root of the repository. 15 | 16 | See the task [README](https://github.com/gep13/cake-actions/blob/master/task/README.md) for more details. 17 | -------------------------------------------------------------------------------- /src/actions/clojure-formatter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/clojure-formatter' 3 | title: 'Clojure Formatter' 4 | github_url: 'https://github.com/bltavares/actions' 5 | author: 'bltavares' 6 | tags: ['clojure', 'formatter', 'autofixer'] 7 | subtitle: 'This actions will check the formating of the project, using cljfmt.' 8 | --- 9 | 10 | ## Validations on Push 11 | 12 | This actions will check the formating of the project, using 13 | [cljfmt](https://github.com/weavejester/cljfmt). 14 | 15 | `cljfmt` plugin required to be installed on your project, 16 | as well as any variable needed to access all the dependencies of the project. 17 | 18 | Given that this plugin uses `lein cljfmt`, it might need extra environment 19 | variable and secrets, such as `AWS_ACCESS_KEY_ID` and `AWS_ACCESS_KEY_KEY`. 20 | 21 | ## Fixes on Pull Request review 22 | 23 | This action provides automated fixes using Pull Request review comments. 24 | 25 | If the comment starts with `fix $action_name` or `fix cljfmt`, a new commit will 26 | be added to the branch with the automated fixes applied. 27 | 28 | **Supports**: autofix on push 29 | 30 | ## Example workflow 31 | 32 | ```hcl 33 | workflow "on push" { 34 | on = "push" 35 | resolves = ["cljfmt"] 36 | } 37 | 38 | # Used for fix on review 39 | workflow "on review" { 40 | resolves = ["cljfmt"] 41 | on = "pull_request_review" 42 | } 43 | 44 | action "cljfmt" { 45 | uses = "bltavares/actions/cljfmt@master" 46 | # Enable autofix on push 47 | # args = ["autofix"] 48 | # Used for pushing changes for `fix` comments on review 49 | secrets = ["GITHUB_TOKEN"] 50 | } 51 | ``` 52 | -------------------------------------------------------------------------------- /src/actions/cloudflare-worker.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/cloudflare-workder' 3 | title: 'Cloudflare worker' 4 | github_url: 'https://github.com/cpilsworth/cloudflare-worker-action' 5 | author: 'cpilsworth' 6 | tags: ['Cloudflare', 'Worker'] 7 | subtitle: 'A GitHub action to deploy a Cloudflare Worker on push to the master branch.' 8 | --- 9 | 10 | [![Build Status](https://travis-ci.org/cpilsworth/cloudflare-worker-action.svg?branch=master)](https://travis-ci.org/cpilsworth/cloudflare-worker-action) 11 | 12 | ```hcl 13 | workflow "on push to master, deploy worker to Cloudflare" { 14 | on = "push" 15 | resolves = ["worker deploy"] 16 | } 17 | 18 | action "worker deploy" { 19 | uses = "cpilsworth/cloudflare-worker-action@master" 20 | env = { 21 | CLOUDFLARE_EMAIL = "you@example.com", 22 | CLOUDFLARE_ZONE = "diffa.co.uk", 23 | WORKER_JS = "bin/worker.js", 24 | } 25 | secrets = [ "CLOUDFLARE_TOKEN" ] 26 | } 27 | ``` 28 | 29 | _Heavily_ inspired by [Jessie Frazelle's](https://twitter.com/jessfraz) [aws-fargate-action](https://github.com/jessfraz/aws-fargate-action) GitHub action project. :trophy: 30 | 31 | ### Tests 32 | 33 | The tests use [shellcheck](https://github.com/koalaman/shellcheck). You don't 34 | need to install anything. They run in a container. 35 | 36 | ```console 37 | $ make test 38 | ``` 39 | 40 | ### Using the `Makefile` 41 | 42 | ```console 43 | $ make help 44 | cf-apply Run terraform apply for Amazon. 45 | cf-destroy Run terraform destroy for Amazon. 46 | cf-plan Run terraform plan for Amazon. 47 | shellcheck Runs the shellcheck tests on the scripts. 48 | test Runs the tests on the repository. 49 | update-terraform Update terraform binary locally from the docker container. 50 | update Update terraform binary locally. 51 | ``` 52 | -------------------------------------------------------------------------------- /src/actions/composer.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/composer' 3 | title: 'Composer' 4 | github_url: 'https://github.com/pxgamer/composer-action' 5 | author: 'Owen Voke' 6 | twitter: '@pxgamer112' 7 | tags: ['php', 'composer'] 8 | subtitle: 'GitHub Action for interacting with Composer.' 9 | --- 10 | 11 | # Action details 12 | 13 | This Action for [Composer](https://getcomposer.org) enables arbitrary actions with the Composer command-line client. 14 | 15 | ## Usage 16 | 17 | Via GitHub Workflow 18 | 19 | ```hcl 20 | action "Composer Install" { 21 | uses = "pxgamer/composer-action" 22 | args = "install" 23 | } 24 | ``` 25 | 26 | -------------------------------------------------------------------------------- /src/actions/cowsays.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/cowsays' 3 | title: 'Cowsays Action' 4 | github_url: 'https://github.com/mscoutermarsh/cowsays-action' 5 | author: 'Mike Coutermarsh' 6 | twitter: '@mscccc' 7 | subtitle: 'Say things with a cow' 8 | --- 9 | 10 | 11 | # Action details 12 | 13 | # 🐮 cowsays-action 14 | Cowsays for GitHub Actions. This Action wraps the [ruby_cowsay](https://github.com/PatrickTulskie/ruby_cowsay) gem. 15 | 16 | ``` 17 | _____________ 18 | < Ship it!!!!!! > 19 | ------------- 20 | \ ^__^ 21 | \ (oo)\_______ 22 | (__)\ )\/\ 23 | ||----w | 24 | || || 25 | 26 | ``` 27 | 28 | ## 🐄 Usage 29 | 30 | ```hcl 31 | workflow "Deploy Master" { 32 | on = "push" 33 | resolves = ["cow"] 34 | } 35 | 36 | action "cow" { 37 | uses = "mscoutermarsh/cowsays-action@master" 38 | args = "Ship it!!!!!" 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /src/actions/dart-formatter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/dart-formatter' 3 | title: 'Dart & flutter formatter' 4 | github_url: 'https://github.com/bltavares/actions' 5 | author: 'bltavares' 6 | tags: ['dart', 'flutter', 'dartfmt', 'formatter', 'autofixer'] 7 | subtitle: 'This actions will check the formating of a Dart (or Flutter) project, using dartfmt.' 8 | --- 9 | 10 | ## Validations on Push 11 | 12 | This actions will check the formating of a Dart (or Flutter) project, 13 | using [dartfmt](https://github.com/dart-lang/dart_style). 14 | 15 | ## Fixes on Pull Request review 16 | 17 | This action provides automated fixes using Pull Request review comments. 18 | 19 | If the comment starts with `fix $action_name` or `fix dartfmt`, a new commit 20 | will be added to the branch with the automated fixes applied. 21 | 22 | **Supports**: autofix on push 23 | 24 | ## Example workflow 25 | 26 | ```hcl 27 | workflow "on push" { 28 | on = "push" 29 | resolves = ["dartfmt"] 30 | } 31 | 32 | workflow "on review" { 33 | resolves = ["dartfmt"] 34 | on = "pull_request_review" 35 | } 36 | 37 | action "dartfmt" { 38 | uses = "bltavares/actions/dartfmt@master" 39 | # Enable autofix on push 40 | # args = ["autofix"] 41 | # Used for pushing changes for `fix` comments on review 42 | secrets = ["GITHUB_TOKEN"] 43 | } 44 | ``` 45 | -------------------------------------------------------------------------------- /src/actions/digitalocean.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/actions" 3 | title: "DigitalOcean" 4 | github_url: "https://github.com/digitalocean/actions" 5 | author: "digitalocean" 6 | subtitle: "GitHub Actions for DigitalOcean" 7 | tags: ['cli', 'cloud', 'digitalocean'] 8 | --- 9 | # GitHub Actions for DigitalOcean 10 | 11 | This action enables you to interact with [DigitalOcean](https://www.digitalocean.com/) services via [the `doctl` command-line client](https://github.com/digitalocean/doctl). 12 | 13 | ## Usage 14 | 15 | As an example, one common use case is retrieving the credentials for a Kubernetes cluster hosted on DigitalOcean for use in a deployment workflow: 16 | 17 | 18 | ```hcl 19 | action "Save DigitalOcean kubeconfig" { 20 | needs = ["Push image to Docker Hub"] 21 | uses = "digitalocean/actions/doctl@master" 22 | secrets = ["DIGITALOCEAN_ACCESS_TOKEN"] 23 | env = { 24 | CLUSTER_NAME = "example" 25 | } 26 | args = ["kubernetes cluster kubeconfig show $CLUSTER_NAME > $HOME/.kubeconfig"] 27 | } 28 | ``` 29 | 30 | See [this reposirory](https://github.com/andrewsomething/example-doctl-action) for a full end-to-end example that also demonstrates building the Docker image, pushing it to Docker Hub, and using `kubectl` to deploy to the Kubernetes cluster on DigitalOcean. 31 | 32 | ### Secrets 33 | 34 | - `DIGITALOCEAN_ACCESS_TOKEN` – **Required** A DigitalOcean personal access token ([more info](https://www.digitalocean.com/docs/api/create-personal-access-token/)). 35 | 36 | ### Environment variables 37 | 38 | We provide defaults for the following, these may also be overridden: 39 | 40 | - `DIGITALOCEAN_OUTPUT_FORMAT`- **Optional** doctl's output output format, defaults to `json` 41 | 42 | By default, this action is configured to save output in JSON format to `${HOME}/${GITHUB_ACTION}.${DIGITALOCEAN_OUTPUT_FORMAT}`for consumption by downstream actions. 43 | 44 | ## License 45 | 46 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 47 | -------------------------------------------------------------------------------- /src/actions/discord-notification.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/discord-notification' 3 | title: 'Discord Notification' 4 | github_url: 'https://github.com/Ilshidur/action-discord' 5 | author: 'Ilshidur' 6 | tags: ['discord', 'notification'] 7 | subtitle: 'Sends a Discord notification message. Simple as that. Supports all workflow event types by using the Discord GitHub webhooks.' 8 | --- 9 | 10 | Sends a Discord notification message. Simple as that. 11 | Supports all [workflow event types](https://developer.github.com/webhooks/#events) by using the [Discord GitHub webhooks](https://discordapp.com/developers/docs/resources/webhook#execute-githubcompatible-webhook). 12 | 13 | ![GitHub Action](action.png 'GitHub Action') 14 | 15 | _Appearance on Discord :_ 16 | 17 | ![Discord message](discord.png 'Discord message') 18 | 19 | This GitHub action is part of a list of Actions that are located in an other repo. Feel free to check it out : https://github.com/Ilshidur/actions. 20 | 21 |
22 | 23 | ## Usage 24 | 25 | ``` 26 | action "Discord notification" { 27 | uses = "Ilshidur/actions/discord@master" 28 | secrets = ["DISCORD_WEBHOOK"] 29 | args = "The project has been deployed." 30 | } 31 | ``` 32 | 33 | **NOTICE :** for stability purposes, it is recommended to use the action with an explicit commit SHA-1 : 34 | 35 | `uses = "Ilshidur/actions/discord@a08c189"` (=> link to the commits list : https://github.com/Ilshidur/actions/commits/master) 36 | 37 | ### Arguments 38 | 39 | By default, the GitHub action will send a notificaction with the event informations. Providing the arguments will override the message. 40 | 41 | #### Examples 42 | 43 | - `args = "Hello, beautiful ! I ran a GitHub Actions for you <3"` 44 | - `args = "I showed you my commit. Please respond."` 45 | 46 | ### Secrets 47 | 48 | - **`DISCORD_WEBHOOK`** (**required**): the Discord webhook URL (see https://support.discordapp.com/hc/en-us/articles/228383668-Intro-to-Webhooks) 49 | - **_IMPORTANT !!_ You MUST NOT append `/github` at the end of the webhook.** 50 | - That's all. 51 | -------------------------------------------------------------------------------- /src/actions/dnscontrol-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/dnscontrol-action' 3 | title: 'dnscontrol-action' 4 | github_url: 'https://github.com/koenrh/dnscontrol-action' 5 | author: 'koenrh' 6 | subtitle: 'Deploy your DNS configuration using GitHub Actions using DNSControl.' 7 | tags: ['dns'] 8 | --- 9 | 10 | # DNSControl Action 11 | 12 | Deploy your DNS configuration using [GitHub Actions](https://github.com/actions) 13 | using [DNSControl](https://github.com/StackExchange/dnscontrol/). 14 | 15 | ## Usage 16 | 17 | These are the three relevant sub commands to use with this action. 18 | 19 | ### check 20 | 21 | Run the action with the 'check' argument in order to check and validate the `dnscontrol.js` 22 | file. This action does not communicate with the DNS providers, hence does not require 23 | any secrets to be set. 24 | 25 | ```workflow 26 | action "DNSControl check" { 27 | uses = "koenrh/dnscontrol-action@master" 28 | args = "check" 29 | } 30 | ``` 31 | 32 | ### preview 33 | 34 | Run the action with the 'preview' argument to check what changes need to be made. 35 | It prints out what DNS records are expected to be created, modified or deleted. 36 | This action requires the secrets for the specified DNS providers. 37 | 38 | ```workflow 39 | action "DNSControl preview" { 40 | uses = "koenrh/dnscontrol-action@master" 41 | args = "preview" 42 | secrets = ["CLOUDFLARE_API_USER", "CLOUDFLARE_API_KEY"] 43 | } 44 | ``` 45 | 46 | This is the action you probably want to run for each branch so that proposed changes 47 | could be verified before an authorized person merges these changes into `master`. 48 | 49 | ### push 50 | 51 | Run the action with the 'push' arugment to publish the changes to the specified 52 | DNS providers. 53 | 54 | Running the action with the 'push' argument will publish the changes with the 55 | specified DNS providers. You should probably only use this command combined with 56 | the GitHub [Filters action](https://github.com/actions/bin/tree/master/filter#filters-for-github-actions) 57 | to make sure that only changes in the `master` branch are deployed to production. 58 | 59 | ```workflow 60 | action "DNSControl push" { 61 | uses = "koenrh/dnscontrol-action@master" 62 | args = "push" 63 | secrets = ["CLOUDFLARE_API_KEY", "CLOUDFLARE_API_USER"] 64 | } 65 | ``` 66 | 67 | You should probably only use this command combined with the GitHub [Filters action](https://github.com/actions/bin/tree/master/filter#filters-for-github-actions) 68 | to make sure that only changes in the `master` branch are deployed to production. 69 | 70 | ## Secrets 71 | 72 | Depending on the DNS providers that are used, this action requires secrets to be 73 | set. 74 | 75 | ### Cloudflare 76 | 77 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/cloudflare) 78 | 79 | - `CLOUDFLARE_API_USER` 80 | - `CLOUDFLARE_API_KEY` 81 | - `CLOUDFLARE_ACCOUNT_ID` (optional) 82 | - `CLOUDFLARE_ACCOUNT_NAME` (optional) 83 | 84 | ### DigitalOcean 85 | 86 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/digitalocean) 87 | 88 | - `DIGITALOCEAN_OAUTH_TOKEN` 89 | 90 | ### DNSimple 91 | 92 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/dnsimple) 93 | 94 | - `DNSIMPLE_ACCOUNT_ACCESS_TOKEN` 95 | 96 | ### Gandi 97 | 98 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/gandi) 99 | 100 | - `GANDI_API_KEY` 101 | 102 | ### Google CLOUD DNS 103 | 104 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/gcloud) 105 | 106 | - `GOOGLE_CLOUD_PROJECT_ID` 107 | - `GOOGLE_CLOUD_PRIVATE_KEY_ID` 108 | - `GOOGLE_CLOUD_PRIVATE_KEY` 109 | - `GOOGLE_CLOUD_CLIENT_EMAIL` 110 | - `GOOGLE_CLOUD_CLIENT_ID` 111 | - `GOOGLE_CLOUD_CLIENT_X509_CERT_URL` 112 | 113 | ### Linode 114 | 115 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/linode) 116 | 117 | - `LINODE_ACCESS_TOKEN` 118 | 119 | ### Name.com 120 | 121 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/name.com) 122 | 123 | - `NAME_COM_API_USER` 124 | - `NAME_COM_API_KEY` 125 | - `NAME_COM_API_URL` (optional) 126 | 127 | ### Namecheap 128 | 129 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/namecheap) 130 | 131 | - `NAMECHEAP_API_USER` 132 | - `NAMECHEAP_API_KEY` 133 | - `NAMECHEAP_BASE_URL` (optional) 134 | 135 | ### NS1 136 | 137 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/ns1) 138 | 139 | - `NSONE_API_KEY` 140 | 141 | ### OVH 142 | 143 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/ovh) 144 | 145 | - `OVH_APP_KEY` 146 | - `OVH_APP_SECRET_KEY` 147 | - `OVH_CONSUMER_KEY` 148 | 149 | ### Amazon Route 53 150 | 151 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/route53) 152 | 153 | - `AWS_ACCESS_KEY_ID` 154 | - `AWS_SECRET_ACCESS_KEY` 155 | - `AWS_SESSION_TOKEN` (optional) 156 | 157 | ### SoftLayer 158 | 159 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/softlayer) 160 | 161 | - `SOFTLAYER_USERNAME` 162 | - `SOFTLAYER_API_KEY` 163 | 164 | ### Vultr 165 | 166 | [Documentation](https://stackexchange.github.io/dnscontrol/providers/vultr) 167 | 168 | - `VULTR_TOKEN` 169 | -------------------------------------------------------------------------------- /src/actions/docker-linter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/docker-linter' 3 | title: 'DockerFile Linter' 4 | github_url: 'https://github.com/jwr0/dockerfile-linter-action' 5 | author: 'jwr0' 6 | tags: ['docker', 'linter'] 7 | subtitle: 'A GitHub action for linting Dockerfiles and commenting on a PR with any errors.' 8 | --- 9 | 10 | ## Usage 11 | 12 | You should have something like this in your `.github/main.workflow`: 13 | 14 | ``` 15 | workflow "on pull request, Dockerfile lint" { 16 | on = "pull_request" 17 | resolves = ["Dockerfile lint"] 18 | } 19 | 20 | action "Dockerfile lint" { 21 | uses = "jwr0/dockerfile-linter-action" 22 | secrets = ["GITHUB_TOKEN"] 23 | # Optionally, if your Dockerfile is not in the root of your repository, 24 | # you can specify a DOCKERFILE environment variable with the path to 25 | # your Dockerfile 26 | env = { 27 | DOCKERFILE = "./some/other/directory/Dockerfile" 28 | } 29 | } 30 | ``` 31 | 32 | As part of a pull request, the GitHub Action bot will comment with any 33 | mistakes it found in your Dockerfile. Or if no mistakes are found, it won't 34 | leave any comment. 35 | 36 | ![demo](demo.png) 37 | 38 | ## Underlying project 39 | 40 | This GitHub Action repository simply packages up other software to make them usable in the context of GitHub Actions. Specifically, the logic used by the Dockerfile linter comes from another project: [replicatedhq/dockerfilelint](https://github.com/replicatedhq/dockerfilelint). They also offer a web-based linter at [fromlatest.io](https://www.fromlatest.io/). 41 | 42 | ## Issues 43 | 44 | Any issues using this GitHub Action can be filed using [GitHub Issues](https://github.com/jwr0/dockerfile-linter-action/issues). 45 | -------------------------------------------------------------------------------- /src/actions/docker.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/docker' 3 | title: 'Docker' 4 | github_url: 'https://github.com/actions/docker' 5 | author: 'GitHub' 6 | tags: ['docker', 'cli'] 7 | subtitle: 'This repository contains GitHub Actions for Docker, for performing common tasks such as authorizing and tagging containers, as well as a generic cli for doing arbitrary actions with the Docker commandline client.' 8 | --- 9 | 10 | ## Usage 11 | 12 | Usage information for individual commands can be found in their respective directories. 13 | -------------------------------------------------------------------------------- /src/actions/ember-cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/ember-cli' 3 | title: 'Ember Cli' 4 | github_url: 'https://github.com/NuckChorris/ember-cli-actions' 5 | author: 'NuckChorris' 6 | tags: ['ember'] 7 | subtitle: 'This Action for ember-cli enables arbitrary actions with the ember-cli command-line client, including deploying ember applications with ember-cl-deploy.' 8 | --- 9 | 10 | ## Usage 11 | 12 | An example workflow to build, test, and publish an ember application follows: 13 | 14 | ```hcl 15 | workflow "Build, Test, and Publish" { 16 | on = "push" 17 | resolves = ["Deploy"] 18 | } 19 | 20 | action "Build" { 21 | uses = "NuckChorris/ember-cli-actions@master" 22 | args = "install" 23 | } 24 | 25 | action "Test" { 26 | needs = "Build" 27 | uses = "NuckChorris/ember-cli-actions@master" 28 | args = "test" 29 | } 30 | 31 | action "Publish" { 32 | needs = "Test" 33 | uses = "NuckChorris/ember-cli-actions@master" 34 | args = "deploy --access public" 35 | } 36 | ``` 37 | -------------------------------------------------------------------------------- /src/actions/firebase.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/firebase' 3 | title: 'Firebase' 4 | github_url: 'https://github.com/w9jds/firebase-action' 5 | author: 'w9jds' 6 | tags: ['firebase'] 7 | subtitle: 'This Action for firebase-tools enables arbitrary actions with the firebase command-line client..' 8 | --- 9 | 10 | ### Secrets 11 | 12 | - `FIREBASE_TOKEN` - **Required**. The token to use for authentication. This token can be aquired through the `firebase login:ci` command. 13 | 14 | ### Environment variables 15 | 16 | - `PROJECT_ID` - **Optional**. To specify a specific project to use for all commands, not required if you specify a project in your `.firebaserc` file. 17 | 18 | #### Example 19 | 20 | To authenticate with Firebase, and deploy to Firebase Hosting: 21 | 22 | ```hcl 23 | action "Deploy Production Site" { 24 | uses = "w9jds/firebase-action@master" 25 | args = "deploy --only hosting:prod" 26 | env = { 27 | PROJECT_ID = "new-eden-storage-a5c23" 28 | } 29 | secrets = ["FIREBASE_TOKEN"] 30 | } 31 | ``` 32 | -------------------------------------------------------------------------------- /src/actions/gatsby-cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/gatsby-cli' 3 | title: 'Gatsby CLI' 4 | github_url: 'https://github.com/jzweifel/gatsby-cli-github-action' 5 | author: 'Jacob Zweifel' 6 | twitter: '@jacob_zweifel' 7 | tags: [gatsby, cli] 8 | subtitle: 'This Action wraps the Gatsby CLI to enable common Gatsby commands.' 9 | --- 10 | 11 | 12 | # Action details 13 | 14 | ## Usage 15 | 16 | ```workflow 17 | workflow "Build Gatsby Site" { 18 | on = "push" 19 | resolves = ["build"] 20 | } 21 | 22 | action "build" { 23 | uses = "jzweifel/gatsby-cli-github-action" 24 | args = "build" 25 | } 26 | ``` 27 | 28 | ```workflow 29 | workflow "Build Gatsby Site in Subdirectory" { 30 | on = "push" 31 | resolves = ["build"] 32 | } 33 | 34 | action "build" { 35 | uses = "jzweifel/gatsby-cli-github-action" 36 | env = { 37 | GATSBY_PROJECT_PATH = "./client" 38 | } 39 | args = "build" 40 | } 41 | ``` 42 | 43 | ### Environment variables 44 | 45 | * `GATSBY_PROJECT_PATH` - **Optional**. Directory from which to execute the Gatsby CLI. 46 | -------------------------------------------------------------------------------- /src/actions/ghpages.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/ghpages" 3 | title: "ghpages" 4 | github_url: "https://github.com/maxheld83/ghpages" 5 | author: "maxheld83" 6 | subtitle: "Deploy arbitrary static assets to GitHub Actions" 7 | tags: ["github-actions","github-pages","deployment","static-site","cicd","continuous-integration","continuous-delivery","docker"] 8 | --- 9 | # GitHub Action to Deploy Static Assets to GitHub Actions 10 | 11 | [![Actions Status](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/badge/maxheld83/ghpages)](https://github.com/maxheld83/ghpages/actions) 12 | [![GitHubActions](https://img.shields.io/badge/as%20seen%20on%20-GitHubActions-blue.svg)](https://github-actions.netlify.com/ghpages) 13 | 14 | 15 | 16 | This action simply lets you deploy arbitrary folders of static content from your workflow's working directory (`/github/workspace`) to [GitHub pages](https://pages.github.com). 17 | This works by having your action instance `git push` your chosen asset folder (`BUILD_DIR`) to the `gh-pages` branch of your GitHub repository for the `gh-pages` branch to be served. 18 | Remember that you may also have to adjust your [repository settings](https://help.github.com/articles/configuring-a-publishing-source-for-github-pages/). 19 | 20 | There are already great GitHub actions to use static site generators *and* then deploy to GitHub Pages (for [jekyll](https://github.com/helaili/jekyll-action), [jekyll](https://github.com/BryanSchuetz/jekyll-deploy-gh-pages), [zola](https://github.com/shalzz/zola-deploy-action) and surely many more to come). 21 | This action isn't that, though I've borrowed much of the git action from these works. 22 | 23 | **This action will not build anything, it just deploys.** 24 | 25 | 26 | ## Secrets 27 | 28 | 29 | 30 | Deployment to GitHub pages happens by `git push`ing to the `gh-pages` branch. 31 | To authorise this, the GitHub action needs a secret. 32 | For now, somewhat confusingly, the `GITHUB_TOKEN` [available for every repo](https://developer.github.com/actions/creating-workflows/storing-secrets/) *does* suffice to push to `gh-pages`, but *does not* suffice to trigger a page build on GitHub, or even propagate the content to the GitHub content-delivery network. 33 | 34 | You therefore **have to [create a custom Personal Access Token (PAT)](https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/)** much like you'd do for external services (say, Travis). 35 | You then have to paste this token into the GitHub UI as a secret under the name `GH_PAT` (repository settings/secrets) and call it in the action as in the below. 36 | 37 | I've asked GitHub to streamline this process. 38 | The discussion is documented [here](https://github.com/maxheld83/ghaction-ghpages/issues/1). 39 | 40 | 41 | ## Environment Variables 42 | 43 | Just `BUILD_DIR`, the build directory relative to your repository root. 44 | You can also pass `/.` if you want to push your repository root. 45 | 46 | 47 | ## Arguments 48 | 49 | None. 50 | 51 | 52 | ## Example Usage 53 | 54 | 55 | 56 | ``` 57 | action "Deploy to GitHub Pages" { 58 | uses = "maxheld83/ghpages@v0.1.1" 59 | env = { 60 | BUILD_DIR = "public/" 61 | } 62 | secrets = ["GH_PAT"] 63 | } 64 | ``` 65 | -------------------------------------------------------------------------------- /src/actions/git-auto-commit-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/git-auto-commit-action" 3 | title: "git-auto-commit-action" 4 | github_url: "https://github.com/stefanzweifel/git-auto-commit-action" 5 | author: "stefanzweifel" 6 | subtitle: "Automatically Commit changed Files back to Github in Github Actions" 7 | tags: ["github-action","github-actions","git","github"] 8 | --- 9 | # git-auto-commit-action 10 | 11 | This GitHub Action automatically commits files which have been changed during a Workflow run and pushes the Commit back to GitHub. 12 | The Committer is "GitHub Actions " and the Author of the Commit is "Your GitHub Username . 13 | 14 | If no changes are available, the Actions does nothing. 15 | 16 | This Action has been inspired and adapted from the [auto-commit](https://github.com/cds-snc/github-actions/tree/master/auto-commit 17 | )-Action of the Canadian Digital Service and the [commit](https://github.com/elstudio/actions-js-build/blob/41d604d6e73d632e22eac40df8cc69b5added04b/commit/entrypoint.sh)-Action by Eric Johnson. 18 | 19 | ## Usage 20 | 21 | Add the following step at the end of your job. 22 | 23 | ```yaml 24 | - uses: stefanzweifel/git-auto-commit-action@v2.3.0 25 | with: 26 | commit_message: Apply automatic changes 27 | branch: ${{ github.head_ref }} 28 | 29 | # Optional git params 30 | commit_options: '--no-verify --signoff' 31 | 32 | # Optional glob pattern of files which should be added to the commit 33 | file_pattern: src/\*.js 34 | env: 35 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 36 | ``` 37 | 38 | You **do not** have to create a new secret called `GITHUB_TOKEN` in your repository. `GITHUB_TOKEN` is a special token GitHub creates automatically during an Action run. (See [the documentation](https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables) for details) 39 | 40 | The Action will only commit files back, if changes are available. The resulting commit **will not trigger** another GitHub Actions Workflow run! 41 | 42 | It is recommended to use this Action in Workflows which listen to the `pull_request` event. If you want to use the Action on other events, you have to hardcode the value for `branch` as `github.head_ref` is only available in Pull Requests. 43 | 44 | ## Example Usage 45 | 46 | This Action will only work, if the job in your workflow changes project files. 47 | The most common use case for this, is when you're running a Linter or Code-Style fixer on GitHub Actions. 48 | 49 | In this example I'm running `php-cs-fixer` in a PHP project. 50 | 51 | 52 | ```yaml 53 | name: php-cs-fixer 54 | 55 | on: 56 | pull_request: 57 | paths: 58 | - '**.php' 59 | 60 | jobs: 61 | php-cs-fixer: 62 | runs-on: ubuntu-latest 63 | 64 | steps: 65 | - uses: actions/checkout@v1 66 | with: 67 | fetch-depth: 1 68 | 69 | - name: Run php-cs-fixer 70 | uses: docker://oskarstark/php-cs-fixer-ga 71 | 72 | - name: Commit changed files 73 | uses: stefanzweifel/git-auto-commit-action@v2.3.0 74 | with: 75 | commit_message: Apply php-cs-fixer changes 76 | branch: ${{ github.head_ref }} 77 | file_pattern: src/\*.php 78 | env: 79 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 80 | 81 | ``` 82 | 83 | ### Inputs 84 | 85 | Checkout [`action.yml`](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/action.yml) for a full list of supported inputs. 86 | 87 | ## Versioning 88 | 89 | We use [SemVer](http://semver.org/) for versioning. For the versions available, see the [tags on this repository](https://github.com/stefanzweifel/git-auto-commit-action/tags). 90 | 91 | ## License 92 | 93 | This project is licensed under the MIT License - see the [LICENSE](https://github.com/stefanzweifel/git-auto-commit-action/blob/master/LICENSE) file for details. 94 | -------------------------------------------------------------------------------- /src/actions/gitcret.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/gitcret" 3 | title: "gitcret" 4 | github_url: "https://github.com/CySeq/gitcret" 5 | author: "CySeq" 6 | subtitle: "Prevents pushing sensitive keys/credentials. Continuously scan your repositories, commits or pull-requests for sensitive credentials and generate alerts." 7 | tags: ["security","security-tools","security-automation","devops","github-actions","gitleaks","github-secrets","security-audit"] 8 | --- 9 | # gitCret 10 | Prevents pushing sensitive keys/credentials. Continuously scan your repositories, commits or pull-requests for sensitive credentials and generate alerts. 11 | 12 | # Setup 13 | 14 | ## New Workflow 15 | 16 | - Add following code to the .github/workflows/gitcret.yml 17 | ``` 18 | name: gitCret 19 | 20 | on: [pull_request, push] 21 | 22 | jobs: 23 | gitcret: 24 | runs-on: ubuntu-latest 25 | steps: 26 | - uses: actions/checkout@v1 27 | - name: gitCret 28 | uses: CySeq/gitcret@v2 29 | env: 30 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 31 | ``` 32 | - Your code will be automatically audited for sensitive credentials on each PR and Commit. 33 | 34 | ## Existing Workflow 35 | 36 | - Add following code as a new Job inside your workflow. 37 | ``` 38 | gitcret: 39 | runs-on: ubuntu-latest 40 | steps: 41 | - uses: actions/checkout@v1 42 | - name: gitCret 43 | uses: CySeq/gitcret@v2 44 | env: 45 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 46 | ``` 47 | 48 | ## Environment Variables 49 | - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 50 | 51 | ## Credits 52 | - [zricethezav/gitleaks](https://github.com/zricethezav/gitleaks) for underlying git credentials detection mechanism. 53 | -------------------------------------------------------------------------------- /src/actions/github-deployments.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/github-deployment-action" 3 | title: "github-deployment-action" 4 | github_url: "https://github.com/NiklasMerz/github-deployment-action" 5 | author: "NiklasMerz" 6 | subtitle: "Create deployments on Github with actions" 7 | tags: ["actions","github-actions","deployment","github-deployment","github-action"] 8 | --- 9 | # Create Github deployments in you actions 10 | 11 | > If you have any questions please ping me. This action basically works but has not all features I want it to. 12 | 13 | This actions allows you to create a deployment and set a deployment status. 14 | 15 | For options please see `deployment.js` and the [Github documentation](https://developer.github.com/v3/repos/deployments/) 16 | 17 | First create a deployment and with flag `-f` create the success status: 18 | ```` 19 | - name: create deployment 20 | uses: niklasmerz/github-deployment-action@master 21 | if: contains(github.ref, 'master') 22 | env: 23 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 24 | with: 25 | args: -o niklasmerz -r myrepo -c master -e production 26 | - name: set deployment status 27 | uses: niklasmerz/github-deployment-action@master 28 | if: contains(github.ref, 'master') 29 | env: 30 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 31 | with: 32 | args: -o niklasmerz -r myrepo -s success -u https://url.com -f 33 | ```` 34 | -------------------------------------------------------------------------------- /src/actions/github-push-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/github-push-action' 3 | title: 'github-push-action' 4 | github_url: 'https://github.com/ad-m/github-push-action' 5 | author: 'ad-m' 6 | tags: ['git'] 7 | subtitle: 'The GitHub Actions for pushing to GitHub repository local changes authorizing using GitHub token.' 8 | --- 9 | 10 | # GitHub Action for GitHub Push 11 | 12 | The GitHub Actions for pushing to GitHub repository local changes authorizing using GitHub token. 13 | 14 | With ease: 15 | - update new code placed in the repository, e.g. by running a linter on it, 16 | - track changes in script results using Git as archive, 17 | - publish page using GitHub-Pages, 18 | - mirror changes to a separate repository. 19 | 20 | ## Example Workflow file 21 | 22 | An example workflow to authenticate with GitHub Platform: 23 | 24 | ```yaml 25 | jobs: 26 | build: 27 | runs-on: ubuntu-latest 28 | steps: 29 | - uses: actions/checkout@master 30 | - name: Create local changes 31 | run: | 32 | ... 33 | - name: Commit files 34 | run: | 35 | git config --local user.email "action@github.com" 36 | git config --local user.name "GitHub Action" 37 | git commit -m "Add changes" -a 38 | - name: Push changes 39 | uses: ad-m/github-push-action@master 40 | with: 41 | github_token: ${{ secrets.GITHUB_TOKEN }} 42 | ``` 43 | 44 | ## Inputs 45 | 46 | | name | value | default | description | 47 | | ---- | ----- | ------- | ----------- | 48 | | github_token | string | | Token for the repo. Can be passed in using `${{ secrets.GITHUB_TOKEN }}`. | 49 | | branch | string | 'master' | Destination branch to push changes. | 50 | | force | boolean | false | Determines if force push is used. | 51 | | directory | string | '.' | Directory to change to before pushing. | 52 | | repository | string | '' | Repository name. Default or empty repository name represents current github repository. If you want to push to other repository, you should make a [personal access token](https://github.com/settings/tokens) and use it as the `github_token` input. | 53 | 54 | ## No affiliation with GitHub Inc. 55 | 56 | GitHub are registered trademarks of GitHub, Inc. GitHub name used in this project are for identification purposes only. The project is not associated in any way with GitHub Inc. and is not an official solution of GitHub Inc. It was made available in order to facilitate the use of the site GitHub. 57 | -------------------------------------------------------------------------------- /src/actions/github-wiki.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/github-wiki-action" 3 | title: "github-wiki-action" 4 | github_url: "https://github.com/Andrew-Chen-Wang/github-wiki-action" 5 | author: "Andrew-Chen-Wang" 6 | subtitle: "Updates your GitHub wiki by using rsync" 7 | tags: ["actions","wiki","github-actions"] 8 | --- 9 | # Andrew-Chen-Wang/github-wiki-action@v2 10 | Updates your GitHub wiki by using rsync. 11 | 12 | This action updates your repository's wiki 13 | based on a single directory that matches with 14 | your Wiki's git. You can use a Wiki directory 15 | from any repository you wish. 16 | 17 | _**It is recommended that you still have a Home.md 18 | or whatever extension you want instead of MD.**_ This 19 | is so that GitHub doesn't automatically make a Home.md 20 | for you again. 21 | 22 | Table of Contents: 23 | - Features 24 | - Usage 25 | - Inputs 26 | - Inspiration 27 | - License 28 | - Non-Affiliation with Github Inc. 29 | 30 | --- 31 | ### Features 32 | 33 | - rsync all your files from one directory (either from the current or other repository) to your GitHub's repo's wiki. 34 | - rsyncing from a different repository requires a [GitHub PAT](https://github.com/settings/tokens/new?scopes=repo&description=wiki%20page%20creator%20token) 35 | - Use the commit message from your repository's git's commit. You can specify a custom one if you want. 36 | - Be able to exclude files and directories based on an input of a list. 37 | 38 | --- 39 | ### Usage 40 | 41 | You must have a single wiki page available from the beginning. 42 | It can be blank, but there must be at least one page that exists. 43 | You must also have a directory where all your wiki files will 44 | be located (the default directory is "wiki/"). To include the 45 | mandatory homepage, have a file in your wiki/ directory 46 | called Home.md or with any other extension (e.g. rst). 47 | 48 | ```yaml 49 | name: Deploy Wiki 50 | 51 | on: 52 | push: 53 | paths: 54 | # Trigger only when wiki directory changes 55 | - 'wiki/**' 56 | branches: 57 | # And only on master branch 58 | - master 59 | 60 | jobs: 61 | deploy-wiki: 62 | runs-on: ubuntu-latest 63 | steps: 64 | - uses: actions/checkout@v2 65 | 66 | - name: Push Wiki Changes 67 | uses: Andrew-Chen-Wang/github-wiki-action@v2 68 | env: 69 | # Make sure you have that / at the end. We use rsync 70 | # WIKI_DIR's default is wiki/ 71 | WIKI_DIR: wiki/ 72 | GH_PAT: ${{ secrets.GITHUB_TOKEN }} 73 | GH_MAIL: ${{ secrets.YOUR_EMAIL }} 74 | GH_NAME: ${{ github.repository_owner }} 75 | EXCLUDED_FILES: "a/ b.md" 76 | ``` 77 | 78 | If you plan on having a different repository host your wiki 79 | directory, you're going to need a Personal Access Token instead of the `GITHUB_TOKEN` 80 | with the minimal scopes [seen here.](https://github.com/settings/tokens/new?scopes=repo&description=wiki%20page%20creator%20token) 81 | 82 | --- 83 | ### Inputs 84 | 85 | | Argument | Required | Default value | Description | 86 | |----------|----------|---------------|-------------| 87 | | WIKI_DIR | No | wiki/ | Directory to rsync files to the wiki.(https://github.com/settings/tokens/new?scopes=repo). | 88 | | GH_TOKEN | Yes | | The GitHub Token for this action to use. Specify `${{ secrets.GITHUB_TOKEN }}`. | 89 | | GH_MAIL | Yes | | The email associated with the token. | 90 | | GH_NAME | Yes | | The username associated with the token. | 91 | | EXCLUDED_FILES | No | | The files or directories you want to exclude. Note, we use rsync | 92 | | REPO | No | `${{ github.repository }}` | The target repository. Default is the current repo. If you specify a different repository (e.g. Andrew-Chen-Wang/github-wiki-action), then you must use a PAT. | 93 | | WIKI_PUSH_MESSAGE | No | Your commit's message | The message to add to your commit to the wiki git | 94 | 95 | --- 96 | ### Inspiration 97 | This intended usage was to avoid hosting a private ReadTheDocs 98 | and instead just use GitHub wiki. 99 | 100 | Largely inspired by [wiki-page-creator-action](https://github.com/Decathlon/wiki-page-creator-action) 101 | and the [issue that arose from it](https://github.com/Decathlon/wiki-page-creator-action/issues/11), 102 | this GitHub action tries to update the entire wiki based on a single 103 | directory. 104 | 105 | --- 106 | ### License 107 | 108 | ``` 109 | Copyright 2020 Andrew Chen Wang 110 | 111 | Licensed under the Apache License, Version 2.0 (the "License"); 112 | you may not use this file except in compliance with the License. 113 | You may obtain a copy of the License at 114 | 115 | http://www.apache.org/licenses/LICENSE-2.0 116 | 117 | Unless required by applicable law or agreed to in writing, software 118 | distributed under the License is distributed on an "AS IS" BASIS, 119 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 120 | See the License for the specific language governing permissions and 121 | limitations under the License. 122 | ``` 123 | 124 | --- 125 | ### Non-Affiliation with GitHub Inc. 126 | 127 | This repository/action and its creator is not affiliated with 128 | GitHub Inc. 129 | -------------------------------------------------------------------------------- /src/actions/golang.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/golang' 3 | title: 'Golang' 4 | github_url: 'https://github.com/cedrickring/golang-action' 5 | author: 'cedrickring' 6 | tags: ['golang', 'go'] 7 | subtitle: 'This Action allows you to run Go commands with your code. It will automatically setup your workspace (~/go/src/github.com//) before the command is run.' 8 | --- 9 | 10 | ## How to use 11 | 12 | 1. Add an Action 13 | 2. Enter "cedrickring/golang-action@1.0.0" 14 | 3. Add a command in the args section like: 15 | ```bash 16 | go build -o my_executable main.go 17 | ``` 18 | or run your `make` targets with 19 | ```bash 20 | make test 21 | ``` 22 | -------------------------------------------------------------------------------- /src/actions/google-cloud-platform.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/google-cloud-platform' 3 | title: 'Google Cloud Platform' 4 | github_url: 'https://github.com/actions/gcloud' 5 | author: 'github' 6 | tags: ['google', 'cloud', 'platform', 'containers'] 7 | subtitle: 'GitHub Actions for Google Cloud Platform, for performing common tasks such as authorizing and tagging containers, as well as a generic cli for doing arbitrary actions with the Google cloud SDK command-line client.' 8 | --- 9 | 10 | ## Usage 11 | 12 | Usage information for individual commands can be found in their respective directories. 13 | 14 | - [`cli`](/cli) 15 | - [`auth`](/auth) 16 | -------------------------------------------------------------------------------- /src/actions/goreleaser.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/goreleaser" 3 | title: "GoReleaser" 4 | github_url: "https://github.com/goreleaser/goreleaser" 5 | author: "goreleaser" 6 | subtitle: "GoReleaser: Deliver Go binaries as fast and easily as possible ." 7 | tags: ["golang", "go", "release-automation", "docker", "snapcraft", "package", "rpm", "deb"] 8 | --- 9 | 10 | https://goreleaser.com/actions/ 11 | 12 | ## Usage 13 | 14 | You can create a workflow like this to push your releases. 15 | 16 | ```hcl 17 | workflow "Release" { 18 | on = "push" 19 | resolves = ["goreleaser"] 20 | } 21 | 22 | action "is-tag" { 23 | uses = "actions/bin/filter@master" 24 | args = "tag" 25 | } 26 | 27 | action "goreleaser" { 28 | uses = "docker://goreleaser/goreleaser" 29 | secrets = [ 30 | "GITHUB_TOKEN", 31 | # at least GITHUB_TOKEN is required, you may need more though 32 | "DOCKER_USERNAME", 33 | "DOCKER_PASSWORD", 34 | ] 35 | args = "release" 36 | needs = ["is-tag"] 37 | } 38 | ``` 39 | 40 | This should support almost everything already supported by GoReleaser’s [Docker image](https://hub.docker.com/r/goreleaser/goreleaser). 41 | Check the [install](https://goreleaser.com/install) section for more details. 42 | 43 | ## What doesn’t work 44 | 45 | Projects that depend on `$GOPATH`. 46 | GitHub Actions override the `WORKDIR` instruction and it seems like we can’t override it. 47 | 48 | In the future releases we may hack something together to work around this, but, for now, only projects using Go modules are supported. 49 | -------------------------------------------------------------------------------- /src/actions/gradle.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/gradle' 3 | title: 'gradle' 4 | github_url: 'https://github.com/MrRamych/gradle-actions' 5 | author: 'MrRamych' 6 | subtitle: 'Github Actions for Gradle' 7 | tags: ['github', 'github-actions', 'workflow', 'gradle', 'wrapper'] 8 | --- 9 | 10 | # Github Actions for Gradle 11 | 12 | Execute [Gradle](https://github.com/gradle/gradle) task using wrapper. 13 | 14 | ## Usage 15 | 16 | To create action in visual editor use `MrRamych/gradle-actions@master` repo. 17 | 18 | The `args` represent the task to be executed. 19 | 20 | ## Example 21 | 22 | An example `main.workflow` file to run tests on push. 23 | 24 | ``` 25 | workflow "Push" { 26 | on = "push" 27 | resolves = ["Test"] 28 | } 29 | 30 | action "Test" { 31 | uses = "MrRamych/gradle-actions@master" 32 | args = "test" 33 | } 34 | ``` 35 | -------------------------------------------------------------------------------- /src/actions/graphql-inspector.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/graphql-inspector' 3 | title: 'GraphQL Inspector' 4 | github_url: 'https://github.com/kamilkisiela/graphql-inspector' 5 | author: 'kamilkisiela' 6 | tags: ['graphql'] 7 | subtitle: 'A tool that inspects GraphQL API in order to find breaking changes or changes that are dangerous or entirely safe.' 8 | --- 9 | 10 | More information at [https://github.com/kamilkisiela/graphql-inspector](https://github.com/kamilkisiela/graphql-inspector) 11 | -------------------------------------------------------------------------------- /src/actions/hadolint.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/hadolint' 3 | title: 'Hadolint' 4 | github_url: 'https://github.com/burdzwastaken/hadolint-action' 5 | author: 'burdzwastaken' 6 | tags: ['dockerfile', 'docker', 'hadolint'] 7 | subtitle: 'A GitHub action to run hadolint and reports violations given a Dockerfile within a repository on a pull request' 8 | --- 9 | 10 | ## Usage 11 | 12 | ``` 13 | workflow "hadolint action" { 14 | on = "pull_request" 15 | resolves = ["hadolint on pr"] 16 | } 17 | 18 | action "hadolint on pr" { 19 | uses = "burdzwastaken/hadolint-action@master" 20 | secrets = ["GITHUB_TOKEN"] 21 | env = { 22 | HADOLINT_ACTION_DOCKERFILE_FOLDER = "." 23 | } 24 | } 25 | ``` 26 | 27 | ## Environment Variables 28 | 29 | | Name | Default | Description | 30 | | ----------------------------------- | ------- | ------------------------------------------------------------------------------------------------------- | 31 | | `HADOLINT_ACTION_DOCKERFILE_FOLDER` | `.` | Which directory the `Dockerfile` to run hadolint on resides in. Relative to the root of the repository. | 32 | | `HADOLINT_ACTION_COMMENT` | `true` | Set to `false` to disable commenting back on the PR with the violations found in the `Dockerfile`. | 33 | 34 | ![demo](images/404-no-beta-access) 35 | 36 | ## TODO 37 | 38 | - Let users supply their own configuration file 39 | - Multiple `Dockerfile` support 40 | -------------------------------------------------------------------------------- /src/actions/heroku.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/heroku-cli' 3 | title: 'Heroku CLI' 4 | github_url: 'https://github.com/actions/heroku' 5 | author: 'github' 6 | tags: ['heroku', 'cli'] 7 | subtitle: 'This Action wraps the Heroku CLI to enable common Heroku commands.' 8 | --- 9 | 10 | ## Usage 11 | 12 | An example workflow to build a docker container from source and push and release the image to an existing application on Heroku: 13 | 14 | ``` 15 | workflow "Deploy to Heroku" { 16 | on = "push" 17 | resolves = "release" 18 | } 19 | 20 | action "login" { 21 | uses = "actions/heroku@master" 22 | args = "container:login" 23 | secrets = ["HEROKU_API_KEY"] 24 | } 25 | 26 | action "push" { 27 | uses = "actions/heroku@master" 28 | needs = "login" 29 | args = "container:push -a calm-fortress-1234 web" 30 | secrets = ["HEROKU_API_KEY"] 31 | } 32 | 33 | action "release" { 34 | uses = "actions/heroku@master" 35 | needs = "push" 36 | args = "container:release -a calm-fortress-1234 web" 37 | secrets = ["HEROKU_API_KEY"] 38 | } 39 | ``` 40 | 41 | ### Secrets 42 | 43 | - `HEROKU_API_KEY` - **Required**. The token to use for authentication with the Heroku API ([more info](https://help.heroku.com/PBGP6IDE/how-should-i-generate-an-api-key-that-allows-me-to-use-the-heroku-platform-api)) 44 | 45 | ### Environment variables 46 | 47 | - `HEROKU_APP` - **Optional**. To specify a Heroku application 48 | 49 | ## License 50 | 51 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 52 | 53 | Container images built with this project include third party materials. See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details. 54 | -------------------------------------------------------------------------------- /src/actions/home-assistant.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/home-assistant' 3 | title: 'Home Assistant' 4 | github_url: 'https://github.com/maddox/actions' 5 | author: 'maddox' 6 | tags: ['github', 'google', 'home', 'assistant'] 7 | subtitle: 'Control your home via Home Assistant. This action allows you to make a service call to your Home Assistant instance. Blink a light when a deploy is done, set your lights to green when CI goes green, lock your front door until the deploy is complete. Of course you want to incorporate your smart devices into your GitHub workflow!' 8 | --- 9 | 10 | image 11 | 12 | ## Usage 13 | 14 | To use the action simply add the following lines to your `.github/main.workflow` 15 | and provide the required Secrets and Environment Variables 16 | 17 | ``` 18 | action "Flash office lights" { 19 | uses = "maddox/actions/home-assistant@master" 20 | secrets = ["HASS_HOST", "HASS_TOKEN"] 21 | env = { 22 | SERVICE_DATA = "{\n \"entity_id\": \"light.office\",\n \"flash\": \"short\"\n}" 23 | DOMAIN = "light" 24 | SERVICE = "turn_on" 25 | } 26 | } 27 | ``` 28 | 29 | ### Minimum Home Assistant Version 30 | 31 | In order to use this action, your Home Assistant instance's version 32 | must be > 0.78. This action uses the new user auth scheme that has been added 33 | along with the long-lived access tokens you can generate. 34 | 35 | Once you are on a valid version, you can create a long-lived access token from 36 | your profile page. Click your user in the side bar to access the `Long-Lived Access Tokens` 37 | section at the bottom of the page. 38 | 39 | ### Required Secrets 40 | 41 | You'll need to provide some secrets to use the action. 42 | 43 | - **HASS_HOST**: Your fully qualified host address for your Home Assistant instance, ie `https://home.yourname.com` or `https://98.22.42.53`. 44 | - **HASS_TOKEN**: Your long-lived access token. 45 | 46 | ### Required Environment Variables 47 | 48 | You'll need to provide some environment variables to specify exactly what you want to do. 49 | 50 | - **DOMAIN**: The domain of the device you want to control. ie, `light`, `script`, `media_player`. 51 | - **SERVICE**: The service you want called on that domain. ie, `turn_on`, `pause`. 52 | - **SERVICE_DATA**: A JSON string of data for the service call. ie, `{"entity_id":"light.living_room_window", "flash": "short"}` 53 | 54 | [Learn more](https://developers.home-assistant.io/docs/en/external_api_rest.html#post-api-services-lt-domain-lt-service) about service calls via the REST api. 55 | -------------------------------------------------------------------------------- /src/actions/hugo-to-github-pages.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/hugo-to-github-pages' 3 | title: 'Build Hugo static content site and publish it to gh-pages branch' 4 | github_url: 'https://github.com/khanhicetea/gh-actions-hugo-deploy-gh-pages' 5 | author: 'khanhicetea' 6 | tags: ['hugo'] 7 | subtitle: 'GitHub Action for building and publishing Hugo-built site.' 8 | --- 9 | 10 | Inspired by [BryanSchuetz/jekyll-deploy-gh-pages](https://github.com/BryanSchuetz/jekyll-deploy-gh-pages) 11 | 12 | ## Secrets 13 | 14 | - `GITHUB_TOKEN` - _Required_ for pushing files to gh-pages branch. 15 | 16 | ## Environment Variables 17 | 18 | NOTHING 19 | 20 | ## Example 21 | 22 | **main.workflow** 23 | 24 | ```hcl 25 | workflow "Deploy to GitHub Pages" { 26 | on = "push" 27 | resolves = ["hugo-deploy-gh-pages"] 28 | } 29 | 30 | action "hugo-deploy-gh-pages" { 31 | uses = "khanhicetea/gh-actions-hugo-deploy-gh-pages@master" 32 | secrets = ["GITHUB_TOKEN"] 33 | } 34 | ``` 35 | 36 | ## Example site 37 | 38 | - https://github.com/khanhicetea/.com 39 | -------------------------------------------------------------------------------- /src/actions/install-qt-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/install-qt-action" 3 | title: "Install Qt" 4 | github_url: "https://github.com/jurplel/install-qt-action" 5 | author: "jurplel" 6 | subtitle: "Install Qt on your Github Actions workflows with just one simple action" 7 | tags: [] 8 | --- 9 | # `install-qt-action` 10 | 11 | Installing Qt on Github Actions workflows manually is the worst. 12 | 13 | You know what's easier than dealing with that? Just using this: 14 | ```yml 15 | - name: Install Qt 16 | uses: jurplel/install-qt-action@v1 17 | ``` 18 | 19 | All done. 20 | 21 | ## Options 22 | 23 | ### `version` 24 | The desired version of Qt to install. 25 | 26 | Default: `5.12.5` (Latest LTS at the time of writing) 27 | 28 | ### `host` 29 | This is the host platform of the Qt version you will be installing. It's unlikely that you will need to set this manually if you are just building. 30 | 31 | For example, if you are building on Linux and targeting desktop, you would set host to `linux`. If you are building on Linux and targeting android, you would set host to `linux` also. The host platform is the platform that your application will build on, not its target platform. 32 | 33 | Possible values: `windows`, `mac`, or `linux` 34 | 35 | Defaults to the current platform it is being run on. 36 | 37 | 38 | ### `target` 39 | This is the target platform that you will be building for. You will want to set this if you are building for iOS or Android. 40 | 41 | **Please note that iOS builds are supported only on macOS hosts** 42 | 43 | Possible values: `desktop`, `android`, or `ios` 44 | 45 | Default: `desktop` 46 | 47 | ### `arch` 48 | This is the target architecture that your program will be built for. This is only used for Windows and Android. 49 | 50 | **Linux x86 packages are not supported by this action.** Qt does not offer pre-built Linux x86 packages. Please consider using your distro's repository or building it manually. 51 | 52 | **Possible values:** 53 | 54 | Windows: `win64_msvc2017_64`, `win64_msvc2015_64`, `win32_msvc2015`, `win32_mingw53`, or `win64_mingw73` 55 | 56 | Android: `android_x86`, `android_armv7` 57 | 58 | **Default values:** 59 | 60 | Windows: `win64_msvc2017_64` 61 | 62 | Android: `android_armv7` 63 | 64 | ### `dir` 65 | This is the directory prefix that Qt will be installed to. 66 | 67 | For example, if you set dir to `/example/`, your bin folder will be located at `/example/Qt5.12.5/5.12.5/(your_arch)/bin`. When possible, access your Qt directory through the `Qt5_Dir` environment variable. 68 | 69 | Default: `${RUNNER_WORKSPACE}` (this is one above the starting directory) 70 | 71 | ## More info 72 | 73 | The Qt bin directory is added to your `path` environment variable. `Qt5_Dir` is also set appropriately for cmake. 74 | 75 | Big thanks to the [aqtinstall](https://github.com/miurahr/aqtinstall/) developers for making this easy. Please go support them, they did all of the hard work here. 76 | 77 | This action is distributed under the [MIT license](LICENSE). 78 | 79 | By using this action, you agree to the terms of Qt's licensing. See [Qt licensing](https://www.qt.io/licensing/) and [Licenses used by Qt](https://doc.qt.io/qt-5/licenses-used-in-qt.html). 80 | -------------------------------------------------------------------------------- /src/actions/issue-label-manager.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/issue-label-manager' 3 | title: 'Issue Label Manager' 4 | github_url: 'https://github.com/lannonbr/issue-label-manager-action' 5 | author: 'lannonbr' 6 | tags: ['github', 'labels', 'automation'] 7 | subtitle: 'This GitHub Action allows you to declaratively state the labels to be defined in a repo.' 8 | --- 9 | 10 | In the repo you'd like to use this, define a JSON file in `.github/labels.json`. This file will contain an array of objects that have a name, color, and description as shown in the example below. 11 | 12 | ![labels.json file](https://github.com/lannonbr/issue-label-manager-action/raw/master/screenshots/json.png) 13 | 14 | Then, set up a workflow that executes this action. When run, it will update the list of labels in the repo to match the JSON file and will delete any other labels. 15 | 16 | The result of using the labels.json file shown above is as follows: 17 | 18 | ![Labels result](https://github.com/lannonbr/issue-label-manager-action/raw/master/screenshots/labels.png) 19 | 20 | If a label doesn't need a description, leave out the `description` field of the entry in the json file and when deployed the label will not contain a description. 21 | 22 | ## Usage 23 | 24 | This action only needs the GITHUB_TOKEN secret as it interacts with the GitHub API to modify labels. The action can be used as such: 25 | 26 | ```hcl 27 | action "Update Label" { 28 | uses = "lannonbr/issue-label-manager-action@master" 29 | secrets = ["GITHUB_TOKEN"] 30 | } 31 | ``` 32 | -------------------------------------------------------------------------------- /src/actions/jekyll-builds-on-github-pages.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/jekyll-builds-on-github-pages' 3 | title: 'Custom Jekyll Builds on GitHub Pages' 4 | github_url: 'https://github.com/BryanSchuetz/jekyll-deploy-gh-pages' 5 | author: 'BryanSchuetz' 6 | tags: ['Jekyll', 'github', 'pages'] 7 | subtitle: ' 8 | A GitHub Action for building and deploying a Jekyll repo back to its gh-pages branch. Why not just let GitHub Pages build it? Becaues this way we can use our own custom Jekyll plugins and build scripts.' 9 | --- 10 | 11 | ## Secrets 12 | 13 | - `GITHUB_TOKEN`: Access key scoped to the repository, we need this to push the site files back to the repo. (specify in workflow) 14 | 15 | ## Environment Variables 16 | 17 | - `GITHUB_ACTOR`: Username of repo owner or object intiating the action (GitHub Provides) 18 | - `GITHUB_REPO`: Owner/Repository (GitHub Provides) 19 | 20 | ## Examples 21 | 22 | ```hcl 23 | workflow "Deploy Site" { 24 | on = "push" 25 | resolves = ["Build and Deploy Jekyll"] 26 | } 27 | 28 | action "Build and Deploy Jekyll" { 29 | uses = "BryanSchuetz/jekyll-deploy-gh-pages@master" 30 | secrets = ["GITHUB_TOKEN"] 31 | } 32 | ``` 33 | 34 | Clones the repo, builds the site, and commits it back to the gh-pages branch of the repository. 35 | 36 | ## Caveats 37 | 38 | - Needs a .gemfile 39 | - `destination:` should be set to `./build` in your \_config.yml file—as God demands. 40 | - Be sure that any custom gems needed are included in your Gemfile. 41 | - If you're looking to seperate out the build/deploy steps of this action so you can throw your own actions in between them, look at the limited build and deploy actions in this rpo. 42 | -------------------------------------------------------------------------------- /src/actions/js-build-tools.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/js-build-tools' 3 | title: 'JavaScript Build Tools' 4 | github_url: 'https://github.com/elstudio/actions-js-build' 5 | author: 'elstudio' 6 | tags: ['npm', 'grunt', 'gulp', 'css', 'sass', 'less'] 7 | subtitle: 'Run JS build tasks with Gulp, Grunt or NPM, then commit any changed files and push them back to your original repository. Perfect for Grunt or Gulp tasks that do CSS (or SASS/LESS) compilation or JS transpilation. If your build task changes files, these actions are for you.' 8 | --- 9 | 10 | This repository contains two actions that may be used independently -- typically one after another: 11 | 12 | - **build** (elstudio/actions-js-build/build@master): Looks for a gulpfile.js or Gruntfile.js in the working directory, then installs any required npm packages and runs the appropriate build tool. If it finds neither gulp or grunt, the script runs npm. Set the workflow `args` arguments to run the tasks of your choice. 13 | - **commit** (elstudio/actions-js-build/commit@master): Commits any file changes, and pushes them back to the current branch of the origin repository on GitHub. 14 | 15 | ## Usage 16 | 17 | An example workflow to run `grunt default` task to build, test, then commit and push any changes back to the GitHub origin repository: 18 | 19 | ```hcl 20 | workflow "Grunt compile" { 21 | on = "push" 22 | resolves = ["Commit and Push"] 23 | } 24 | 25 | action "Build" { 26 | uses = "elstudio/actions-js-build/build@master" 27 | env = { 28 | WD_PATH = "./web/themes/nw8" 29 | } 30 | args = "default" 31 | } 32 | 33 | action "Commit and Push" { 34 | uses = "elstudio/actions-js-build/commit@master" 35 | needs = ["Build"] 36 | secrets = ["GITHUB_TOKEN"] 37 | env = { 38 | PUSH_BRANCH = "staging" 39 | } 40 | } 41 | ``` 42 | 43 | ### Secrets 44 | 45 | - `GITHUB_TOKEN` - **Required**. The token to use for authentication with GitHub to commit and push changes back to the origin repository. ([more info](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables)) 46 | 47 | ### Environment variables 48 | 49 | - `WD_PATH` - **Optional**. To specify a directory other than the repository root where NPM's Package.json and either gulpfile.js or Gruntfile.js may be found. 50 | - `PUSH_BRANCH` - **Optional**. The branch that changes will be pushed to. Default is the currently checked out branch. 51 | -------------------------------------------------------------------------------- /src/actions/mercure.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/action-mercure" 3 | title: "action-mercure" 4 | github_url: "https://github.com/Ilshidur/action-mercure" 5 | author: "Ilshidur" 6 | subtitle: "🚀 GitHub Action for Mercure" 7 | tags: ["mercure","server-sent-events","live-updates","push","subscription"] 8 | --- 9 | # 🚀 GitHub Action for Mercure 10 | 11 | Send a [Mercure](https://mercure.rocks) publish event. Simple as that. 12 | 13 | ![GitHub Action](https://github.com/Ilshidur/action-mercure/raw/master/action.png "GitHub Action") 14 | 15 |
16 | 17 | ## Demo 18 | 19 | 1) Go to https://demo.mercure.rocks, in the **Subscribe** section. 20 | 2) Subscribe for notifications on this *topic* : **`foo`**. 21 | 3) 🌟 Star 🌟 this repo ! 22 | 4) Quickly switch to the Mercure demo page to see a notification in your browser. 23 | 24 | ## Usage 25 | 26 | ```hcl 27 | action "Publish notification" { 28 | uses = "Ilshidur/action-mercure@master" 29 | secrets = ["MERCURE_HUB_URL", "MERCURE_HUB_JWT"] 30 | args = "{ \"hello\": \"world\" }" 31 | } 32 | ``` 33 | 34 | **NOTICE :** for stability purposes, it is recommended to use the action with an explicit commit SHA-1 : 35 | 36 | `uses = "Ilshidur/action-mercure@eea8db9"` (=> link to the commits list : https://github.com/Ilshidur/action-mercure/commits/master) 37 | 38 | ### Arguments 39 | 40 | The argument is the content of the event to send. It is **RECOMMENDED** to use JSON. 41 | 42 | **Environment variables can be interpolated** in the message using brackets (`{{` and `}}`) : 43 | 44 | e.g.: `args = "{ \"action\": \"{{ GITHUB_ACTION }}\" }"` 45 | 46 | ### Environment variables 47 | 48 | * **`MERCURE_TOPICS`**: the Mercure topics. **Supports interpolation** using (`{{` and `}}`). 49 | 50 | ### Secrets 51 | 52 | * **`MERCURE_HUB_URL`**: the **public** Mercure hub URL (**required**). 53 | * **`MERCURE_HUB_JWT`**: the publisher JWT (**required**). 54 | * That's all. 55 | 56 | ## License 57 | 58 | GNU GENERAL PUBLIC LICENSE v3. 59 | 60 |
61 | 62 |

63 | Don't forget to 🌟 Star 🌟 the repo if you like this GitHub Action !
64 | Your feedback is appreciated 65 |

66 | -------------------------------------------------------------------------------- /src/actions/mjolnir.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/gha-mjolnir" 3 | title: "Mjolnir" 4 | github_url: "https://github.com/ldez/gha-mjolnir" 5 | author: "ldez" 6 | subtitle: ":hammer: GitHub Action to close issues related to the merge of a pull request." 7 | tags: ["github-action","issues","pull-requests","close"] 8 | --- 9 | # Mjolnir 10 | 11 | [![Release](https://img.shields.io/github/release/ldez/gha-mjolnir.svg?style=flat)](https://github.com/ldez/gha-mjolnir/releases) 12 | 13 | Closes issues related to the merge of a pull request. 14 | 15 | Useful: 16 | 17 | - to close multiple issues related to a pull request. 18 | - to close issues related to a pull request not based on the default branch (i.e. `master`). 19 | By example when a branch is related to version (e.g. `v1.5`, `v2.0`, ...) 20 | 21 | ## Supported syntax 22 | 23 | - prefixes (case insensitive): `close`, `closes`, `closed`, `fix`, `fixes`, `fixed`, `resolve`, `resolves`, `resolved` 24 | - issues references separators (can be mixed): ` ` (space), `,` (period) 25 | - prefix and issues references can be separated by: ` ` (space), `:` (colon), on both. 26 | 27 | Examples: 28 | 29 | ``` 30 | Fixes #1,#2,#3 31 | close #1, #2, #3 32 | fix #1 #2 #3 33 | resolve #1,#2 #3 34 | Resolves: #1,#2,#3 35 | closed : #1, #2, #3 36 | ``` 37 | 38 | ## Usage 39 | 40 | ```hcl 41 | workflow "Auto close issues" { 42 | on = "pull_request" 43 | resolves = ["mjolnir-issues"] 44 | } 45 | 46 | action "mjolnir-issues" { 47 | uses = "docker://ldez/gha-mjolnir" 48 | secrets = ["GITHUB_TOKEN"] 49 | args = "" 50 | } 51 | ``` 52 | -------------------------------------------------------------------------------- /src/actions/netlify-build.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/netlify-build' 3 | title: 'Netlify: Build' 4 | github_url: 'https://github.com/netlify/actions' 5 | author: 'netlify' 6 | tags: ['netlify', 'build'] 7 | subtitle: 'Trigger a build on Netlify, if there is no site for this repo it can automagically set up one with the specified base directory, command, and publish directory.' 8 | --- 9 | 10 | ## Secrets 11 | 12 | - `GITHUB_TOKEN` - _Required_ GitHub token provided by actions to validate requests 13 | - `NETLIFY_SITE_ID` - _Optional_ API site ID of the site you wanna work on 14 | [Obtain it from the UI](https://www.netlify.com/docs/cli/#link-with-an-environment-variable) 15 | 16 | ## Environment Variables 17 | 18 | - `NETLIFY_BASE` - _Optional_ Directory to change to before starting build 19 | - `NETLIFY_CMD` - _Optional_ Build command to build site 20 | - `NETLIFY_DIR` - _Optional_ The directory to publish (relative to root of your repo) 21 | 22 | ## Examples 23 | 24 | Trigger a build to a specific site in Netlify 25 | 26 | ```hcl 27 | workflow "Publish on Netlify" { 28 | on = "push" 29 | resolves = ["Publish"] 30 | } 31 | 32 | action "Publish" { 33 | uses = "netlify/actions/build@master" 34 | secrets = ["GITHUB_TOKEN", "NETLIFY_SITE_ID"] 35 | } 36 | ``` 37 | 38 | Trigger a build on Netlify, if there's no site for this repo it will automagically set up one with the specified base, command, and publish directory. 39 | 40 | ```hcl 41 | workflow "Publish on Netlify" { 42 | on = "push" 43 | resolves = ["Publish"] 44 | } 45 | 46 | action "Publish" { 47 | uses = "netlify/actions/build@master" 48 | secrets = ["GITHUB_TOKEN"] 49 | env = { 50 | NETLIFY_BASE = "site" 51 | NETLIFY_CMD = "npm build" 52 | NETLIFY_DIR = "site/_build" 53 | } 54 | } 55 | ``` 56 | -------------------------------------------------------------------------------- /src/actions/netlify-cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/netlify-cli' 3 | title: 'Netlify: CLI' 4 | github_url: 'https://github.com/netlify/actions' 5 | author: 'netlify' 6 | tags: ['netlify', 'cli'] 7 | subtitle: 'This Action enables arbitrary actions with the Netlify CLI' 8 | --- 9 | 10 | ## Secrets 11 | 12 | - `NETLIFY_AUTH_TOKEN` - _Required_ The token to use for authentication. 13 | [Obtain one with the UI](https://www.netlify.com/docs/cli/#obtain-a-token-in-the-netlify-ui) 14 | - `NETLIFY_SITE_ID` - _Optional_ API site ID of the site you wanna work on 15 | [Obtain it from the UI](https://www.netlify.com/docs/cli/#link-with-an-environment-variable) 16 | 17 | ## Example 18 | 19 | ```hcl 20 | workflow "Publish on Netlify" { 21 | on = "push" 22 | resolves = ["Publish"] 23 | } 24 | 25 | action "Publish" { 26 | uses = "netlify/actions/cli@master" 27 | args = "deploy --dir=site --functions=functions" 28 | secrets = ["NETLIFY_AUTH_TOKEN", "NETLIFY_SITE_ID"] 29 | } 30 | ``` 31 | -------------------------------------------------------------------------------- /src/actions/netlify-diff-includes.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/netlify-diff-includes' 3 | title: 'Netlify: Diff Includes Filter' 4 | github_url: 'https://github.com/netlify/actions' 5 | author: 'netlify' 6 | tags: ['netlify'] 7 | subtitle: ' 8 | This action includes a filter to stop workflows unless certain files or directories are changed in a range of commits.' 9 | --- 10 | 11 | ## Examples 12 | 13 | ```hcl 14 | workflow "Publish docs if changed" { 15 | on = "push" 16 | resolves = ["Publish"] 17 | } 18 | 19 | action "Check changes in docs" { 20 | uses = "netlify/actions/diff-includes@master" 21 | // this can be one or many files/directories 22 | args = "docs" 23 | } 24 | 25 | // This will only be run if there are changes in docs directory in the last set 26 | // of commits pushed 27 | action "Publish" { 28 | needs = "Checks changes in docs" 29 | uses = "netlify/actions/build@master" 30 | // see https://github.com/netlify/actions/tree/master/build for details 31 | secrets = ["GITHUB_TOKEN", "NETLIFY_SITE_ID"] 32 | env = { 33 | // this should match previouse action `args` until known issue is resolved 34 | BUILD_DIR = "docs" 35 | } 36 | } 37 | ``` 38 | -------------------------------------------------------------------------------- /src/actions/nexmo-sms.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/nexmo-sms' 3 | title: 'Nexmo SMS' 4 | github_url: 'https://github.com/nexmo-community/nexmo-sms-action' 5 | author: 'nexmo-community' 6 | tags: ['sms', 'nexmo'] 7 | subtitle: 'Send an SMS from GitHub Actions using Nexmo. The passed in args represent the contents of the message.' 8 | --- 9 | 10 | ## Usage 11 | 12 | The `args` represent the recipient and the contents of the message. 13 | 14 | For example: 15 | 16 | ```workflow 17 | workflow "Send SMS On Push" { 18 | on = "push" 19 | resolves = ["notification"] 20 | } 21 | 22 | action "notification" { 23 | uses = "nexmo-community/nexmo-sms-action@master" 24 | secrets = [ 25 | "NEXMO_API_KEY", 26 | "NEXMO_API_SECRET", 27 | "NEXMO_NUMBER" 28 | ] 29 | args = "15551234567 New pull on $GITHUB_REPOSITORY from $GITHUB_ACTOR." 30 | } 31 | ``` 32 | 33 | will send `New pull on $GITHUB_REPOSITORY from $GITHUB_ACTOR` to `15551234567`. 34 | 35 | If you don't want to expose your recipient number, you can use secrets. 36 | 37 | For example, a new secret called `DEVOPS_NUMBER` could be used inside of `args` as follows: 38 | 39 | ```workflow 40 | workflow "Send SMS On Push" { 41 | on = "push" 42 | resolves = ["notification"] 43 | } 44 | 45 | action "notification" { 46 | uses = "nexmo-community/nexmo-sms-action@master" 47 | secrets = [ 48 | "NEXMO_API_KEY", 49 | "NEXMO_API_SECRET", 50 | "NEXMO_NUMBER", 51 | "DEVOPS_NUMBER" 52 | ] 53 | args = "$DEVOPS_NUMBER New pull on $GITHUB_REPOSITORY from $GITHUB_ACTOR." 54 | } 55 | ``` 56 | 57 | This allows for you to reuse this action to send messages to various recipients. 58 | 59 | ## Secrets 60 | 61 | This action uses the following required secrets: 62 | 63 | - `NEXMO_API_KEY` - Your Nexmo API Key. 64 | - `NEXMO_API_SECRET` - Your Nexmo API Secret. 65 | - `NEXMO_NUMBER` - A number on your Nexmo account without any spaces or symbols. Example: 15551231234 66 | 67 | ## Event Information 68 | 69 | GitHub stores the event information in the json file at `$GITHUB_EVENT_PATH`. You can use [jq] to parse this file and send its contents in the SMS: 70 | 71 | ```sh 72 | jq .issue.html_url $GITHUB_EVENT_PATH --raw-output 73 | ``` 74 | 75 | Here's an example of sending an SMS any time an issue is created with the urgent label: 76 | 77 | ```workflow 78 | workflow "Send SMS On Urgent Issue" { 79 | resolves = [ 80 | "Send Urgent Issue Message", 81 | ] 82 | on = "issues" 83 | } 84 | 85 | action "Has Urgent Label" { 86 | uses = "actions/bin/filter@8738e95" 87 | args = "label urgent" 88 | } 89 | 90 | action "Label Being Added" { 91 | uses = "actions/bin/filter@8738e95" 92 | args = "action labeled" 93 | } 94 | 95 | action "Send Urgent Issue Message" { 96 | needs = ["Label Being Added", "Has Urgent Label"] 97 | secrets = [ 98 | "NEXMO_API_KEY", 99 | "NEXMO_API_SECRET", 100 | "NEXMO_NUMBER", 101 | "DEVOPS_NUMBER", 102 | ] 103 | args = "$DEVOPS_NUMBER This urgent issue needs your attention: `jq .issue.html_url $GITHUB_EVENT_PATH --raw-output`" 104 | uses = "nexmo-community/nexmo-sms-action@master" 105 | } 106 | ``` 107 | 108 | [github actions]: https://github.com/actions 109 | [nexmo]: https://developer.nexmo.com 110 | [jq]: https://stedolan.github.io/jq/ 111 | -------------------------------------------------------------------------------- /src/actions/node-code-formatter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/node-code-formatter" 3 | title: "node-code-formatter" 4 | github_url: "https://github.com/MarvinJWendt/run-node-formatter" 5 | author: "MarvinJWendt" 6 | subtitle: "Automatically formats your code with your preferred code formatter!" 7 | tags: ["formatter", "format", "linter", "node", "style", "standard", "prettier"] 8 | --- 9 | # Node Code Formatter 10 | 11 | [![GitHub Action](https://img.shields.io/badge/-GitHub_Action-black?logo=github&style=flat-square)](https://github.com/marketplace/actions/node-code-formatter) 12 | [![GitHub license](https://img.shields.io/github/license/MarvinJWendt/run-node-formatter?style=flat-square)](https://github.com/MarvinJWendt/run-node-formatter/blob/master/LICENSE) 13 | [![GitHub issues](https://img.shields.io/github/issues/MarvinJWendt/run-node-formatter)](https://github.com/MarvinJWendt/run-node-formatter/issues) 14 | [![GitHub stars](https://img.shields.io/github/stars/MarvinJWendt/run-node-formatter?style=flat-square)](https://github.com/MarvinJWendt/run-node-formatter/stargazers) 15 | 16 | > Automatically formats your code! 17 | 18 | ## Automatically format pull requests 19 | 20 | _Never tell your users to format their code, as we do it on the fly!_ 21 | 22 | ![image](https://user-images.githubusercontent.com/31022056/64829627-6457d300-d5cd-11e9-9bc0-6a35d095ec64.png) 23 | 24 | ## Usage :pencil2: 25 | 26 | 1. Create a `formatter.yml` file in `.github/workflows/` 27 | 2. Paste this code into the file: 28 | 29 | ```yml 30 | on: push 31 | name: Node Code Formatter 32 | jobs: 33 | lint: 34 | name: Node Code Formatter 35 | runs-on: ubuntu-latest 36 | steps: 37 | - name: Node Code Formatter 38 | uses: MarvinJWendt/run-node-formatter@1.2.1 39 | env: 40 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 41 | ``` 42 | 43 | 3. Commit the file :twisted_rightwards_arrows: 44 | 45 | ## Setup formatter scripts :clipboard: 46 | 47 | Simply put your code formatter into a script named `format` or `lint` in your `package.json` (Yarn only supports a `lint` script at the moment). 48 | 49 | **Make sure that your code formatter is a dependency of your module!** 50 | 51 | ### StandardJS 52 | 53 | ```json 54 | ... 55 | "scripts": { 56 | "format": "standard --fix" 57 | } 58 | ``` 59 | 60 | ### Prettier 61 | 62 | ```json 63 | ... 64 | "scripts": { 65 | "format": "prettier" 66 | } 67 | ``` -------------------------------------------------------------------------------- /src/actions/notify-slack-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/notify-slack-action" 3 | title: "notify-slack-action" 4 | github_url: "https://github.com/ravsamhq/notify-slack-action" 5 | author: "ravsamhq" 6 | subtitle: "Send Github Actions workflow status notifications to Slack regarding failures, warnings, or even success." 7 | tags: ["github-actions","github-action","slack-bot","slack-actions","workflow-status-notifications","slack","workflow","notifications"] 8 | --- 9 | ![Test](https://github.com/ravsamhq/notify-slack-action/workflows/Test/badge.svg) 10 | [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) 11 | 12 | # Notify Slack Action 13 | 14 | Send Github Actions workflow status notifications to Slack regarding failures, warnings or even success. 15 | 16 | ### Example workflow 17 | 18 | ```yaml 19 | steps: 20 | - uses: ravsamhq/notify-slack-action@master 21 | if: always() 22 | with: 23 | status: ${{ job.status }} 24 | notify_when: 'failure' # default is 'success,failure,warnings' 25 | env: 26 | SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} # required 27 | ``` 28 | 29 | Made in Python • By [Ravgeet Dhillon](https://github.com/ravgeetdhillon) @ [RavSam Web Solutions](https://www.ravsam.in). 30 | -------------------------------------------------------------------------------- /src/actions/npm-audit-fix.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/npm-audit-fix' 3 | title: 'npm Audit Fix' 4 | github_url: 'https://github.com/JasonEtco/npm-audit-fix-action' 5 | author: 'JasonEtco' 6 | tags: ['npm', 'pull-request'] 7 | subtitle: 'Work in progress GitHub Action that opens a pull request following an npm audit fix --forcey.' 8 | --- 9 | 10 |

11 | Screenshot of the Action creating a new pull request 12 |

13 | 14 | ### Still todo 15 | 16 | - Figure out how to best test Actions 17 | - Smarter logic around when `--force` should be used (if at all) 18 | - It runs `npm audit`, checks the sum vulnerabilities, then `npm audit fix` needed - could that be optimized to one command? 19 | -------------------------------------------------------------------------------- /src/actions/npm-cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/npm-cli' 3 | title: 'NPM Cli' 4 | github_url: 'https://github.com/actions/npm' 5 | author: 'GitHub' 6 | tags: ['cli'] 7 | subtitle: 'This Action for npm enables arbitrary actions with the npm command-line client, including testing packages and publishing to a registry.' 8 | --- 9 | 10 | ## Usage 11 | 12 | An example workflow to build, test, and publish an npm package to the default public registry follows: 13 | 14 | ```hcl 15 | workflow "Build, Test, and Publish" { 16 | on = "push" 17 | resolves = ["Publish"] 18 | } 19 | 20 | action "Build" { 21 | uses = "actions/npm@master" 22 | args = "install" 23 | } 24 | 25 | action "Test" { 26 | needs = "Build" 27 | uses = "actions/npm@master" 28 | args = "test" 29 | } 30 | 31 | # Filter for a new tag 32 | action "Tag" { 33 | needs = "Test" 34 | uses = "actions/bin/filter@master" 35 | args = "tag" 36 | } 37 | 38 | action "Publish" { 39 | needs = "Tag" 40 | uses = "actions/npm@master" 41 | args = "publish --access public" 42 | secrets = ["NPM_AUTH_TOKEN"] 43 | } 44 | ``` 45 | 46 | ### Secrets 47 | 48 | - `NPM_AUTH_TOKEN` - **Optional**. The token to use for authentication with the npm registry. Required for `npm publish` ([more info](https://docs.npmjs.com/getting-started/working_with_tokens)) 49 | 50 | ### Environment variables 51 | 52 | - `NPM_REGISTRY_URL` - **Optional**. To specify a registry to authenticate with. Defaults to `registry.npmjs.org` 53 | - `NPM_CONFIG_USERCONFIG` - **Optional**. To specify a non-default per-user configuration file. Defaults to `$HOME/.npmrc` ([more info](https://docs.npmjs.com/misc/config#npmrc-files)) 54 | 55 | #### Example 56 | 57 | To authenticate with, and publish to, a registry other than `registry.npmjs.org`: 58 | 59 | ```hcl 60 | action "Publish" { 61 | uses = "actions/npm@master" 62 | args = "publish --access public" 63 | env = { 64 | NPM_REGISTRY_URL = "someOtherRegistry.someDomain.net" 65 | } 66 | secrets = ["NPM_AUTH_TOKEN"] 67 | } 68 | ``` 69 | 70 | ## License 71 | 72 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 73 | 74 | Container images built with this project include third party materials. See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details. 75 | -------------------------------------------------------------------------------- /src/actions/okteto.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/okteto' 3 | title: 'Okteto Deploy' 4 | github_url: 'https://github.com/okteto/actions' 5 | author: 'Luis Vilca' 6 | twitter: '@ferluisxd' 7 | tags: ['okteto','cd','ci','devops','docker','k8s'] 8 | subtitle: 'This actions is to automate the deploy of okteto (similar to okteto push from their cli' 9 | --- 10 | 11 | 12 | This repository contains a bunch of actions to behave like the okteto CLI, 13 | you can find more info in their repository 14 | 15 | Learn more about okteto [here](https://okteto.com/docs/getting-started/index.html) 16 | 17 | ## Usage 18 | 19 | Below you'll find my script to deploy your app to the cloud (similar to okteto push) 20 | 21 | ```name: CD 22 | 23 | on: 24 | push: 25 | branches: 26 | - master 27 | 28 | jobs: 29 | 30 | devflow: 31 | runs-on: ubuntu-latest 32 | steps: 33 | 34 | - uses: okteto/actions/login@master 35 | with: 36 | token: ${{ secrets.OKTETO_TOKEN }} 37 | 38 | - name: "Create devlopment environments namespace" 39 | uses: okteto/actions/namespace@master 40 | with: 41 | name: your-okteto-username 42 | 43 | - name: "Deploy application" 44 | uses: okteto/actions/apply@master 45 | with: 46 | namespace: your-okteto-username 47 | manifest: k8s.yaml 48 | 49 | - name: "Push changes" 50 | uses: okteto/actions/namespace@master 51 | with: 52 | namespace: your-okteto-username 53 | name: your-cloud-application-name 54 | deploy: "true" 55 | ``` -------------------------------------------------------------------------------- /src/actions/pandoc.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/pandoc" 3 | title: "pandoc" 4 | github_url: "https://github.com/maxheld83/pandoc" 5 | author: "maxheld83" 6 | subtitle: "GitHub action to run pandoc" 7 | tags: ["github-actions","continuous-delivery","pandoc","latex","markdown","html"] 8 | --- 9 | # GitHub Action to Convert Documents via Pandoc 10 | 11 | [![Actions Status](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/badge/maxheld83/pandoc)](https://github.com/maxheld83/pandoc/actions) 12 | [![GitHubActions](https://img.shields.io/badge/as%20seen%20on%20-GitHubActions-blue.svg)](https://github-actions.netlify.com/pandoc) 13 | 14 | This action lets you use [pandoc](https://pandoc.org/), the **swiss army knife of document conversion**. 15 | 16 | It is based on the [`pandoc/latex`](https://hub.docker.com/r/pandoc/latex/) docker image and thus ships with LaTeX, so you can also convert right through to PDF. 17 | The action currently uses pandoc 2.6 and will be upgrade periodically. 18 | 19 | 20 | ## Secrets 21 | 22 | None. 23 | 24 | 25 | ## Environment Variables 26 | 27 | - `OUT_DIR` (optional) a path relative from `workspace/github` (~ your repository root) *without* trailing slash. 28 | 29 | It's often useful to have pandoc output to a separate directory, for example for easier deployment. 30 | You can *create* such a directory using the `OUT_DIR` environment variable. 31 | 32 | If you've set it, the directory will be `mkdir`ed. 33 | Remember to point the output argument of your pandoc call in the `args` section to this new directory. 34 | 35 | 36 | ## Arguments 37 | 38 | All arguments get appended to the [`pandoc` command](https://pandoc.org/MANUAL.html). 39 | 40 | 41 | ## Example Usage 42 | 43 | This is the action block used to render the website for this action. 44 | 45 | ``` 46 | action "Convert" { 47 | uses = "maxheld83/pandoc@v0.1.0" 48 | env = { 49 | OUT_DIR = "public" 50 | } 51 | args = [ 52 | "--standalone", 53 | "--output=public/index.html", 54 | "README.md" 55 | ] 56 | } 57 | ``` 58 | -------------------------------------------------------------------------------- /src/actions/php-code-fixer.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/php-code-fixer' 3 | title: 'PHP Code Fixer' 4 | github_url: 'https://github.com/OskarStark/php-cs-fixer-ga' 5 | author: 'OskarStark' 6 | tags: [] 7 | subtitle: 'Github Action for PHP-CS-Fixer.' 8 | --- 9 | 10 | ## Usage 11 | 12 | You can use it as a Github Action like this: 13 | 14 | _.github/main.workflow_ 15 | 16 | ``` 17 | workflow "Main" { 18 | on = "push" 19 | resolves = ["PHP-CS-Fixer"] 20 | } 21 | 22 | action "PHP-CS-Fixer" { 23 | uses = "docker://oskarstark/php-cs-fixer-ga" 24 | secrets = ["GITHUB_TOKEN"] 25 | } 26 | ``` 27 | 28 | _to use a custom config for example, --diff and --dry-run option:_ 29 | 30 | ```diff 31 | workflow "Main" { 32 | on = "push" 33 | resolves = ["PHP-CS-Fixer"] 34 | } 35 | 36 | action "PHP-CS-Fixer" { 37 | uses = "docker://oskarstark/php-cs-fixer-ga" 38 | secrets = ["GITHUB_TOKEN"] 39 | + args = "--config=.project.php_cs --diff --dry-run" 40 | } 41 | ``` 42 | 43 | **You can copy/paste the .github folder (under examples/) to your project and thats all!** 44 | 45 | ## Docker 46 | 47 | A Docker-Image is built automatically and located here: 48 | https://cloud.docker.com/u/oskarstark/repository/docker/oskarstark/php-cs-fixer-ga 49 | 50 | You can run it in any given directory like this: 51 | 52 | `docker run --rm -it -w=/app -v ${PWD}:/app oskarstark/php-cs-fixer-ga:latest` 53 | 54 | ## A picture is worth a thousand words 55 | 56 | You can find a working and not working PR here: 57 | https://github.com/OskarStark/test-php-cs-fixer-ga/pulls 58 | -------------------------------------------------------------------------------- /src/actions/php-stan.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/php-stan' 3 | title: 'PHPStan' 4 | github_url: 'https://github.com/OskarStark/phpstan-ga' 5 | author: 'OskarStark' 6 | tags: [] 7 | subtitle: 'PHPStan Static code analyzer Action.' 8 | --- 9 | 10 | ## Usage 11 | 12 | You can use it as a Github Action like this: 13 | 14 | _.github/main.workflow_ 15 | 16 | ``` 17 | workflow "Main" { 18 | on = "push" 19 | resolves = ["PHPStan"] 20 | } 21 | 22 | action "PHPStan" { 23 | uses = "docker://oskarstark/phpstan-ga" 24 | secrets = ["GITHUB_TOKEN"] 25 | args = "analyse src/" 26 | } 27 | ``` 28 | 29 | _to use a specific level:_ 30 | 31 | ```diff 32 | workflow "Main" { 33 | on = "push" 34 | resolves = ["PHPStan"] 35 | } 36 | 37 | action "PHPStan" { 38 | uses = "docker://oskarstark/phpstan-ga" 39 | secrets = ["GITHUB_TOKEN"] 40 | + args = "analyse src/ --level=4" 41 | } 42 | ``` 43 | 44 | **You can copy/paste the .github folder (under examples/) to your project and thats all!** 45 | 46 | ## Docker 47 | 48 | A Docker-Image is built automatically and located here: 49 | https://cloud.docker.com/u/oskarstark/repository/docker/oskarstark/phpstan-ga 50 | 51 | You can run it in any given directory like this: 52 | 53 | `docker run --rm -it -w=/app -v ${PWD}:/app oskarstark/phpstan-ga:latest analyse src/` 54 | -------------------------------------------------------------------------------- /src/actions/phpqa.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/phpqa' 3 | title: 'PHPQA toolsuite' 4 | github_url: 'https://github.com/mickaelandrieu/phpqa-ga' 5 | author: 'mickaelandrieu' 6 | tags: [] 7 | subtitle: 'PHPQA toolsuite action.' 8 | --- 9 | 10 | ## Usage 11 | 12 | You can use it as a Github Action like this: 13 | 14 | _.github/main.workflow_ 15 | 16 | ``` 17 | workflow "Main" { 18 | on = "push" 19 | resolves = ["PHPQA"] 20 | } 21 | 22 | action "PHPQA" { 23 | uses = "docker://mickaelandrieu/phpqa-ga" 24 | secrets = ["GITHUB_TOKEN"] 25 | args = "--report --output=cli" 26 | } 27 | ``` 28 | 29 | **You can copy/paste the .github folder (under examples/) to your project and thats all!** 30 | 31 | ## Docker 32 | 33 | A Docker-Image is built automatically and located here: 34 | https://cloud.docker.com/u/mickaelandrieu/repository/docker/mickaelandrieu/phpqa-ga 35 | 36 | You can run it in any given directory like this: 37 | 38 | `docker run --rm -it -w=/app -v ${PWD}:/app mickaelandrieu/phpqa-ga:latest tools` 39 | -------------------------------------------------------------------------------- /src/actions/powershell-formatter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/powershell-formatter' 3 | title: 'Powershell formatter' 4 | github_url: 'https://github.com/bltavares/actions' 5 | author: 'bltavares' 6 | tags: ['powershell', 'formatter', 'autofixer'] 7 | subtitle: 'This actions will check the formating of the Dockerfiles in the project, using Powershell-Beautiffier.' 8 | --- 9 | 10 | ## Validations on Push 11 | 12 | This actions will check the formating of the Dockerfiles in the project, using 13 | [Powershell-Beautiffier](https://github.com/DTW-DanWard/PowerShell-Beautifier) 14 | 15 | Action name was changed just to provide a shorter version 16 | 17 | ## Fixes on Pull Request review 18 | 19 | This action provides automated fixes using Pull Request review comments. 20 | 21 | If the comment starts with `fix $action_name` or `fix pwshfmt`, a new commit 22 | will be added to the branch with the automated fixes applied. 23 | 24 | **Supports**: autofix on push 25 | 26 | ## Example workflow 27 | 28 | ```hcl 29 | workflow "on push" { 30 | on = "push" 31 | resolves = ["pwshfmt"] 32 | } 33 | 34 | workflow "on review" { 35 | resolves = ["pwshfmt"] 36 | on = "pull_request_review" 37 | } 38 | 39 | action "pwshfmt" { 40 | uses = "bltavares/actions/pwshfmt@master" 41 | # Enable autofix on push 42 | # args = ["autofix"] 43 | # Used for pushing changes for `fix` comments on review 44 | secrets = ["GITHUB_TOKEN"] 45 | } 46 | ``` 47 | -------------------------------------------------------------------------------- /src/actions/pr-status-giphy.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/pr-status-giphy" 3 | title: "Pull Request Status Giphy Action" 4 | github_url: "https://github.com/jzweifel/pr-status-giphy-action" 5 | author: "jzweifel" 6 | subtitle: "A GitHub Action that displays a random thumbs up or thumbs down gif from giphy when pull request checks finish. " 7 | tags: [gif,utility,fun] 8 | --- 9 | # Pull Request Status Giphy Action 10 | 11 | A GitHub Action that displays a random thumbs up or thumbs down gif from Giphy when all checks on a Pull Request complete. 12 | 13 | It will automatically clean up an existing comment before making a new one if checks are re-run. 14 | 15 | Works best when used in a workflow that runs on the `pull_request` event. 16 | 17 | ![thumbs-up-pr](https://github.com/jzweifel/pr-status-giphy-action/raw/master/media/thumbs-up-pr.gif) 18 | 19 | ![thumbs-down-pr](https://github.com/jzweifel/pr-status-giphy-action/raw/master/media/thumbs-down-pr.gif) 20 | 21 | ## Usage 22 | 23 | ``` 24 | workflow "Pull Request Status Checks" { 25 | resolves = "PR Status Giphy" 26 | on = "pull_request" 27 | } 28 | 29 | action "PR Status Giphy" { 30 | uses = "jzweifel/pr-status-giphy-action@master" 31 | secrets = ["GITHUB_TOKEN", "GIPHY_API_KEY"] 32 | } 33 | ``` 34 | 35 | ### Secrets 36 | 37 | - `GITHUB_TOKEN` - **Required**. 38 | - `GIPHY_API_KEY` - **Required**. Your secret Giphy Api Key. You can create this key [here](https://developers.giphy.com/dashboard/?create=true). 39 | 40 | ## License 41 | 42 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 43 | 44 | Container images built with this project include third party materials. See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details. 45 | -------------------------------------------------------------------------------- /src/actions/psake.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/psake-tasks' 3 | title: 'Run psake tasks' 4 | github_url: 'https://github.com/devblackops/psake-github-action' 5 | author: 'devblackops' 6 | tags: [] 7 | subtitle: 'This official psake GitHub Action allow you to run psake tasks as part of your GitHub workflow.' 8 | --- 9 | 10 | ## Actions 11 | 12 | ### Task 13 | 14 | Runs one or more psake tasks defined in a `psakeFile.ps1` in the root of the repository. 15 | The file containing your psake tasks can be overridden via environment variables. 16 | 17 | ## Success Criteria 18 | 19 | This action succeeds if the `psake` task(s) complete without error. 20 | 21 | ## Usage 22 | 23 | ```hcl 24 | action "psake test" { 25 | # Replace with the latest tag from 26 | # https://github.com/devblackops/psake-github-action/releases 27 | uses = "devblackops/psake-github-action@" 28 | 29 | # If you need to change the default psakeFile name, PSDepend requirements file, 30 | # or skip requirements installation entirely, specify here. 31 | # See Environment Variables below for details. 32 | env = { 33 | PSAKE_FILE = "./psakeFile.ps1" 34 | } 35 | 36 | # The psake task(s) to execute 37 | args = ["Test"] 38 | } 39 | ``` 40 | 41 | ## Environment Variables 42 | 43 | | Name | Default | Description | 44 | | ------------- | --------------------- | -------------------------------------------------------------- | 45 | | PSAKE_FILE | "./psakeFile.ps1" | The default psake task file to execute | 46 | | PSDEPEND_FILE | "./requirements.psd1" | The default PSDepend file to install dependencies from | 47 | | SKIP_REQS | "false" | Set to `"true"` to skip installing dependencies via `PSDepend` | 48 | 49 | ## Arguments 50 | 51 | Arguments to the `Task` action determine what `psake` tasks to execute. 52 | By default, `psake` will execute a task called `Default` that is defined in the psakeFile. 53 | 54 | Execute the `test` psake task. 55 | 56 | ```hcl 57 | action "psake test" { 58 | ... 59 | args = ["Test"] 60 | } 61 | ``` 62 | 63 | Execute the `init`, `build`, and `test` psake tasks. 64 | 65 | ```hcl 66 | action "psake test" { 67 | ... 68 | args = ["init, build, test"] 69 | } 70 | ``` 71 | -------------------------------------------------------------------------------- /src/actions/publish-puppet-forge.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/action-forge-publish" 3 | title: "action-forge-publish" 4 | github_url: "https://github.com/barnumbirr/action-forge-publish" 5 | author: "Martin Simon" 6 | twitter: '@barnumbirr' 7 | subtitle: "GitHub Action to build and publish modules to Puppet Forge." 8 | tags: ['deployment', 'publish', 'Puppet', 'Forge'] 9 | --- 10 | # action-forge-publish 11 | 12 | This action allows you to upload your module to [Puppet Forge](https://forge.puppet.com/). 13 | 14 | ## Usage 15 | 16 | To use the action add the following step to your workflow file (e.g. `.github/workflows/main.yml`) 17 | 18 | ```yaml 19 | name: Build and publish to Puppet Forge 20 | 21 | on: 22 | push: 23 | tags: 24 | - v[0-9]+.[0-9]+.[0-9]+ 25 | 26 | jobs: 27 | build: 28 | runs-on: ubuntu-latest 29 | steps: 30 | - name: Get latest tag 31 | run: echo ::set-env name=RELEASE_VERSION::$(echo ${GITHUB_REF:10}) 32 | - name: Clone repository 33 | uses: actions/checkout@v1 34 | with: 35 | ref: ${{ env.RELEASE_VERSION }} 36 | - name: Build and publish module 37 | uses: barnumbirr/action-forge-publish@v1.2.0 38 | env: 39 | FORGE_API_KEY: ${{ secrets.FORGE_API_KEY }} 40 | REPOSITORY_URL: https://forgeapi.puppet.com/v3/releases 41 | ``` 42 | 43 | ## License: 44 | 45 | ``` 46 | Copyright 2019 Martin Simon 47 | 48 | Licensed under the Apache License, Version 2.0 (the "License"); 49 | you may not use this file except in compliance with the License. 50 | You may obtain a copy of the License at 51 | 52 | http://www.apache.org/licenses/LICENSE-2.0 53 | 54 | Unless required by applicable law or agreed to in writing, software 55 | distributed under the License is distributed on an "AS IS" BASIS, 56 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 57 | See the License for the specific language governing permissions and 58 | limitations under the License. 59 | ``` 60 | -------------------------------------------------------------------------------- /src/actions/publish-wordpress-plugin.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/publish-wordpress-plugin' 3 | title: 'Publish WordPress plugin' 4 | github_url: 'https://github.com/lubusIN/actions' 5 | author: 'lubusIN' 6 | tags: ['wordpress'] 7 | subtitle: 'Github action to publish your WordPress plugin to wordpress.org plugin repository. Develop plugin on github and once done tag the release, sit back and relax. WordPress action will publish the release to wordpress.org SVN and create SVN tag based on the github release tag.' 8 | --- 9 | 10 |

11 | 12 |

13 | 14 |

15 | Licence 16 | PRs 17 |

18 | 19 |
20 | 21 | 22 | 23 |
24 | 25 | # WordPress 26 | 27 | Github action to publish your WordPress plugin to wordpress.org plugin repository. Develop plugin on github and once done tag the release, sit back and relax. WordPress action will publish the release to wordpress.org SVN and create SVN tag based on the github release tag. 28 | 29 | > _**Note**_: 30 | > 31 | > - WordPress action depends on [archive](https://github.com/lubusIN/actions/tree/master/archive) action to build the distibution archive which is published to wordpress.org SVN 32 | > - Keep all assets for plugin repository under `.wordpress-org` 33 | > - Create numeric release tag e.g. `1.0.0` as action uses same name for SVN tag folder 34 | 35 | ## Environment Variables 36 | 37 | - **WP_SLUG**: plugin slug on wordpress.org 38 | 39 | ## Secrets 40 | 41 | - **WP_USERNAME**: your wordpress.org username 42 | - **WP_PASSWORD**: your wordpress.org password 43 | 44 | ## Example Workflow 45 | 46 | ```HCL 47 | # Workflow to publish plugin release to wordpress.org 48 | workflow "Release Plugin" { 49 | on = "push" 50 | resolves = ["wordpress"] 51 | } 52 | 53 | # Filter for tag 54 | action "tag" { 55 | uses = "actions/bin/filter@master" 56 | args = "tag" 57 | } 58 | 59 | # Install Dependencies 60 | action "install" { 61 | uses = "actions/npm@e7aaefe" 62 | needs = "tag" 63 | args = "install" 64 | } 65 | 66 | # Build Plugin 67 | action "build" { 68 | uses = "actions/npm@e7aaefe" 69 | needs = ["install"] 70 | args = "run build" 71 | } 72 | 73 | # Create Release ZIP archive 74 | action "archive" { 75 | uses = "lubusIN/actions/archive@master" 76 | needs = ["build"] 77 | env = { 78 | ZIP_FILENAME = "plugin-slug" 79 | } 80 | } 81 | 82 | # Publish to wordpress.org repository 83 | action "wordpress" { 84 | uses = "lubusIN/actions/wordpress@master" 85 | needs = ["archive"] 86 | env = { 87 | WP_SLUG = "plugin-slug" 88 | } 89 | secrets = [ 90 | "WP_USERNAME", 91 | "WP_PASSWORD" 92 | ] 93 | } 94 | ``` 95 | -------------------------------------------------------------------------------- /src/actions/py-lambda-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/py-lambda" 3 | title: "py-lambda" 4 | github_url: "https://github.com/mariamrf/py-lambda-action" 5 | author: "mariamrf" 6 | subtitle: "A Github Action to deploy AWS Lambda functions written in Python with their dependencies in a separate layer." 7 | tags: ["actions","aws","lambda","lambda-layer"] 8 | --- 9 | # py-lambda-action 10 | A Github Action to deploy AWS Lambda functions written in Python with their dependencies in a separate layer. For now, only works with Python 3.6. 11 | 12 | ## Use 13 | Doesn't take any arguments. Deploys everything in the repo as code to the Lambda function, and installs/zips/deploys the dependencies as a separate layer the function can then immediately use. 14 | ### Structure 15 | - Lambda code should be structured normally/as Lambda would expect it. 16 | - **Dependencies must be stored in a `requirements.txt`**. 17 | ### Environment variables 18 | Stored as secrets or env vars, doesn't matter. But also please don't put your AWS keys outside Secrets. 19 | - **AWS Credentials** 20 | That includes the `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, etc. It's used by `awscli`, so the docs for that [can be found here](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-envvars.html). 21 | - `LAMBDA_LAYER_ARN` 22 | The ARN for the Lambda layer the dependencies should be pushed to **without the version** (every push is a new version). 23 | - `LAMBDA_FUNCITON_NAME` 24 | The Lambda function name. [From the AWS docs](https://docs.aws.amazon.com/cli/latest/reference/lambda/update-function-code.html), it can be any of the following: 25 | - Function name - `my-function` 26 | - Function ARN - `arn:aws:lambda:us-west-2:123456789012:function:my-function` 27 | - Partial ARN - `123456789012:function:my-function` 28 | - `BRANCH` (optional) 29 | If the action should only be executed on a certain branch (e.g. `master`). 30 | 31 | ### Example workflow 32 | ```hcl 33 | workflow "Build & deploy" { 34 | on = "push" 35 | resolves = ["py-lambda-deploy"] 36 | } 37 | 38 | action "py-lambda-deploy" { 39 | uses = "mariamrf/py-lambda-action@master" 40 | secrets = [ 41 | "AWS_ACCESS_KEY_ID", 42 | "AWS_SECRET_ACCESS_KEY", 43 | "AWS_DEFAULT_REGION", 44 | "LAMBDA_FUNCTION_NAME", 45 | "LAMBDA_LAYER_ARN", 46 | ] 47 | env = { 48 | BRANCH = "master" 49 | } 50 | } 51 | ``` 52 | -------------------------------------------------------------------------------- /src/actions/pypi-publish.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/gh-action-pypi-publish" 3 | title: "gh-action-pypi-publish" 4 | github_url: "https://github.com/pypa/gh-action-pypi-publish" 5 | author: "pypa" 6 | subtitle: "GitHub Action for publishing pre-build distribution packages to PyPI (from `dist/` dir)" 7 | tags: ["github-action","python","workflow","workflow-automation","pypi","python-packaging","twine","secrets","upload","release","release-automation","release-helper","workflows","github-actions"] 8 | --- 9 | # PyPI publish GitHub Action 10 | This action allows you to upload your [Python distribution package]( 11 | https://packaging.python.org/glossary/#term-distribution-package) to 12 | PyPI. 13 | This text suggests a minimalistic usage overview. For more detailed 14 | walkthrough check out the [PyPA guide]. 15 | 16 | 17 | ## Usage 18 | 19 | To use the action add the following step to your workflow file (e.g. 20 | `.github/workflows/main.yml`) 21 | 22 | 23 | ```yml 24 | - name: Publish a Python distribution to PyPI 25 | uses: pypa/gh-action-pypi-publish@master 26 | with: 27 | user: __token__ 28 | password: ${{ secrets.pypi_password }} 29 | ``` 30 | 31 | > **Pro tip**: instead of using branch pointers, like `master`, pin versions of 32 | Actions that you use to tagged versions or sha1 commit identifiers. This will 33 | make your workflows more secure and better reproducible, saving you from sudden 34 | and unpleasant surprises. 35 | 36 | A common use case is to upload packages only on a tagged commit, to do so add a 37 | filter to the step: 38 | 39 | 40 | ```yml 41 | if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') 42 | ``` 43 | 44 | So the full step would look like: 45 | 46 | 47 | ```yml 48 | - name: Publish package 49 | if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') 50 | uses: pypa/gh-action-pypi-publish@master 51 | with: 52 | user: __token__ 53 | password: ${{ secrets.pypi_password }} 54 | ``` 55 | 56 | The example above uses the new [API token](https://pypi.org/help/#apitoken) 57 | feature of PyPI, which is recommended to restrict the access the action has. 58 | 59 | The secret used in `${{ secrets.pypi_password }}` needs to be created on the 60 | settings page of your project on GitHub. See [Creating & using secrets]. 61 | 62 | 63 | ## Non-goals 64 | 65 | This GitHub Action [has nothing to do with _building package 66 | distributions_]. Users are responsible for preparing dists for upload 67 | by putting them into the `dist/` folder prior to running this Action. 68 | 69 | 70 | ## Advanced release management 71 | 72 | For best results, figure out what kind of workflow fits your 73 | project's specific needs. 74 | 75 | For example, you could implement a parallel workflow that 76 | pushes every commit to TestPyPI or your own index server, 77 | like `devpi`. For this, you'd need to (1) specify a custom 78 | `repository_url` value and (2) generate a unique version 79 | number for each upload so that they'd not create a conflict. 80 | The latter is possible if you use `setuptools_scm` package but 81 | you could also invent your own solution based on the distance 82 | to the latest tagged commit. 83 | 84 | You'll need to create another token for a separate host and then 85 | [save it as a GitHub repo secret][Creating & using secrets]. 86 | 87 | The action invocation in this case would look like: 88 | ```yml 89 | - name: Publish package to TestPyPI 90 | uses: pypa/gh-action-pypi-publish@master 91 | with: 92 | user: __token__ 93 | password: ${{ secrets.test_pypi_password }} 94 | repository_url: https://test.pypi.org/legacy/ 95 | ``` 96 | 97 | 98 | ## License 99 | 100 | The Dockerfile and associated scripts and documentation in this project 101 | are released under the [BSD 3-clause license](LICENSE.md). 102 | 103 | 104 | [Creating & using secrets]: 105 | https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables 106 | [has nothing to do with _building package distributions_]: 107 | https://github.com/pypa/gh-action-pypi-publish/issues/11#issuecomment-530480449 108 | [PyPA guide]: 109 | https://packaging.python.org/guides/publishing-package-distribution-releases-using-github-actions-ci-cd-workflows/ 110 | -------------------------------------------------------------------------------- /src/actions/rebase-pr.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/rebase-pr' 3 | title: 'Automaticly rebase pull requests' 4 | github_url: 'https://github.com/cirrus-actions/rebase' 5 | author: 'cirrus-actions' 6 | tags: ['pull-request', 'github'] 7 | subtitle: 'GitHub action to automatically rebase pull requests.' 8 | --- 9 | 10 | [![Build Status](https://api.cirrus-ci.com/github/cirrus-actions/rebase.svg)](https://cirrus-ci.com/github/cirrus-actions/rebase) [![](https://images.microbadger.com/badges/version/cirrusactions/rebase.svg)](https://microbadger.com/images/cirrusactions/rebase) [![](https://images.microbadger.com/badges/image/cirrusactions/rebase.svg)](https://microbadger.com/images/cirrusactions/rebase) 11 | 12 | After installation simply comment `/rebase` to trigger the action: 13 | 14 | ![rebase-action](https://user-images.githubusercontent.com/989066/51547853-14a57b00-1e35-11e9-841d-33114f0f0bd5.gif) 15 | 16 | # Limitations 17 | 18 | Due to current [limitations of GitHub Actions](https://developer.github.com/actions/): 19 | 20 | > GitHub Actions is limited to private repositories and push events in public repositories during the limited public beta. 21 | 22 | _Rebase_ action currently only works on private repositories since it requires `IssueCommentEvent` event. 23 | 24 | # Installation 25 | 26 | To configure the action simply add the following lines to your `.github/main.workflow` workflow file: 27 | 28 | ``` 29 | workflow "Automatic Rebase" { 30 | on = "issue_comment" 31 | resolves = "Rebase" 32 | } 33 | 34 | action "Rebase" { 35 | uses = "docker://cirrusactions/rebase:latest" 36 | secrets = ["GITHUB_TOKEN"] 37 | } 38 | ``` 39 | -------------------------------------------------------------------------------- /src/actions/release-archive.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/release-archive' 3 | title: 'Release Archive' 4 | github_url: 'https://github.com/lubusIN/actions' 5 | author: 'lubusIN' 6 | tags: ['zip'] 7 | subtitle: 'Github action to create release zip archive.' 8 | --- 9 | 10 |

11 | 12 |

13 | 14 |

15 | Licence 16 | PRs 17 |

18 | 19 |
20 | 21 | 22 | 23 |
24 | 25 | # Archive 26 | 27 | Currently action excludes following development/build files/folders: 28 | 29 | - node_modules 30 | - .git 31 | - .github 32 | - .wordpress-org 33 | - src 34 | - .gitkeep 35 | - .distignore 36 | - .gitignore 37 | - .editorconfig 38 | - .eslintignore 39 | - .eslintrc 40 | - .nvmrc 41 | - CHANGELOG.md 42 | - CONTRIBUTING.md 43 | - docker-compose.yml 44 | - package-lock.json 45 | - package.json 46 | - README.md 47 | - webpack.config.js 48 | - actions 49 | 50 | > _**Note**_: 51 | > 52 | > - To be used as part of workflow where archive can be used for further action like release or publish. 53 | 54 | ## Environment Variables 55 | 56 | - **ARCHIVE_FILENAME**: filename for the zip archive 57 | 58 | ## Example Workflow 59 | 60 | ```HCL 61 | # Workflow to create distribution archive 62 | workflow "Create Archive" { 63 | on = "push" 64 | resolves = ["archive"] 65 | } 66 | 67 | # Filter for tag 68 | action "tag" { 69 | uses = "actions/bin/filter@master" 70 | args = "tag" 71 | } 72 | 73 | # Install Dependencies 74 | action "install" { 75 | uses = "actions/npm@e7aaefe" 76 | needs = "tag" 77 | args = "install" 78 | } 79 | 80 | # Build 81 | action "build" { 82 | uses = "actions/npm@e7aaefe" 83 | needs = ["install"] 84 | args = "run build" 85 | } 86 | 87 | # Create Release ZIP archive 88 | action "archive" { 89 | uses = "lubusIN/actions/archive@master" 90 | needs = ["build"] 91 | env = { 92 | ZIP_FILENAME = "archive-filename" 93 | } 94 | } 95 | ``` 96 | 97 | ## Feedback / Suggestions 98 | 99 | If you have any suggestions/feature request that you would like to see, feel free to let us know in the [issues section](https://github.com/lubusIN/actions/issues) 100 | 101 | ## Credits 102 | 103 | [Ajit Bohra](https://twitter.com/ajitbohra) 104 | 105 | ## Support Us 106 | 107 | 108 | Become A Patron 109 | 110 | 111 | [LUBUS](http://lubus.in) is a web design agency based in Mumbai, India. 112 | 113 | You can pledge on [patreon](https://www.patreon.com/lubus) to support the development & maintenance of various [opensource](https://github.com/lubusIN/) stuff we are building. 114 | 115 | ## License 116 | 117 | `archive action` is open-sourced software licensed under the [MIT](LICENSE) 118 | -------------------------------------------------------------------------------- /src/actions/release_notify.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/release-notify-action' 3 | title: 'Release notify' 4 | github_url: 'https://github.com/bitoiu/release-notify-action' 5 | author: 'bitoiu' 6 | tags: ['email', 'notification'] 7 | subtitle: 'This repo contains a re-usable GitHub Action that when installed sends an e-mail to a distribution list with the release note contents every time a GitHub Release is created for the repository. This Action makes use of SendGrids API to send the e-mails.' 8 | --- 9 | 10 | ## Pre-requisites 11 | 12 | To run this action you'll need: 13 | 14 | - To be part of the [Actions beta](https://github.com/features/actions). Note that during the beta, Actions will only run on private repositories. 15 | - A [**SendGrid API Key**](https://sendgrid.com/docs/ui/account-and-settings/api-keys/). _SendGrid is [free to up 100 e-mails a day](https://sendgrid.com/pricing/) so feel free to register and get your API KEY._ 16 | - **A text file hosted anywhere** with the list of e-mail recipients. _I personally use [GitHub Gists](https://gist.github.com) and get the link of the raw file._ 17 | 18 | ## Setup 19 | 20 | ### 1. Create the release workflow 21 | 22 | Add a new workflow to your `.github/main.workflow` to trigger on `release`. 23 | 24 | new-workflow 25 | 26 | ### 2. Create the Action 27 | 28 | Create an action that uses this repository `bitoiu/release-notify-action@master` or points to Docker Hub at `docker://bitoiu/release-notifiy-action` 29 | 30 | new-action 31 | 32 | ### 3. Set the SendGrid secret 33 | 34 | Using the Visual Editor create a new secret on the action named `SENDGRID_API_TOKEN`. Set the value to your [SendGrid API Key](https://sendgrid.com/docs/ui/account-and-settings/api-keys/). 35 | 36 | new-secret 37 | 38 | ### 4. Set the RECIPIENTS secret 39 | 40 | Do the same for a secret named `RECIPIENTS` that you need to set to the URI of the text file with the target recipients. The contents of the file should be a list of e-mails separated by newline, for example: 41 | 42 | ``` 43 | mona@github.com 44 | actions_are_awesome@github.com 45 | ``` 46 | 47 | If you don't know where to host this file, just go to [GitHub Gists](https://gist.github.com) and create a new textfile with the e-mails you want to target. After you save the file just click `raw` and get the URI of the file you've just created. 48 | 49 | ### 5. Commit the changes 50 | 51 | Make sure you commit all pending changes. After you've done that your `main.workflow` should look similar to this: 52 | 53 | ``` 54 | 55 | workflow "Release Notifier" { 56 | on = "release" 57 | resolves = ["Notify Releases"] 58 | } 59 | 60 | action "Notify Releases" { 61 | uses = "bitoiu/release-notify-action@master" 62 | secrets = ["SENDGRID_API_TOKEN", "RECIPIENTS"] 63 | } 64 | 65 | ``` 66 | 67 | On the visual editor it should look similar to this: 68 | 69 | ![visual editor](https://user-images.githubusercontent.com/1192590/47112717-10bef700-d24f-11e8-86a7-ef28d3d270c8.png) 70 | 71 | ### 6. Test the workflow! 72 | 73 | Create a new release for your repository and verify that the action triggers and that the e-mails were sent. Sometimes it's worth checking the spam inbox. 74 | 75 | ## Local testing 76 | 77 | The main script that does the heavy lifting is a NodeJS file. As such you can simply test it like any other node program, for example, running the following inside the `src` folder: 78 | 79 | ``` 80 | SENDGRID_API_TOKEN=XXX RECIPIENTS=ABSOLUTE_PATH_TO_TXT_FILE_WITH_RECIPIENTS GITHUB_EVENT_PATH=ABSOLUTE_PATH_TO_SAMPLE_PAYLOAD_FILE_PROVIDED node notify.js 81 | ``` 82 | 83 | If you prefer to test the container directly (which is a tiny bit slower but more reliable) you can just run something like: 84 | 85 | ``` 86 | docker build -t release . && docker run --env-file=./env release 87 | ``` 88 | 89 | Be sure to rename `env.template` to `env` and fill it with your environment variables. 90 | -------------------------------------------------------------------------------- /src/actions/repetitive.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/repetitive' 3 | title: 'Repetitive Actions' 4 | github_url: 'https://github.com/repetitive/actions' 5 | author: 'repetitive' 6 | subtitle: 'Collection of repetitive GitHub Actions' 7 | tags: ['action', 'actions', 'github-actions', 'github-api', 'pull-request'] 8 | --- 9 | 10 | ## repetitive actions 11 | 12 | Collection of repetitive GitHub Actions. 13 | That can be used in other repos across GitHub: 14 | 15 | - [Create Pull Request when branch is pushed](https://github.com/repetitive/actions/tree/master/auto-pr) 16 | - [Evaluate Clojure in the issue comment](https://github.com/repetitive/actions/tree/master/clojure) 17 | -------------------------------------------------------------------------------- /src/actions/rstats.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/ghactions" 3 | title: "GitHub actions for R" 4 | github_url: "https://github.com/maxheld83/ghactions" 5 | author: "maxheld83" 6 | subtitle: "Actions and accompanying rstats package to do R things via GitHub actions." 7 | tags: ["github-actions","rstats","setup","github","cicd","continous-integration","continous-delivery","devops","data-science"] 8 | --- 9 | 10 | 11 | 12 | [![Actions Status](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/badge/maxheld83/ghactions)](https://github.com/maxheld83/ghactions/actions) 13 | [![lifecycle](https://img.shields.io/badge/lifecycle-experimental-orange.svg)](https://www.tidyverse.org/lifecycle/#experimental) 14 | [![CRAN status](https://www.r-pkg.org/badges/version/ghactions)](https://cran.r-project.org/package=ghactions) 15 | [![codecov](https://codecov.io/gh/maxheld83/ghactions/branch/master/graph/badge.svg)](https://codecov.io/gh/maxheld83/ghactions) 16 | [![License: MIT](https://img.shields.io/github/license/maxheld83/ghactions.svg?style=flat)](https://opensource.org/licenses/MIT) 17 | 18 | [GitHub actions](https://github.com/features/actions) are a new workflow automation feature of the popular code repository host GitHub. 19 | The product is currently in **limited beta**. 20 | 21 | This repository, **ghactions**, offers three avenues to **bring GitHub actions to the `#rstats` community**: 22 | 23 | 1. Some **actions** to run R-specific jobs on GitHub, including [arbitrary R code](http://www.maxheld.de/ghactions/articles/rscript-byod.html) or deploying to [shinyapps.io](http://shinyapps.io). 24 | These actions are maintained in this repository, but are not technically part of the accompanying ghactions R package. 25 | You can use these actions independently from the package; they are freely available on GitHub marketplace. 26 | In fact, the whole idea of GitHub actions is that people re-use such small building blocks any way they like. 27 | 2. The accompanying [**ghactions R package**](#workflows) furnishes you with some out-of-the-box **workflows** for different kinds of projects. 28 | These functions are styled after the popular [usethis](http://usethis.r-lib.org) package. 29 | They don't do much: They just set you up with some configuration files for your project, using sensible defaults. 30 | 3. Documenting experiences and evolving [**best practices**](http://www.maxheld.de/ghactions/articles/ghactions.html) for how to make the most of GitHub actions for R. 31 | 32 | 33 | 34 | 35 | ## Installation 36 | 37 | To install, run: 38 | 39 | ```r 40 | devtools::install_github("maxheld83/ghactions") 41 | ``` 42 | 43 | Because you're likely only to ever use it *once*, **you need not take on ghactions as a dependency in your projects.** 44 | 45 | 46 | ## Quick Start 47 | 48 | GitHub actions just requires a special file in a special directory at the root of your repository to work: `.github/main.workflow`. 49 | 50 | To quickly set up such a file for frequently used project kinds, run: 51 | 52 | ```r 53 | ghactions::use_ghactions(workflow = website()) 54 | ``` 55 | 56 | See the documentation for implied defaults and alternatives. 57 | 58 | Then push to GitHub and go to the actions tab in your repository. 59 | Enjoy. 60 | -------------------------------------------------------------------------------- /src/actions/rsync.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/rsync" 3 | title: "rsync" 4 | github_url: "https://github.com/maxheld83/rsync" 5 | author: "maxheld83" 6 | subtitle: "GitHub action to deploy to some server via rsync and ssh" 7 | tags: ["github-actions","github-action","bash","bash-script","ssh","rsync","deployment"] 8 | --- 9 | # GitHub Action to Deploy via `rsync` over ssh 10 | 11 | [![Actions Status](https://wdp9fww0r9.execute-api.us-west-2.amazonaws.com/production/badge/maxheld83/rsync)](https://github.com/maxheld83/rsync/actions) 12 | [![GitHubActions](https://img.shields.io/badge/as%20seen%20on%20-GitHubActions-blue.svg)](https://github-actions.netlify.com/rsync) 13 | 14 | Sometimes, you might want to deploy static assets to some old school webserver over ssh. 15 | This is your action. 16 | 17 | It allows you to transfer files *from* your working directory (`/github/workspace`) *to* some server using `rsync` over ssh. 18 | Helpfully, `/github/workspace` includes a copy of your repository *source*, as well as any build artefacts left behind by previous workflow steps (= other actions you ran before). 19 | 20 | 21 | ## Disclaimer 22 | 23 | GitHub actions is still [in limited public beta](https://github.com/features/actions) and advises against [usage in production](https://developer.github.com/actions/). 24 | 25 | This action in particular requires ssh private keys (see secrets), and **may thus be vulnerable**. 26 | The ssh authentification **may need improvement** (see [issues](https://github.com/maxheld83/rsync/)). 27 | 28 | 29 | ## Secrets 30 | 31 | This action requires two secrets to authenticate over ssh: 32 | 33 | - `SSH_PRIVATE_KEY` 34 | - `SSH_PUBLIC_KEY` 35 | 36 | You get both of these from the server you deploy to. 37 | 38 | Remember to never commit these keys, but [provide them to the GitHub UI](https://developer.github.com/actions/creating-workflows/storing-secrets/) (repository settings/secrets). 39 | 40 | 41 | ## Environment Variables 42 | 43 | This action requires three environment variables used to register the target server in `$HOME/.ssh/known_hosts`. 44 | This is to make sure that the action is talking to a trusted server. 45 | 46 | **`known_hosts` verification currently fails and is overriden, see [issue 1](https://github.com/maxheld83/rsync/issues/1)**. 47 | 48 | - `HOST_NAME` (the name of the server you wish to deploy to, such as `foo.example.com`) 49 | - `HOST_IP` (the IP of the server you wish to deploy to, such as `111.111.11.111`) 50 | - `HOST_FINGERPRINT` (the fingerprint of the server you wish to deploy to, can have different formats) 51 | 52 | The `HOST_NAME` is *also* used in the below required arguments. 53 | 54 | 55 | ## Required Arguments 56 | 57 | `rsync` requires: 58 | 59 | - `SRC`: source directory, relative path *from* `/github/workspace` 60 | - `[USER@]HOST::DEST`: target user (optional), target server, and directory from root *on* that target server. 61 | Remember you can reuse the environment variable `$HOST_NAME`. 62 | 63 | For action `rsync` options, see `entrypoint.sh` in the source. 64 | For more options and documentation on `rsync`, see [https://rsync.samba.org](https://rsync.samba.org). 65 | 66 | 67 | ## Example Usage 68 | 69 | ``` 70 | action "Deploy with rsync" { 71 | uses = "maxheld83/rsync@v0.1.1" 72 | needs = "Write sha" 73 | secrets = [ 74 | "SSH_PRIVATE_KEY", 75 | "SSH_PUBLIC_KEY" 76 | ] 77 | env = { 78 | HOST_NAME = "foo.example.com" 79 | HOST_IP = "111.111.11.111" 80 | HOST_FINGERPRINT = "ecdsa-sha2-nistp256 AAAA..." 81 | } 82 | args = [ 83 | "$GITHUB_WORKSPACE/index.html", 84 | "alice@$HOST_NAME:path/to/destination" 85 | ] 86 | } 87 | ``` 88 | -------------------------------------------------------------------------------- /src/actions/ruby-gems.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/ruby-gem' 3 | title: 'Ruby Gems' 4 | github_url: 'https://github.com/scarhand/actions-ruby' 5 | author: 'scarhand' 6 | subtitle: 'This Action for rubygems enables arbitrary actions with the gem command-line client, including publishing to a registry.' 7 | --- 8 | 9 | ## Usage 10 | 11 | An example workflow to build and publish a gem to the default public registry follows: 12 | 13 | ```hcl 14 | workflow "Build, Test, and Publish" { 15 | on = "push" 16 | resolves = ["Publish"] 17 | } 18 | 19 | action "Build" { 20 | uses = "scarhand/actions-ruby@master" 21 | args = "build *.gemspec" 22 | } 23 | 24 | # Filter for a new tag 25 | action "Tag" { 26 | needs = "Build" 27 | uses = "actions/bin/filter@master" 28 | args = "tag v*" 29 | } 30 | 31 | action "Publish" { 32 | needs = "Tag" 33 | uses = "scarhand/actions-ruby@master" 34 | args = "push *.gem" 35 | secrets = ["RUBYGEMS_AUTH_TOKEN"] 36 | } 37 | ``` 38 | 39 | ### Secrets 40 | 41 | - `RUBYGEMS_AUTH_TOKEN` - **Optional**. The token to use for authentication with the rubygems repository. Required for `gem push`. 42 | 43 | ### Environment variables 44 | 45 | - `RUBYGEMS_HOST` - **Optional**. To specify a repository to authenticate with. Defaults to `https://rubygems.org` [more info](https://guides.rubygems.org/command-reference/#gem-environment). 46 | 47 | #### Example 48 | 49 | To authenticate with, and publish to, a registry other than `https://rubygems.org`: 50 | 51 | ```hcl 52 | action "Publish" { 53 | uses = "scarhand/actions-ruby@master" 54 | args = "push *.gem" 55 | env = { 56 | GEM_REPOSITORY_URL = "https://someOtherRepository.someDomain.net" 57 | } 58 | secrets = ["RUBYGEMS_AUTH_TOKEN"] 59 | } 60 | ``` 61 | -------------------------------------------------------------------------------- /src/actions/ruby-linter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/ruby-linter' 3 | title: 'Ruby linter and formatter' 4 | github_url: 'https://github.com/bltavares/actions' 5 | author: 'bltavares' 6 | tags: ['ruby', 'lint', 'formatter', 'autofixer'] 7 | subtitle: 'This action will check the formating of the Dockerfiles in the project, using rubocop.' 8 | --- 9 | 10 | ## Validations on Push 11 | 12 | This actions will check the formating of the Dockerfiles in the project, using 13 | [rubocop](https://github.com/rubocop-hq/rubocop) 14 | 15 | ## Fixes on Pull Request review 16 | 17 | This action provides automated fixes using Pull Request review comments. 18 | 19 | If the comment starts with `fix $action_name` or `fix rubocop`, a new commit will 20 | be added to the branch with the automated fixes applied. 21 | 22 | **Supports**: autofix on push 23 | 24 | ## Example workflow 25 | 26 | ```hcl 27 | workflow "on push" { 28 | on = "push" 29 | resolves = ["rubocop"] 30 | } 31 | 32 | # Used for fix on review 33 | workflow "on review" { 34 | resolves = ["rubocop"] 35 | on = "pull_request_review" 36 | } 37 | 38 | action "rubocop" { 39 | uses = "bltavares/actions/rubocop@master" 40 | # Enable autofix on push 41 | # args = ["autofix"] 42 | # Used for pushing changes for `fix` comments on review 43 | secrets = ["GITHUB_TOKEN"] 44 | } 45 | ``` 46 | -------------------------------------------------------------------------------- /src/actions/run-github-actions-locally.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/run-github-actions-locally' 3 | title: 'Github actions locally' 4 | github_url: 'https://github.com/nektos/act' 5 | author: 'nektos' 6 | tags: ['local', 'github'] 7 | subtitle: 'Run your GitHub Actions locally!' 8 | --- 9 | 10 | ![](https://github.com/nektos/act/wiki/img/logo-150.png) 11 | 12 | # Overview [![Join the chat at https://gitter.im/nektos/act](https://badges.gitter.im/nektos/act.svg)](https://gitter.im/nektos/act?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) [![Go Report Card](https://goreportcard.com/badge/github.com/nektos/act)](https://goreportcard.com/report/github.com/nektos/act) 13 | 14 | > "Think globally, act locally" 15 | 16 | Run your [GitHub Actions](https://developer.github.com/actions/) locally! Why would you want to do this? Two reasons: 17 | 18 | - **Fast Feedback** - Rather than having to commit/push every time you want test out the changes you are making to your `main.workflow` file (or for any changes to embedded GitHub actions), you can use `act` to run the actions locally. The [environment variables](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables) and [filesystem](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#filesystem) are all configured to match what GitHub provides. 19 | - **Local Task Runner** - I love [make](). However, I also hate repeating myself. With `act`, you can use the GitHub Actions defined in your `main.workflow` file to replace your `Makefile`! 20 | 21 | # How Does It Work? 22 | 23 | When you run `act` it reads in your GitHub Actions from `.github/main.workflow` and determines the set of actions that need to be run. It uses the Docker API to either pull or build the necessary images, as defined in your `main.workflow` file and finally determines the execution path based on the dependencies that were defined. Once it has the execution path, it then uses the Docker API to run containers for each action based on the images prepared earlier. The [environment variables](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables) and [filesystem](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#filesystem) are all configured to match what GitHub provides. 24 | 25 | Let's see it in action with a [sample repo](https://github.com/cplee/github-actions-demo)! 26 | 27 | ![Demo](https://github.com/nektos/act/wiki/quickstart/act-quickstart.gif) 28 | 29 | # Installation 30 | 31 | To install with [Homebrew](https://brew.sh/), run: 32 | 33 | `brew install nektos/tap/act` 34 | 35 | Alternatively, you can use the following: 36 | 37 | `curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash` 38 | 39 | # Commands 40 | 41 | ``` 42 | # List the actions 43 | act -l 44 | 45 | # Run the default (`push`) event: 46 | act 47 | 48 | # Run a specific event: 49 | act pull-request 50 | 51 | # Run a specific action: 52 | act -a test 53 | 54 | # Run in dry-run mode: 55 | act -n 56 | 57 | # Run in reuse mode to save state: 58 | act -r 59 | ``` 60 | 61 | # Support 62 | 63 | Need help? Ask on [Gitter](https://gitter.im/nektos/act)! 64 | 65 | # Contributing 66 | 67 | Want to contribute to act? Awesome! Check out the [contributing guidelines](CONTRIBUTING.md) to get involved. 68 | 69 | ## Building from source 70 | 71 | - Install Go tools 1.11.4+ - (https://golang.org/doc/install) 72 | - Clone this repo `git clone git@github.com:nektos/act.git` 73 | - Run unit tests with `make check` 74 | - Build and install: `make install` 75 | -------------------------------------------------------------------------------- /src/actions/semantic-release-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/semantic-release-action" 3 | title: "GitHub Action for Semantic Release" 4 | github_url: "https://github.com/cycjimmy/semantic-release-action" 5 | author: "cycjimmy" 6 | subtitle: "GitHub Action for Semantic Release" 7 | tags: ["semantic","release","actions","github-actions"] 8 | --- 9 | # Semantic Release Action 10 | ![][workflows-badge-image] 11 | [![semantic-release][semantic-image]][semantic-url] 12 | ![npm license][license-image] 13 | 14 | [workflows-badge-image]: https://github.com/cycjimmy/semantic-release-action/workflows/Test%20Release/badge.svg 15 | [semantic-url]: https://github.com/semantic-release/semantic-release 16 | [semantic-image]: https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg 17 | [license-image]: https://img.shields.io/npm/l/@cycjimmy/semantic-release-action.svg?style=flat-square 18 | 19 | GitHub Action for [Semantic Release](https://github.com/semantic-release/semantic-release). 20 | 21 | ## Usage 22 | #### Step1: Set any [Semantic Release Configuration](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/configuration.md#configuration) in your repository. 23 | 24 | #### Step2: [Add Secrets](https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables) in your repository for the [Semantic Release Authentication](https://github.com/semantic-release/semantic-release/blob/master/docs/usage/ci-configuration.md#authentication) Environment Variables. 25 | 26 | #### Step3: Add a [Workflow File](https://help.github.com/en/articles/workflow-syntax-for-github-actions) to your repository to create custom automated processes. 27 | * inputs: 28 | * `branch`: [Optional] The branch on which releases should happen. It will override the branch attribute in your configuration file. If the attribute is not configured on both sides, the default is master. 29 | * `semantic_version`: [Optional] Specify specifying version range for semantic-release. If no version range is specified, semantic-release@^15 will be used by default. 30 | * `extra_plugins`: [Optional] Extra plugins for pre-install. You can also specify specifying version range for the extra plugins if you prefer. 31 | * `dry_run`: [Optional] Whether to run semantic release in `dry-run` mode. It will override the dryRun attribute in your configuration file. 32 | * outputs: 33 | * `new_release_published`: Whether a new release was published. `true` or `false` 34 | * `new_release_version`: Version of the new release 35 | * `new_release_major_version`: Major version of the new release 36 | * `new_release_minor_version`: Minor version of the new release 37 | * `new_release_patch_version`: Patch version of the new release 38 | 39 | A simple example 40 | ```yaml 41 | steps: 42 | - name: Semantic Release 43 | uses: cycjimmy/semantic-release-action@v2 44 | env: 45 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 46 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 47 | ``` 48 | 49 | An advanced example 50 | ```yaml 51 | steps: 52 | - name: Semantic Release 53 | uses: cycjimmy/semantic-release-action@v2 54 | id: semantic # Need an `id` for output variables 55 | with: 56 | branch: master 57 | semantic_version: 15.13.28 58 | # You can specify specifying version range for the extra plugins if you prefer. 59 | extra_plugins: | 60 | @semantic-release/git 61 | @semantic-release/changelog@3.0.0 62 | env: 63 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 64 | NPM_TOKEN: ${{ secrets.NPM_TOKEN }} 65 | 66 | - name: Do something when a new release published 67 | if: steps.semantic.outputs.new_release_published == 'true' 68 | run: ... 69 | ``` 70 | -------------------------------------------------------------------------------- /src/actions/send-emails.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/send-emails' 3 | title: 'Send Emails' 4 | github_url: 'https://github.com/cirrus-actions/email' 5 | author: 'cirrus-actions' 6 | tags: ['email'] 7 | subtitle: 'This is a simple GitHub action that allows to send emails when a GitHub Check Suite completes.' 8 | --- 9 | 10 | [![Build Status](https://api.cirrus-ci.com/github/cirrus-actions/email.svg)](https://cirrus-ci.com/github/cirrus-actions/email) [![](https://images.microbadger.com/badges/version/cirrusactions/email.svg)](https://microbadger.com/images/cirrusactions/email) [![](https://images.microbadger.com/badges/image/cirrusactions/email.svg)](https://microbadger.com/images/cirrusactions/email) 11 | 12 | This requires a few environment variables: 13 | 14 | - `APP_NAME` - Name of an application for which to send emails for. 15 | - `MAIL_FROM` - email address to send emails from. 16 | - `MAIL_HOST` - SMTP host to send emails to. 17 | - `MAIL_USERNAME` and `MAIL_PASSWORD` - username and password to authorize with the SMTP server. 18 | - `GITHUB_TOKEN` - is standard environment variable for GitHub actions. 19 | - optional `IGNORED_CONCLUSIONS` to secify conclusions to report. By default only `success` and `neutral` checks are ignored. 20 | 21 | Now your action can look liker this in your `.github/main.workflow` workflow file: 22 | 23 | ``` 24 | action "Cirrus CI Email" { 25 | uses = "docker://cirrusactions/email:latest" 26 | env = { 27 | APP_NAME = "Cirrus CI" 28 | } 29 | secrets = ["GITHUB_TOKEN", "MAIL_FROM", "MAIL_HOST", "MAIL_USERNAME", "MAIL_PASSWORD"] 30 | } 31 | ``` 32 | -------------------------------------------------------------------------------- /src/actions/setup-flutter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/setup-flutter' 3 | title: 'Setup Flutter environment' 4 | github_url: 'https://github.com/tnc1997/github-actions/blob/master/setup-flutter' 5 | author: 'Thomas Clark' 6 | tags: ['flutter'] 7 | subtitle: 'Setup a Flutter environment and add it to the PATH.' 8 | --- 9 | 10 | # setup-flutter 11 | 12 | This action sets up a flutter environment for use in actions by: 13 | 14 | - optionally downloading and installing a version of flutter by channel and adding to PATH 15 | 16 | ## Usage 17 | 18 | See [action.yml](https://github.com/tnc1997/github-actions/blob/master/setup-flutter/action.yml) 19 | 20 | Basic: 21 | ```yaml 22 | steps: 23 | - uses: actions/checkout@master 24 | - uses: tnc1997/github-actions/setup-flutter@master 25 | with: 26 | channel: 'stable' 27 | - run: flutter build appbundle 28 | - run: flutter build ios 29 | ``` 30 | 31 | Matrix Testing: 32 | ```yaml 33 | jobs: 34 | build: 35 | runs-on: macOS-latest 36 | strategy: 37 | matrix: 38 | flutter: [ 'stable', 'beta', 'dev' ] 39 | steps: 40 | - uses: actions/checkout@master 41 | - uses: tnc1997/github-actions/setup-flutter@master 42 | with: 43 | channel: ${{ matrix.flutter }} 44 | - run: flutter build appbundle 45 | - run: flutter build ios 46 | ``` 47 | -------------------------------------------------------------------------------- /src/actions/shaking-finger.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/shaking-finger' 3 | title: 'Shaking Finger' 4 | github_url: 'https://github.com/jessfraz/shaking-finger-action' 5 | author: 'jessfraz' 6 | tags: ['gif', 'fun'] 7 | subtitle: 'A GitHub action that displays a gif of Conan O`Brien shaking his finger to a pull request on fail. It will also automatically clean up the comment when the build passes :)' 8 | --- 9 | 10 | [![Travis CI](https://img.shields.io/travis/jessfraz/shaking-finger-action.svg?style=for-the-badge)](https://travis-ci.org/jessfraz/shaking-finger-action) 11 | 12 | A GitHub action that displays a gif of Conan O'Brien shaking his finger to a pull request on fail. 13 | 14 | It will also automatically clean up the comment when the build passes :) 15 | 16 | **Table of Contents** 17 | 18 | 19 | 20 | - [Usage](#usage) 21 | - [Contributing](#contributing) 22 | - [Running the tests](#running-the-tests) 23 | 24 | 25 | 26 | ## Usage 27 | 28 | ``` 29 | workflow "shaking finger action" { 30 | on = "pull_request" 31 | resolves = ["post gif on fail"] 32 | } 33 | 34 | action "post gif on fail" { 35 | uses = "jessfraz/shaking-finger-action@master" 36 | secrets = ["GITHUB_TOKEN"] 37 | } 38 | ``` 39 | 40 | ![demo](https://github.com/jessfraz/shaking-finger-action/raw/master/demo.png) 41 | 42 | ## Contributing 43 | 44 | ### Running the tests 45 | 46 | The tests use [shellcheck](https://github.com/koalaman/shellcheck). You don't 47 | need to install anything. They run in a container. 48 | 49 | ```console 50 | $ make test 51 | ``` 52 | -------------------------------------------------------------------------------- /src/actions/size-label-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/size-label' 3 | title: 'Assign size labels' 4 | github_url: 'https://github.com/pascalgn/size-label-action' 5 | author: 'Pascal' 6 | twitter: '@pascalgn' 7 | tags: ['label', 'assign'] 8 | subtitle: 'GitHub action to assign labels based on pull request change sizes.' 9 | --- 10 | 11 | Labels are taken from https://github.com/kubernetes/kubernetes/labels?q=size 12 | 13 | ## Usage 14 | 15 | Add this to your `.github/main.workflow` file: 16 | 17 | ``` 18 | workflow "on pull request changes, assign size labels" { 19 | on = "pull_request" 20 | resolves = ["assign size labels"] 21 | } 22 | 23 | action "assign size labels" { 24 | uses = "pascalgn/size-label-action@6e8642272f404d447c8a912dc095295f70341724" 25 | secrets = ["GITHUB_TOKEN"] 26 | } 27 | ``` 28 | -------------------------------------------------------------------------------- /src/actions/slack-message-as-bot.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/slack-message-as-bot' 3 | title: 'Slack Message as bot' 4 | github_url: 'https://github.com/pullreminders/slack-github-action' 5 | author: 'pullreminders' 6 | tags: ['slack'] 7 | subtitle: ' 8 | This action wraps the Slack chat.postMessage API method for posting to channels, private groups, and DMs. This action is designed to be used with Slack bot tokens. Slack bots have two main advantages versus user tokens and incoming webhooks: (1) Bots cant be disabled inadvertently when a Slack user is disabled or removed. Slack has written about this in a recent announcement, and (2) Bots offer a powerful range of capabilities that can be leveraged to perform more functions.' 9 | --- 10 | 11 | ## Usage: 12 | 13 | ```workflow 14 | action "Post message to Slack" { 15 | uses = "pullreminders/slack-github-action@master" 16 | secrets = [ 17 | "SLACK_BOT_TOKEN", 18 | ] 19 | args = "{\"channel\":\"C1234567890\",\"text\":"Hello world"}" 20 | } 21 | ``` 22 | 23 | Here's what the Slack message would look like: 24 | 25 | 26 | 27 | ## Setup 28 | 29 | To use this GitHub Action you'll first need to create a Slack App and install it to your Slack workspace. 30 | 31 | ### Creating a Slack App 32 | 33 | 1. **Create a Slack App**. Go to [Slack's developer site](https://api.slack.com/apps) then click "Create an app". Name the app "GitHub Action" (you can change this later) and make sure your team's Slack workspace is selected under "Development Slack Workspace" ([see screenshot](docs/images/slack-app.png)). 34 | 2. **Add a Bot user**. Browse to the "Bot users" page listed in the sidebar. Name your bot "GitHub Action" (you can change this later) and leave the other default settings as-is ([see screenshot](docs/images/bot-user.png)). 35 | 3. **Set an icon for your bot.** Browse to the "Basic information" page listed in the sidebar. Scroll down to the section titled "Display information" to set an icon. Feel free to use one of the [icons in this repository](docs/app-icons). 36 | 4. **Install your app to your workspace.** At the top of the "Basic information" page you can find a section titled "Install your app to your workspace". Click on it, then use the button to complete the installation ([see screenshot](docs/images/install-slack-all.png)). 37 | 38 | ## Using the action 39 | 40 | To use this GitHub Action, you'll need to set a `SLACK_BOT_TOKEN` secret on GitHub. To get your Slack bot token, browse to the "OAuth & Permissions" page listed in Slack and copy the "Bot User OAuth Access Token" beginning in `xoxb-`. 41 | 42 | ### Posting messages 43 | 44 | Slack's [chat.postMessage](https://api.slack.com/methods/chat.postMessage) method accepts a JSON payload containing options — this JSON payload should be supplied as the argument in your GitHub Action. At a bare minimum, your payload must include a channel ID and the message. Here's what a basic message might look like: 45 | 46 | ```workflow 47 | action "Post message to Slack" { 48 | uses = "pullreminders/slack-github-action@master" 49 | secrets = [ 50 | "SLACK_BOT_TOKEN", 51 | ] 52 | args = "{\"channel\":\"C1234567890\",\"text\":"Hello world"}" 53 | } 54 | ``` 55 | 56 | Please note that if you are using the visual editor you should not escape quotes because GitHub will automatically escape them for you. 57 | 58 | #### Channel IDs 59 | 60 | A "channel ID" can be the ID of a channel, private group, or user you would like to post a message to. Your bot can message any user in your Slack workspace but needs to be invited into channels and private groups before it can post to them. 61 | 62 | If you open Slack in your web browser, you can find channel IDs at the end of the URL when viewing channels and private groups. Note that this doesn't work for direct messages. 63 | 64 | ``` 65 | https://myworkspace.slack.com/messages/CHANNEL_ID/ 66 | ``` 67 | 68 | You can also find channel IDs using the Slack API. Get a list of channels that your bot is a member of via Slack's [users.conversations](https://api.slack.com/methods/users.conversations) endpoint. Get user IDs for direct messages using Slack's [users.lookupByEmail](https://api.slack.com/methods/users.lookupByEmail) endpoint 69 | 70 | #### Formatting messages 71 | 72 | Please refer to [Slack's documentation](https://api.slack.com/docs/messages) on message formatting. They also have a [message builder](https://api.slack.com/docs/messages/builder) that's great for playing around and previewing messages. Your messages can contain attachments, markdown, buttons, and more. 73 | 74 | ## Secrets 75 | 76 | - `SLACK_BOT_TOKEN` - **Required**. The Slack bot token to use for posting messages ([more info](https://api.slack.com/docs/token-types#bot)) 77 | -------------------------------------------------------------------------------- /src/actions/slack-message.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/slack-message' 3 | title: 'Slack message' 4 | github_url: 'https://github.com/apex/actions' 5 | author: 'apex' 6 | tags: ['slack'] 7 | subtitle: 'GitHub Action for sending Slack messages which were defined by previous action(s) in ./slack.json.' 8 | --- 9 | 10 | ## Secrets 11 | 12 | - `SLACK_WEBHOOK_URL` - _Required_ The Slack webhook URL. 13 | 14 | ## Environment Variables 15 | 16 | - `SLACK_CHANNEL` - _Optional_ The Slack channel name. 17 | - `SLACK_USERNAME` - _Optional_ The Slack message username. 18 | - `SLACK_ICON` - _Optional_ The Slack message icon. 19 | 20 | ## Example 21 | 22 | This example sends a Slack notification after a deployment is complete. The `apex/actions/up` 23 | action generates a slack.json to provide a message. 24 | 25 | ```hcl 26 | workflow "Deployment" { 27 | on = "push" 28 | resolves = ["Deploy Notification"] 29 | } 30 | 31 | action "Build" { 32 | uses = "apex/actions/go@master" 33 | } 34 | 35 | action "Deploy" { 36 | needs = "Build" 37 | uses = "apex/actions/up@master" 38 | secrets = ["AWS_SECRET_ACCESS_KEY", "AWS_ACCESS_KEY_ID"] 39 | args = "deploy production" 40 | } 41 | 42 | action "Deploy Notification" { 43 | needs = "Deploy" 44 | uses = "apex/actions/slack@master" 45 | secrets = ["SLACK_WEBHOOK_URL"] 46 | } 47 | ``` 48 | 49 | ## Links 50 | 51 | - Message format: https://api.slack.com/docs/messages/builder 52 | -------------------------------------------------------------------------------- /src/actions/sleep.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/sleep' 3 | title: 'Sleep' 4 | github_url: 'https://github.com/maddox/actions' 5 | author: 'maddox' 6 | tags: [] 7 | subtitle: 'Sometimes you just need to stall a little. This action will simply call sleep for N seconds in case you need a little padding in your workflow.' 8 | --- 9 | 10 | image 11 | 12 | ## Usage 13 | 14 | To use the action simply add the following lines to your `.github/main.workflow` 15 | 16 | ``` 17 | action "Sleep" { 18 | uses = "maddox/actions/sleep@master" 19 | args = "15" 20 | } 21 | ``` 22 | 23 | ### Required Arguments 24 | 25 | The only argument used or required is the number of seconds you want to sleep for. 26 | 27 | ## License 28 | 29 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 30 | -------------------------------------------------------------------------------- /src/actions/spothub.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/spothub' 3 | title: 'SpotHub' 4 | github_url: 'https://github.com/swinton/SpotHub' 5 | author: 'swinton' 6 | tags: [] 7 | subtitle: 'Collaborate on Spotify playlists using Pull Requests.' 8 | --- 9 | 10 | ## How does this even work? 11 | 12 | Using [**GitHub Actions**](https://github.com/features/actions) of course! 13 | 14 | On every `push` to the `master` branch, [the Action](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/Dockerfile) will: 15 | 16 | 1. [Grab a fresh _access token_ from Spotify](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/get_access_token.sh), using the `SPOTIFY_AUTH` and `SPOTIFY_REFRESH_TOKEN` [secrets](https://developer.github.com/actions/creating-workflows/storing-secrets/). 17 | 1. [Generate a JSON payload](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/process_playlist.sh), from [`playlist.csv`](playlist.csv). 18 | 1. [Update a playlist on Spotify](https://github.com/swinton/SpotHub/blob/bc2d697744a710bce3ce6a56a10d473045c3ea53/.github/actions/spotify-playlist/populate_playlist.sh), specified by the `playlist_id` [environment variable](https://developer.github.com/actions/creating-github-actions/accessing-the-runtime-environment/#environment-variables). 19 | 20 | ## What do I do? 21 | 22 | 1. Update `playlist.csv` 23 | 1. `git commit` 24 | 1. `git push` 25 | 1. Enjoy your [updated Spotify playlist](https://open.spotify.com/user/stevewinton/playlist/5lNXObovv3WL1Ioyag2FuG) 26 | 27 | ## Why was this built? 28 | 29 | So we can [collaborate on playlists the right way](https://github.com/swinton/SpotHub/pull/1) :wink: 30 | 31 | Also, because I :heart: Spotify and GitHub, and now I can bring 2 of my favorite things together with [GitHub Actions](https://github.com/features/actions). 32 | 33 | Sign up for the GitHub Actions beta [here](https://github.com/features/actions) :headphones: :relaxed: 34 | -------------------------------------------------------------------------------- /src/actions/ssh.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/ssh' 3 | title: 'SSH' 4 | github_url: 'https://github.com/maddox/actions' 5 | author: 'maddox' 6 | tags: [] 7 | subtitle: 'Run a thing on your server. This action will run the provided argument as a command on your $HOST via SSH.' 8 | --- 9 | 10 | image 11 | 12 | ## Usage 13 | 14 | To use the action simply add the following lines to your `.github/main.workflow` 15 | 16 | ``` 17 | action "Run deploy script" { 18 | uses = "maddox/actions/ssh@master" 19 | args = "/opt/deploy/run" 20 | secrets = [ 21 | "PRIVATE_KEY", 22 | "PUBLIC_KEY", 23 | "HOST", 24 | "USER" 25 | ] 26 | } 27 | ``` 28 | 29 | ### Required Arguments 30 | 31 | The argument you will use is the command that will be ran on your sever via SSH. 32 | 33 | #### Examples 34 | 35 | - `args = "/opt/deploy/run"` 36 | - `args = "touch ~/.reload"` 37 | 38 | ### Required Secrets 39 | 40 | You'll need to provide some secrets to use the action. 41 | 42 | - **PRIVATE_KEY**: Your SSH private key. 43 | - **PUBLIC_KEY**: Your SSH public key. 44 | - **HOST**: The host the action will SSH to to run the command. ie, `your.site.com`. 45 | - **USER**: The user the SSH command will auth as with the public key. 46 | -------------------------------------------------------------------------------- /src/actions/storybook-surge.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/storybook-surge' 3 | title: 'Storybook to Surge' 4 | github_url: 'https://github.com/codeship/storybook-surge-github-action' 5 | author: 'codeship' 6 | tags: ['react'] 7 | subtitle: 'This action will take an existing storybook configuration and deploy that storybook to branch specific static surge.sh sites. Intended to be set up on `push`.' 8 | --- 9 | 10 | ### Required Secrets 11 | 12 | You can set these up within the workflow editor tool. 13 | 14 | - `SURGE_LOGIN` 15 | - `SURGE_TOKEN` 16 | 17 | ### Behavior 18 | 19 | When you push to your repository this action will: 20 | 21 | - Start a pending GitHub Deployment for the branch 22 | - Build your storybook 23 | - Deploy your storybook to a public surge.sh site 24 | - Update the pending GitHub Deployment with the URL of the storybook. 25 | 26 | The urls follow the pattern: 27 | 28 | https://{repo_owner}-{repo_name}-storybook-{branch_name}.surge.sh 29 | 30 | ### Example workflow 31 | 32 | ``` 33 | workflow "Storybook" { 34 | on = "push" 35 | resolves = ["Publish Storybook to Surge.sh"] 36 | } 37 | 38 | action "Publish Storybook to Surge.sh" { 39 | uses = "codeship/storybook-surge-github-action@0.0.1" 40 | secrets = [ 41 | "SURGE_LOGIN", 42 | "SURGE_TOKEN", 43 | "GITHUB_TOKEN", 44 | ] 45 | } 46 | ``` 47 | -------------------------------------------------------------------------------- /src/actions/synk-cli.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/synk-cli' 3 | title: 'Synk Cli' 4 | github_url: 'https://github.com/clarkio/snyk-cli-action' 5 | author: 'clarkio' 6 | tags: ['security'] 7 | subtitle: 'A GitHub action to run snyk test for vulnerabilities in the project' 8 | --- 9 | 10 | ## How to Use 11 | 12 | 1. Add Action 13 | 2. Enter `clarkio/snyk-cli-action@master` 14 | 3. Add Secret named `SNYK_TOKEN` 15 | 4. Go to your [Snyk Account Settings](https://app.snyk.io/account) and get your API token value 16 | 5. Enter the value of the token you copied from Snyk as the secret in the GitHub Action 17 | -------------------------------------------------------------------------------- /src/actions/terraform.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/terraform' 3 | title: 'Terraform' 4 | github_url: 'https://github.com/hashicorp/terraform-github-actions/blob/master/README.md' 5 | author: 'hashicorp' 6 | tags: ['terraform'] 7 | subtitle: 8 | 'These official Terraform GitHub Actions allow you to run `terraform fmt`, `validate` 9 | and `plan` on your pull requests to help you review and validate Terraform changes.' 10 | --- 11 | 12 | ## Getting Started 13 | 14 | To get started, check out our documentation: [https://www.terraform.io/docs/github-actions/getting-started/](https://www.terraform.io/docs/github-actions/getting-started/). 15 | 16 | ## Actions 17 | 18 | ### Fmt Action 19 | 20 | Runs `terraform fmt` and comments back if any files are not formatted correctly. 21 | Terraform Fmt Action 22 | 23 | ### Validate Action 24 | 25 | Runs `terraform validate` and comments back on error. 26 | Terraform Validate Action 27 | 28 | ### Plan Action 29 | 30 | Runs `terraform plan` and comments back with the output. 31 | Terraform Plan Action 32 | -------------------------------------------------------------------------------- /src/actions/tslint-linter.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/tslint-linter' 3 | title: 'TypeScript linter & formatter' 4 | github_url: 'https://github.com/bltavares/actions' 5 | author: 'bltavares' 6 | tags: ['typescript', 'lint', 'formatter', 'autofixer'] 7 | subtitle: 'This actions will check Typescript projects using tslint' 8 | --- 9 | 10 | ## Validations on Push 11 | 12 | This actions will check Typescript projects using 13 | [tslint](https://github.com/palantir/tslint) 14 | 15 | `tslint` requires a `tsconfig.json` to be located on the root of the project, 16 | describing how the Typescript project is organized, and a `tslint.json` file to 17 | define the rules that the linter will follow. 18 | 19 | ## Fixes on Pull Request review 20 | 21 | This action provides automated fixes using Pull Request review comments. 22 | 23 | If the comment starts with `fix $action_name` or `fix tslint`, a new commit will 24 | be added to the branch with the automated fixes applied. 25 | 26 | **Supports**: autofix on push 27 | 28 | ## Example workflow 29 | 30 | ```hcl 31 | workflow "on push" { 32 | on = "push" 33 | resolves = ["tslint"] 34 | } 35 | 36 | # Used for fix on review 37 | workflow "on review" { 38 | resolves = ["tslint"] 39 | on = "pull_request_review" 40 | } 41 | 42 | action "tslint" { 43 | uses = "bltavares/actions/tslint@master" 44 | # Enable autofix on push 45 | # args = ["autofix"] 46 | # Used for pushing changes for `fix` comments on review 47 | secrets = ["GITHUB_TOKEN"] 48 | } 49 | ``` 50 | -------------------------------------------------------------------------------- /src/actions/tweet.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/twitter-action' 3 | title: 'Send a Tweet' 4 | github_url: 'https://github.com/xorilog/twitter-action' 5 | author: 'xorilog' 6 | tags: ['twitter', 'tweet'] 7 | subtitle: 'Send a tweet with a GitHub Action.' 8 | --- 9 | 10 | Small action which sends a tweet. 11 | 12 | # Auth 13 | 14 | About the authentication see: https://developer.twitter.com/en/apps 15 | create an account, create an app 16 | @see https://apps.twitter.com/ 17 | 18 | # retrieve the access tokens 19 | 20 | @see https://developer.twitter.com/en/apps 21 | 22 | # Use Action 23 | 24 | ``` 25 | workflow "on push tag, tweet message" { 26 | on = "push" 27 | resolves = ["Advertise tweetosphere"] 28 | } 29 | 30 | action "Advertise tweetosphere" { 31 | uses = "xorilog/twitter-action@master" 32 | args = ["-message", "New version is out ! $GITHUB_REF"] 33 | secrets = ["TWITTER_CONSUMER_KEY", "TWITTER_CONSUMER_SECRET", "TWITTER_ACCESS_TOKEN", "TWITTER_ACCESS_SECRET"] 34 | } 35 | ``` 36 | 37 | # Build 38 | 39 | ``` 40 | go get . 41 | go build 42 | ``` 43 | 44 | # Usage 45 | 46 | ``` 47 | export TWITTER_CONSUMER_KEY=xxx 48 | export TWITTER_CONSUMER_SECRET=xxx 49 | export TWITTER_ACCESS_TOKEN=xxx 50 | export TWITTER_ACCESS_SECRET=xxx 51 | ./twitter-action -message "Hello Twitter :)" 52 | 53 | ``` 54 | 55 | # Docker 56 | 57 | ``` 58 | # If building locally 59 | docker build -t xorilog/twitter-action . 60 | 61 | # else: 62 | docker run --rm -e TWITTER_CONSUMER_KEY=${TWITTER_CONSUMER_KEY} \ 63 | -e TWITTER_CONSUMER_SECRET=${TWITTER_CONSUMER_SECRET} \ 64 | -e TWITTER_ACCESS_TOKEN=${TWITTER_ACCESS_TOKEN} \ 65 | -e TWITTER_ACCESS_SECRET=${TWITTER_ACCESS_SECRET} \ 66 | xorilog/twitter-action -message "Hello Twitter :)" 67 | ``` 68 | -------------------------------------------------------------------------------- /src/actions/twitter-action.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/twitter-action' 3 | title: 'Send a Tweet' 4 | github_url: 'https://github.com/xorilog/twitter-action' 5 | author: 'xorilog' 6 | tags: ['twitter', 'tweet'] 7 | subtitle: 'Send a tweet with a GitHub Action.' 8 | --- 9 | 10 | Small action which sends a tweet. 11 | 12 | # Auth 13 | 14 | About the authentication see: https://developer.twitter.com/en/apps 15 | create an account, create an app 16 | @see https://apps.twitter.com/ 17 | 18 | # retrieve the access tokens 19 | 20 | @see https://developer.twitter.com/en/apps 21 | 22 | # Use Action 23 | 24 | ``` 25 | workflow "on push tag, tweet message" { 26 | on = "push" 27 | resolves = ["Advertise tweetosphere"] 28 | } 29 | 30 | action "Advertise tweetosphere" { 31 | uses = "xorilog/twitter-action@master" 32 | args = ["-message", "New version is out ! $GITHUB_REF"] 33 | secrets = ["TWITTER_CONSUMER_KEY", "TWITTER_CONSUMER_SECRET", "TWITTER_ACCESS_TOKEN", "TWITTER_ACCESS_SECRET"] 34 | } 35 | ``` 36 | 37 | # Build 38 | 39 | ``` 40 | go get . 41 | go build 42 | ``` 43 | 44 | # Usage 45 | 46 | ``` 47 | export TWITTER_CONSUMER_KEY=xxx 48 | export TWITTER_CONSUMER_SECRET=xxx 49 | export TWITTER_ACCESS_TOKEN=xxx 50 | export TWITTER_ACCESS_SECRET=xxx 51 | ./twitter-action -message "Hello Twitter :)" 52 | 53 | ``` 54 | 55 | # Docker 56 | 57 | ``` 58 | # If building locally 59 | docker build -t xorilog/twitter-action . 60 | 61 | # else: 62 | docker run --rm -e TWITTER_CONSUMER_KEY=${TWITTER_CONSUMER_KEY} \ 63 | -e TWITTER_CONSUMER_SECRET=${TWITTER_CONSUMER_SECRET} \ 64 | -e TWITTER_ACCESS_TOKEN=${TWITTER_ACCESS_TOKEN} \ 65 | -e TWITTER_ACCESS_SECRET=${TWITTER_ACCESS_SECRET} \ 66 | xorilog/twitter-action -message "Hello Twitter :)" 67 | ``` 68 | -------------------------------------------------------------------------------- /src/actions/vamp.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/vamp' 3 | title: 'vamp' 4 | github_url: 'https://github.com/magneticio/vamp-github-actions' 5 | author: 'magneticio' 6 | subtitle: 'GitHub Actions For Vamp' 7 | tags: [] 8 | --- 9 | 10 | # Vamp GitHub Actions 11 | 12 | These official Vamp GitHub Actions allow you to run Vamp CLI commands within you GitHub actions workflow. 13 | 14 | ## Getting Started 15 | 16 | ## Actions 17 | 18 | Usage information for individual actions can be found in their respective directories. 19 | 20 | ### CLI Action 21 | 22 | Wraps the Vamp CLI to enable Vamp commands to be run. [action](https://github.com/magneticio/vamp-github-actions/blob/master/cli) 23 | 24 | ### Login Action 25 | 26 | Wraps the Vamp CLI `vamp login` command, allowing for Actions to log into Vamp. [action](https://github.com/magneticio/vamp-github-actions/blob/master/login) 27 | 28 | ### Workflow Action 29 | 30 | Wraps the Vamp CLI, allowing for Actions to create a Vamp Workflow. [action](https://github.com/magneticio/vamp-github-actions/blob/master/workflow) 31 | -------------------------------------------------------------------------------- /src/actions/vscode-vsce.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/vscode-vsce' 3 | title: 'vscode deploying extensions' 4 | github_url: 'https://github.com/lannonbr/vsce-action' 5 | author: 'lannonbr' 6 | tags: ['vscode'] 7 | subtitle: 'A GitHub Action to automate deploying VS Code extensions by using vsce. It will enable workflows to easily deploy your VS Code extensions to the marketplace.' 8 | --- 9 | 10 | # Usage 11 | 12 | Here's an example workflow which publishes an extension when you push to the master branch. 13 | 14 | ```workflow 15 | workflow "Deploy Extension" { 16 | on = "push" 17 | resolves = ["Publish"] 18 | } 19 | 20 | # Install npm dependencies 21 | # Note: --unsafe-perm is used as GitHub Actions does not run `npm run post-install` without it for some reason. 22 | action "npm install" { 23 | uses = "actions/npm@33871a7" 24 | args = ["install", "--unsafe-perm"] 25 | } 26 | 27 | # Check for master branch 28 | action "Master" { 29 | uses = "actions/bin/filter@master" 30 | args = "branch master" 31 | needs = ["npm install"] 32 | } 33 | 34 | # publish extension 35 | action "Publish" { 36 | uses = "lannonbr/vsce-action@master" 37 | args = "publish -p $VSCE_TOKEN" 38 | needs = ["Master"] 39 | secrets = ["VSCE_TOKEN"] 40 | } 41 | ``` 42 | 43 | # Secrets 44 | 45 | The `VSCE_TOKEN` secret is used to authenticate with Azure DevOps when running the `vsce` CLI. You can find out how to create this token here on the VS Code Docs: [Publishing VS Code Extensions](https://code.visualstudio.com/docs/extensions/publish-extension) 46 | 47 | # Example Use Cases 48 | 49 | - Deploy nightly builds once a day if the `master` branch has changed since the last build. 50 | - Deploy releases after PRs with a `Release` label are merged into Master. 51 | - Promote new version of extension on social media with additional Actions. 52 | 53 | Creating and publishing extensions with `vsce` is already fairly simple, but this will further integrate it into CI workflows with GitHub Actions. 54 | -------------------------------------------------------------------------------- /src/actions/wait-for-200.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/wait-for-200' 3 | title: 'Wait for 200' 4 | github_url: 'https://github.com/maddox/actions' 5 | author: 'maddox' 6 | tags: [] 7 | subtitle: 'Wait till the host is up. This action will simply check that a URL is returning a `200` HTTP status code before completing. You have the option to set how many seconds between checks and how many tries before it exits in failure.' 8 | --- 9 | 10 | image 11 | 12 | ## Usage 13 | 14 | To use the action simply add the following lines to your `.github/main.workflow` 15 | 16 | ``` 17 | action "Wait for 200" { 18 | uses = "maddox/actions/wait-for-200@master" 19 | } 20 | ``` 21 | 22 | ### Required Environment Variables 23 | 24 | You'll need to provide some environment variables to specify exactly how you 25 | want the action to work. 26 | 27 | - **URL**: The URL you want to poll. ie, `https://domain.com`. 28 | - **SECONDS_BETWEEN_CHECKS**: How many seconds you want to wait between checking if the URL returns a `200` HTTP status code. ie, `2`. 29 | - **MAX_TRIES**: The number of tries before failing. ie, `20`. 30 | 31 | ## License 32 | 33 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 34 | -------------------------------------------------------------------------------- /src/actions/webpack-stats-to-packtracker.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/webpack-stats-to-packtracker' 3 | title: 'Webpack stats to packtracker.io' 4 | github_url: 'https://github.com/packtracker/github-action' 5 | author: 'packtracker' 6 | tags: ['webpack'] 7 | subtitle: 'This GitHub action will upload your webpack build stats to the packtracker.io service.' 8 | --- 9 | 10 | ### Configuration 11 | 12 | #### Secrets (Required) 13 | 14 | - `PT_PROJECT_TOKEN` - your [packtracker.io](https://packtracker.io/?utm_source=github&utm_medium=action&utm_campaign=links) project token. 15 | 16 | #### Environment variables (Optional) 17 | 18 | - `WEBPACK_CONFIG_PATH` - the relative path to your webpack configuration (if you have one) 19 | 20 | #### Workflow 21 | 22 | A sample workflow file might look something like this 23 | 24 | ``` 25 | workflow "packtracker.io" { 26 | on = "push" 27 | resolves = ["Report to packtracker.io"] 28 | } 29 | 30 | action "Report to packtracker.io" { 31 | uses = "packtracker/github-action@1.1.2" 32 | secrets = ["PT_PROJECT_TOKEN"] 33 | env = { 34 | "WEBPACK_CONFIG_PATH" = "./config/webpack/production.js" 35 | } 36 | } 37 | ``` 38 | -------------------------------------------------------------------------------- /src/actions/wip.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/wip' 3 | title: 'Work In Progress' 4 | github_url: 'https://github.com/wip/action' 5 | author: 'wip' 6 | subtitle: 'a work in progress action - work in progress' 7 | tags: [] 8 | --- 9 | 10 |

11 | 12 |

DO NOT MERGE – as an action.

13 | 14 | This GitHub Action sets a pull request status to pending if the title includes "WIP". 15 | 16 | An example workflow looks like this (switch to the `<> Edit new file` tab when creating a new action and paste the code below): 17 | 18 | ```workflow 19 | workflow "Set status on pull_request" { 20 | on = "pull_request" 21 | resolves = ["Set status"] 22 | } 23 | 24 | action "Set status" { 25 | uses = "wip/action@master" 26 | secrets = ["GITHUB_TOKEN"] 27 | } 28 | ``` 29 | -------------------------------------------------------------------------------- /src/actions/wordpress-plugin-asset-update.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: "/action-wordpress-plugin-asset-update" 3 | title: "WordPress.org Plugin Readme/Assets Update" 4 | github_url: "https://github.com/10up/action-wordpress-plugin-asset-update" 5 | author: "10up" 6 | subtitle: "Update your plugin readme and assets in the WordPress.org repository outside of new releases" 7 | tags: [wordpress,plugin,readme,assets,deploy] 8 | --- 9 | # WordPress.org Plugin Readme/Assets Update 10 | 11 | This Action commits any `readme.txt` and WordPress.org-specific assets changes in your specified branch to the WordPress.org plugin repository if no other changes have been made since the last deployment to WordPress.org. This is useful for updating things like screenshots or `Tested up to` separately from functional changes, provided your Git branching methodology avoids changing anything else in the specified branch between functional releases. It is **highly recommended** that you use a stable branch where you only merge readme/asset commits in between larger functional merges that only occur when preparing for a release (often implemented as `master` vs. `develop`). 12 | 13 | Because the WordPress.org plugin repository shows information from `readme.txt` in the specified `Stable tag`, this Action also attempts to parse out the stable tag from `readme.txt` and deploy to there as well as `trunk`. If your stable tag is `trunk` or a tag that does not exist in the `tags` subfolder, it will skip that part of the update and only update `trunk` and/or `assets`. 14 | 15 | **Important note:** If your development process leads to a situation where `master` (or other specified branch) only contains changes to `readme.txt` or `assets` since the last sync to the plugin directory and those changes are in preparation for the next release, those changes will go live and potentially be misleading to users. Usage of this Action assumes a fairly traditional Git methodology that involves merging all changes to `master` when functional changes are ready and that this seemingly unlikely situation will therefore not happen in your repo; there are no safeguards against syncing changes based on readme/asset content, as that cannot be predicted. 16 | 17 | ### ☞ This Action is meant to be used in tandem with our [WordPress.org Plugin Deploy Action](https://github.com/10up/action-wordpress-plugin-deploy) 18 | 19 | ## Configuration 20 | 21 | ### Required secrets 22 | * `SVN_USERNAME` 23 | * `SVN_PASSWORD` 24 | 25 | [Secrets are set in your repository settings](https://help.github.com/en/articles/virtual-environments-for-github-actions#creating-and-using-secrets-encrypted-variables). They cannot be viewed once stored. 26 | 27 | ### Optional environment variables 28 | * `SLUG` - defaults to the repository name, customizable in case your WordPress repository has a different slug or is capitalized differently. 29 | * `ASSETS_DIR` - defaults to `.wordpress-org`, customizable for other locations of WordPress.org plugin repository-specific assets that belong in the top-level `assets` directory (the one on the same level as `trunk`) 30 | 31 | ## Example Workflow File 32 | ```yml 33 | name: Plugin asset/readme update 34 | on: 35 | push: 36 | branches: 37 | - master 38 | jobs: 39 | master: 40 | name: Push to master 41 | runs-on: ubuntu-latest 42 | steps: 43 | - uses: actions/checkout@master 44 | - name: WordPress.org plugin asset/readme update 45 | uses: 10up/action-wordpress-plugin-asset-update@master 46 | env: 47 | SVN_PASSWORD: ${{ secrets.SVN_PASSWORD }} 48 | SVN_USERNAME: ${{ secrets.SVN_USERNAME }} 49 | ``` 50 | 51 | ### Known issues 52 | * It would be more efficient to additionally use the `paths` filter for the `push` action to reduce the number of runs. So far in testing it is possible to limit it to pushes that include readme/asset files as specified, but not ones that *only* include those files. The Action itself still needs to run as written because it compares the totality of changes in the branch against what's in SVN and not just the contents of the current push. 53 | 54 | ## Contributing 55 | Want to help? Check out our [contributing guidelines](CONTRIBUTING.md) to get started. 56 | 57 |

58 | 59 |

60 | 61 | ## License 62 | 63 | Our GitHub Actions are available for use and remix under the MIT license. 64 | 65 | ### ☞ Check out our [collection of WordPress-focused GitHub Actions](https://github.com/10up/actions-wordpress) 66 | -------------------------------------------------------------------------------- /src/actions/wordpress-pot-generator.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/wordpress-pot-generator' 3 | title: 'WordPress Pot Generator' 4 | github_url: 'https://github.com/wpapps/wp-pot-generator' 5 | author: 'Varun Sridharan' 6 | tags: ['wordpress'] 7 | subtitle: 'Generate POT Files for your wordpress Plugin / Theme based on the content inside Github Repo' 8 | --- 9 | 10 |

11 | 12 |

13 | 14 |

15 | Licence 16 | PRs 17 |

18 | 19 | # WordPress Pot Generator - ***Github Action*** 20 | This Action Generates POT Files for your wordpress Plugin / Theme based on the content inside Github Repo 21 | 22 | ## Configuration 23 | * `SAVE_PATH` - Location / Path to save POT File **Required** 24 | * `ITEM_SLUG` - Slug of your WordPress Theme / Plugin Slug **Required** 25 | * `DOMAIN` - WordPress Theme / Plugin ***TextDomain*** 26 | * `PACKAGE_NAME` - WordPress Theme / Plugin Name 27 | * `GITHUB_TOKEN` - you do not need to generate one but you do have to explicitly make it available to the Action 28 | * `HEADERS` - Array in JSON format of custom headers which will be added to the POT file. Defaults to empty array. 29 | 30 | ## Example Workflow File 31 | ``` 32 | workflow "Deploy" { 33 | resolves = ["WordPress Pot Generator"] 34 | on = "push" 35 | } 36 | 37 | action "WordPress Pot Generator" { 38 | uses = "varunsridharan/wordpress-pot-generator@master" 39 | env = { 40 | SAVE_PATH = "langs/filename.pot" 41 | ITEM_SLUG = "your-textdomain" 42 | } 43 | secrets = ["GITHUB_TOKEN"] 44 | } 45 | ``` 46 | -------------------------------------------------------------------------------- /src/actions/wp-text-domain.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/wp-text-domain' 3 | title: 'WP Text Domain - Github Action' 4 | github_url: 'https://github.com/wpapps/wp-text-domain' 5 | author: 'Varun Sridharan' 6 | tags: ['wordpress'] 7 | subtitle: 'Add Text Domain To Your WordPress Plugin / Themes On The Fly' 8 | --- 9 | 10 |

11 | 12 |

13 | 14 |

15 | Licence 16 | PRs 17 |

18 | 19 | # WP Text Domain - ***Github Action*** 20 | This Action Adds TextDomain To your wordpress Plugin / Theme based on the content inside Github Repo 21 | 22 | ## Configuration 23 | * `DOMAIN` - Slug of your WordPress Theme / Plugin Slug **Required** 24 | * `GITHUB_TOKEN` - you do not need to generate one but you do have to explicitly make it available to the Action 25 | 26 | ## Example Workflow File 27 | ``` 28 | workflow "Deploy" { 29 | resolves = ["WP Text Domain"] 30 | on = "push" 31 | } 32 | 33 | action "WP Text Domain" { 34 | uses = "wpapps/wp-text-domain@master" 35 | env = { 36 | DOMAIN = "your-textdomain" 37 | } 38 | secrets = ["GITHUB_TOKEN"] 39 | } 40 | ``` 41 | -------------------------------------------------------------------------------- /src/actions/yarn.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/yarn' 3 | title: 'Yarn' 4 | github_url: 'https://github.com/Borales/actions-yarn' 5 | author: 'Borales' 6 | tags: ['yarn', 'npm'] 7 | subtitle: 'This Action for yarn enables arbitrary actions with the yarn command-line client, including testing packages and publishing to a registry.' 8 | --- 9 | 10 | ## Usage 11 | 12 | An example workflow to build, test, and publish an npm package to the default public registry follows: 13 | 14 | ```hcl 15 | workflow "Build, Test, and Publish" { 16 | on = "push" 17 | resolves = ["Publish"] 18 | } 19 | 20 | action "Build" { 21 | uses = "borales/actions-yarn@master" 22 | args = "install" 23 | } 24 | 25 | action "Test" { 26 | needs = "Build" 27 | uses = "borales/actions-yarn@master" 28 | args = "test" 29 | } 30 | 31 | action "Publish" { 32 | needs = "Test" 33 | uses = "borales/actions-yarn@master" 34 | args = "publish --access public" 35 | secrets = ["NPM_AUTH_TOKEN"] 36 | } 37 | ``` 38 | 39 | ### Secrets 40 | 41 | - `NPM_AUTH_TOKEN` - **Optional**. The token to use for authentication with the npm registry. Required for `yarn publish` ([more info](https://docs.npmjs.com/getting-started/working_with_tokens)) 42 | 43 | ### Environment variables 44 | 45 | - `NPM_REGISTRY_URL` - **Optional**. To specify a registry to authenticate with. Defaults to `registry.npmjs.org` 46 | - `NPM_CONFIG_USERCONFIG` - **Optional**. To specify a non-default per-user configuration file. Defaults to `$HOME/.npmrc` ([more info](https://docs.npmjs.com/misc/config#npmrc-files)) 47 | 48 | #### Example 49 | 50 | To authenticate with, and publish to, a registry other than `registry.npmjs.org`: 51 | 52 | ```hcl 53 | action "Publish" { 54 | uses = "borales/actions-yarn@master" 55 | args = "publish --access public" 56 | env = { 57 | NPM_REGISTRY_URL = "someOtherRegistry.someDomain.net" 58 | } 59 | secrets = ["NPM_AUTH_TOKEN"] 60 | } 61 | ``` 62 | -------------------------------------------------------------------------------- /src/actions/zeit-now.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/zeit-now' 3 | title: 'Zeit Now' 4 | github_url: 'https://github.com/actions/zeit-now' 5 | author: 'GitHub' 6 | tags: [] 7 | subtitle: 'This Action wraps the Now CLI to enable common Now commands.' 8 | --- 9 | 10 | ## Usage 11 | 12 | ```workflow 13 | workflow "Deploy on Now" { 14 | on = "push" 15 | resolves = ["alias"] 16 | } 17 | 18 | action "deploy" { 19 | uses = "actions/zeit-now@master" 20 | secrets = [ 21 | "ZEIT_TOKEN", 22 | ] 23 | } 24 | 25 | action "alias" { 26 | needs = ["deploy"] 27 | uses = "actions/zeit-now@master" 28 | args = "alias" 29 | secrets = [ 30 | "ZEIT_TOKEN", 31 | ] 32 | } 33 | ``` 34 | 35 | For more examples, visit: [actions/example-zeit-now](https://github.com/actions/example-zeit-now). 36 | 37 | ### Secrets 38 | 39 | - `ZEIT_TOKEN` - **Required**. The token to use for authentication with the Zeit Now API ([more info](https://zeit.co/blog/introducing-api-tokens-management)) 40 | 41 | ## License 42 | 43 | The Dockerfile and associated scripts and documentation in this project are released under the [MIT License](LICENSE). 44 | 45 | Container images built with this project include third party materials. See [THIRD_PARTY_NOTICE.md](THIRD_PARTY_NOTICE.md) for details. 46 | -------------------------------------------------------------------------------- /src/actions/zola-deploy.md: -------------------------------------------------------------------------------- 1 | --- 2 | path: '/zola-deploy' 3 | title: 'Zola Deploy' 4 | github_url: 'https://github.com/shalzz/zola-deploy-action' 5 | author: 'shalzz' 6 | tags: [] 7 | subtitle: 'A GitHub action to automatically build and deploy your zola site to the master branch as GitHub Pages.' 8 | --- 9 | 10 | ## Usage 11 | 12 | ``` 13 | workflow "Build and deploy on push" { 14 | on = "push" 15 | resolves = ["zola deploy"] 16 | } 17 | 18 | action "zola deploy" { 19 | uses = "shalzz/zola-deploy-action@master" 20 | secrets = ["TOKEN"] 21 | } 22 | ``` 23 | 24 | ## Secrets 25 | 26 | - `TOKEN`: Personal Access key with the scope `public_repo`, we need this 27 | to push the site files back to the repo. 28 | ( Actions already provides a `GITHUB_TOKEN` which is an installation token and does not trigger a GitHub Pages builds hence we need a personal access token ) 29 | 30 | ## Custom Domain 31 | 32 | If you're using a custom domain for your GitHub Pages site put the CNAME 33 | in `static/CNAME` so that zola puts it in the root of the public folder 34 | which is where GitHub expects it to be. 35 | 36 | [zola]: https://github.com/getzola/zola 37 | -------------------------------------------------------------------------------- /src/components/Action-Card/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import urljoin from 'url-join' 3 | import { navigate } from 'gatsby' 4 | 5 | import './styles.css' 6 | 7 | const AcitonCard = ({ path, title, author, subtitle, github_url } = {}) => { 8 | const urlParts = github_url.split('github.com') 9 | const repoPath = urlParts[urlParts.length - 1] 10 | 11 | const starBadgeUrl = `${urljoin( 12 | 'https://img.shields.io/github/stars', 13 | repoPath 14 | )}.svg?style=social` 15 | 16 | return ( 17 |
18 |
navigate(path)}> 19 |
20 | Build 25 |
26 |
27 |

{title}

28 |

by {author}

29 | 30 |
31 |
32 |

{subtitle}

33 |
34 |
35 | Read more 36 |
37 |
38 |
39 | ) 40 | } 41 | 42 | export default AcitonCard 43 | -------------------------------------------------------------------------------- /src/components/Action-Card/styles.css: -------------------------------------------------------------------------------- 1 | .action-card { 2 | box-shadow: inset 0 0 0 1px #e1e4e8, 0 2px 4px rgba(0, 0, 0, 0.15); 3 | margin-bottom: 80px; 4 | box-sizing: border-box; 5 | margin: 40px 10px; 6 | z-index: 1; 7 | position: relative; 8 | display: flex; 9 | flex-direction: column; 10 | width: 100%; 11 | } 12 | 13 | .action-card__container.column { 14 | display: flex; 15 | } 16 | 17 | .action-card:hover { 18 | cursor: pointer; 19 | } 20 | 21 | .action-card:before { 22 | background: #f6f8fa; 23 | border-radius: 50%; 24 | box-shadow: 0 0 0 1px #e1e4e8; 25 | content: ''; 26 | display: block; 27 | height: 34px; 28 | left: 50%; 29 | margin: 0 0 0 -17px; 30 | position: absolute; 31 | top: -17px; 32 | width: 34px; 33 | z-index: -1; 34 | } 35 | 36 | .action-card span { 37 | color: #0366d6; 38 | } 39 | 40 | .action-card__header { 41 | background: #f6f8fa; 42 | padding: 24px 100px 24px 32px; 43 | border-radius: 6px 6px 0 0; 44 | box-shadow: inset 0 0 0 1px #e1e4e8; 45 | } 46 | 47 | .action-card__body { 48 | padding: 32px; 49 | height: 100%; 50 | } 51 | 52 | .action-card-icon { 53 | background: #0366d6; 54 | border-radius: 50%; 55 | height: 60px; 56 | width: 60px; 57 | text-align: center !important; 58 | margin: 15px 15px 0 0; 59 | position: absolute; 60 | right: 10px; 61 | } 62 | 63 | .action-card-icon * { 64 | top: 50%; 65 | transform: translateY(50%); 66 | } 67 | 68 | .action-card__footer { 69 | box-shadow: inset 0 1px 0 0 #e1e4e8; 70 | text-align: right; 71 | padding: 24px 32px; 72 | } 73 | 74 | .action-card__header img { 75 | width: 100px; 76 | margin-bottom: 0; 77 | } 78 | 79 | .action-card:after { 80 | background: #fff; 81 | bottom: -20px; 82 | content: ''; 83 | display: block; 84 | height: 45px; 85 | left: 50%; 86 | margin: 0 0 0 -23px; 87 | position: absolute; 88 | width: 46px; 89 | box-shadow: inset 0 0 0 1px #e1e4e8, 0 2px 4px rgba(0, 0, 0, 0.15); 90 | z-index: 0; 91 | border-radius: 50%; 92 | } 93 | 94 | .content .action-card__header h4 { 95 | margin: 0; 96 | padding: 0; 97 | } 98 | 99 | .action-card__header p { 100 | font-size: 18px; 101 | } 102 | -------------------------------------------------------------------------------- /src/components/ActionHeader/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import urljoin from 'url-join' 3 | 4 | const ActionHeader = ({ title, github_url, author }) => { 5 | return ( 6 |
7 |
8 |
9 |

{title}

10 |

By {author}

11 |
12 |
13 |
14 | ) 15 | } 16 | 17 | export default ActionHeader 18 | -------------------------------------------------------------------------------- /src/components/Footer/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | import './styles.css' 4 | 5 | const Footer = () => { 6 | return ( 7 | 56 | ) 57 | } 58 | 59 | export default Footer 60 | -------------------------------------------------------------------------------- /src/components/Footer/styles.css: -------------------------------------------------------------------------------- 1 | footer p { 2 | margin-bottom: 10px; 3 | } 4 | 5 | .footer { 6 | color: #797676; 7 | font-size: 1.3em; 8 | padding: 3rem 1.5rem 3rem !important; 9 | } 10 | 11 | .footer svg { 12 | vertical-align: middle; 13 | } 14 | -------------------------------------------------------------------------------- /src/components/Navigation/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | import './styles.css' 4 | 5 | const Navigation = () => { 6 | return ( 7 | 24 | ) 25 | } 26 | 27 | export default Navigation 28 | -------------------------------------------------------------------------------- /src/components/Navigation/styles.css: -------------------------------------------------------------------------------- 1 | nav.navbar { 2 | background: #423a3a; 3 | color: white; 4 | padding: 0 70px; 5 | } 6 | 7 | nav.navbar h1, 8 | nav.navbar a { 9 | color: white; 10 | float: right; 11 | } 12 | -------------------------------------------------------------------------------- /src/components/SiteHeader/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | 3 | const SiteHeader = ({ handleFilter, count }) => { 4 | return ( 5 |
6 |
7 |
8 |

GitHub Actions

9 | 10 |

11 | Built to help developers find GitHub Actions. 12 |

13 |
14 | 20 |
21 | 26 | 27 | Add an action 28 | 29 |

30 | Currently listing {count} actions and counting... 31 |

32 | 53 |
54 |
55 |
56 | ) 57 | } 58 | 59 | export default SiteHeader 60 | -------------------------------------------------------------------------------- /src/components/layout.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import PropTypes from 'prop-types' 3 | import Helmet from 'react-helmet' 4 | import { StaticQuery, graphql, Link } from 'gatsby' 5 | 6 | import Navigation from './Navigation' 7 | import Footer from './Footer' 8 | import './layout.css' 9 | 10 | const Layout = ({ children, count, handleFilter = () => {}, header }) => ( 11 | ( 22 | <> 23 | 30 |