Coder Social home page Coder Social logo

lucacasonato / toolkit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from actions/toolkit

1.0 2.0 0.0 4.83 MB

The GitHub ToolKit for developing GitHub Actions.

Home Page: https://github.com/features/actions

License: MIT License

Shell 0.17% JavaScript 1.00% C# 0.05% PowerShell 0.36% TypeScript 98.36% Batchfile 0.06%

toolkit's Introduction

Toolkit unit tests status Toolkit audit status

GitHub Actions Toolkit

The GitHub Actions ToolKit provides a set of packages to make creating actions easier.


Get started with the javascript-action template!


Packages

โœ”๏ธ @actions/core

Provides functions for inputs, outputs, results, logging, secrets and variables. Read more here

$ npm install @actions/core

๐Ÿƒ @actions/exec

Provides functions to exec cli tools and process output. Read more here

$ npm install @actions/exec

๐Ÿจ @actions/glob

Provides functions to search for files matching glob patterns. Read more here

$ npm install @actions/glob

โ˜Ž๏ธ @actions/http-client

A lightweight HTTP client optimized for building actions. Read more here

$ npm install @actions/http-client

โœ๏ธ @actions/io

Provides disk i/o functions like cp, mv, rmRF, which etc. Read more here

$ npm install @actions/io

๐Ÿ”จ @actions/tool-cache

Provides functions for downloading and caching tools. e.g. setup-* actions. Read more here

See @actions/cache for caching workflow dependencies.

$ npm install @actions/tool-cache

:octocat: @actions/github

Provides an Octokit client hydrated with the context that the current action is being run in. Read more here

$ npm install @actions/github

๐Ÿ’พ @actions/artifact

Provides functions to interact with actions artifacts. Read more here

$ npm install @actions/artifact

๐ŸŽฏ @actions/cache

Provides functions to cache dependencies and build outputs to improve workflow execution time. Read more here

$ npm install @actions/cache

Creating an Action with the Toolkit

โ“ Choosing an action type

Outlines the differences and why you would want to create a JavaScript or a container based action.

โžฐ Versioning

Actions are downloaded and run from the GitHub graph of repos. This contains guidance for versioning actions and safe releases.

โš ๏ธ Problem Matchers

Problem Matchers are a way to scan the output of actions for a specified regex pattern and surface that information prominently in the UI.

โš ๏ธ Proxy Server Support

Self-hosted runners can be configured to run behind proxy servers.

Illustrates how to create a simple hello world javascript action.

...
  const nameToGreet = core.getInput('who-to-greet');
  console.log(`Hello ${nameToGreet}!`);
...

Walkthrough and template for creating a JavaScript Action with tests, linting, workflow, publishing, and versioning.

async function run() {
  try {
    const ms = core.getInput('milliseconds');
    console.log(`Waiting ${ms} milliseconds ...`)
    ...
PASS ./index.test.js
  โœ“ throws invalid number
  โœ“ wait 500 ms
  โœ“ test runs

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total

Walkthrough creating a TypeScript Action with compilation, tests, linting, workflow, publishing, and versioning.

import * as core from '@actions/core';

async function run() {
  try {
    const ms = core.getInput('milliseconds');
    console.log(`Waiting ${ms} milliseconds ...`)
    ...
PASS ./index.test.js
  โœ“ throws invalid number
  โœ“ wait 500 ms
  โœ“ test runs

Test Suites: 1 passed, 1 total
Tests:       3 passed, 3 total


Create an action that is delivered as a container and run with docker.

FROM alpine:3.10
COPY LICENSE README.md /
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

Create an action that is delivered as a container which uses the toolkit. This example uses the GitHub context to construct an Octokit client.

FROM node:slim
COPY . .
RUN npm install --production
ENTRYPOINT ["node", "/lib/main.js"]
const myInput = core.getInput('myInput');
core.debug(`Hello ${myInput} from inside a container`);

const context = github.context;
console.log(`We can even get context data, like the repo: ${context.repo.repo}`)

Contributing

We welcome contributions. See how to contribute.

Code of Conduct

See our code of conduct.

toolkit's People

Contributors

thboop avatar jclem avatar bryanmacfarlane avatar kotewar avatar robherley avatar konradpabjan avatar ericsciple avatar lvpx avatar dhadka avatar dependabot[bot] avatar luketomlinson avatar t-dedah avatar yacaovsnc avatar joshmgross avatar jtamsut avatar aiqiaoy avatar jasonetco avatar brcrista avatar vtbassmatt avatar tiwarishub avatar hashtagchris avatar tingluohuang-test avatar github-actions[bot] avatar rentziass avatar smorimoto avatar hross avatar philip-gai avatar irfan-ansari-au28 avatar tingluohuang avatar abelsquidhead avatar

Stargazers

cerdik-dev avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.