Compare commits

..

63 Commits

Author SHA1 Message Date
Oleksandr Bordun fdf0082f89 Update CHANGELOG.md 2022-06-08 12:42:31 +02:00
Oleksandr Bordun 1937fedd35 Update README.md 2022-06-08 12:36:52 +02:00
Oleksandr Bordun 9bec063cfa Update README.md 2022-06-08 09:18:58 +02:00
Oleksandr Bordun d8ce577a6f Merge pull request #45 from richard-chim/master
Update python2 to python3 in Dockerfile
2022-06-08 08:49:13 +02:00
Richard Chim 924bcea8f0 Update python2 to python3 in Dockerfile 2022-06-07 23:38:47 -04:00
Oleksandr Bordun 44293a387e Merge pull request #40 from jarvisuser9/patch-1
Fixing a typo in secret name of NPM_AUTH_TOKEN
2021-10-08 14:01:32 +02:00
John Ciprian 1f7c6fbe9c Fixing a typo in secret name of NPM_AUTH_TOKEN 2021-08-06 10:53:27 -04:00
Oleksandr Bordun f6e2aecf62 Merge pull request #38 from tomeksabala/master
Updated readme examples to latest version
2021-06-18 22:13:59 +02:00
Tomasz Sabała 5b0b86cdda Updated readme examples to latest version 2021-06-18 15:00:28 +02:00
Oleksandr Bordun 6207ca676f Update README.md 2020-11-17 20:30:55 +01:00
Oleksandr Bordun 3eab1c9435 Merge pull request #27 from diegocosta/patch-1
Update README.md
2020-06-20 22:10:58 +02:00
Diego Costa f24ed466bd Update README.md
Fixed the syntax for markdown link.
2020-06-20 16:48:58 -03:00
Oleksandr Bordun c33f8306f2 Merge pull request #26 from lucianomlima/patch-1
Update README.md
2020-06-08 17:08:14 +02:00
Luciano Lima 4ac8b9d200 Update README.md
Change checkout action to v2
2020-06-08 11:39:36 -03:00
Oleksandr Bordun 4965e1a0f0 Forcing yarn update 2020-06-05 09:41:55 +02:00
Oleksandr Bordun 2c3d31468d Installing yarn via npm 2020-06-05 09:39:10 +02:00
Oleksandr Bordun 045276f30a Installing latest yarn 2020-06-05 09:33:11 +02:00
Oleksandr Bordun b7482b5362 Merge pull request #18 from thepont/master
Install prerequites for native modules
2019-11-14 08:58:32 +01:00
Paul Esson 729ea4ad03 Update Dockerfile
use build-base for g++ and make
2019-11-13 15:02:21 +11:00
Paul Esson 3a3b5a57de Update Dockerfile
add more requirements for native code compile
2019-11-13 15:00:50 +11:00
Paul Esson fb4aea7299 feat: add python 2 since its a dep of node sass 2019-11-13 14:35:04 +11:00
Oleksandr Bordun 3dce3af319 Update README.md 2019-11-11 18:13:56 +01:00
Oleksandr Bordun 57dd002262 Update CHANGELOG.md 2019-11-08 16:43:41 +01:00
Oleksandr Bordun 1e151b00df Update Dockerfile 2019-11-08 16:43:05 +01:00
Oleksandr Bordun 58112cebd4 Update CHANGELOG.md 2019-11-06 18:00:16 +01:00
Oleksandr Bordun 496d83e0ee Update CHANGELOG.md 2019-11-06 17:59:38 +01:00
Oleksandr Bordun 4d9b2c0dc6 Installing Git 2019-11-06 17:59:03 +01:00
Borales b7233e8545 Updating README 2019-10-21 19:57:29 +02:00
Borales a39c5ddbda Updating README 2019-10-21 19:56:30 +02:00
Oleksandr Bordun 6d5252c0b8 Merge pull request #10 from ardeois/master
fix .npmrc file generation
2019-10-15 20:43:14 +02:00
Corentin Ardeois e0c8d84b6e fix .npmrc file generation
When we pass an `auth-token`, a `.npmrc` file is generated but it's value could be invalid
The parameter substitution to set a default value on `NPM_` was not working.

Github action defines the `NPM_*` environment variables with a null value, but we were setting a default value only if the environment variable was not set at all.
2019-10-15 14:38:37 -04:00
Borales 4e4261c59f Fixing typo 2019-10-14 11:36:20 +02:00
Borales 7214980ec5 Adding icon 2019-10-14 00:29:09 +02:00
Oleksandr Bordun 65448b3ccb Merge pull request #9 from Borales/new-workflow
New workflow
2019-10-14 00:14:39 +02:00
Borales 60b50482c5 Adding publish to docker 2019-10-14 00:12:01 +02:00
Borales 05b6c81cc1 Updating readme 2019-10-14 00:05:38 +02:00
Borales f5b369fc01 Cleanup 2019-10-14 00:00:15 +02:00
Borales 0246406bde Defining npm token and registry 2019-10-13 23:56:24 +02:00
Borales a162e275b0 Updating CHANGELOG and README 2019-10-13 23:46:44 +02:00
Borales 84bafda24c Removing ci.yml 2019-10-13 23:34:45 +02:00
Borales 4e66af0674 Switching to node:10.16-alpine 2019-10-13 23:33:06 +02:00
Borales 3dbac8fd64 Adding initial action.yml 2019-10-13 23:32:40 +02:00
Borales 8148c8b160 Removing test files 2019-10-13 23:32:24 +02:00
Borales bde4840b6f Lint 2019-10-13 23:23:16 +02:00
Borales 9cdb6a613d fixing name 2019-10-13 22:50:36 +02:00
Borales 9907c411e8 Docker lint 2019-10-13 22:48:43 +02:00
Borales ae80f819cc Docker lint 2019-10-13 22:45:19 +02:00
Borales ab1419e4cb Workflow test 2019-10-13 22:43:10 +02:00
Borales 8b95fae89c Adding initial ci.yml workflow 2019-10-13 22:37:02 +02:00
Oleksandr Bordun 7f2a916727 Update CHANGELOG.md 2019-04-22 14:05:55 +02:00
Oleksandr Bordun 5a59b2b2ae Merge pull request #5 from Embraser01/patch-1
Backport some changes from npm actions
2019-04-22 14:01:21 +02:00
Oleksandr Bordun 658f66ff0b Merge branch 'master' into patch-1 2019-04-22 12:19:13 +02:00
Oleksandr Bordun 433d223b19 Fixing Dockerfilelint action 2019-04-22 12:17:11 +02:00
Oleksandr Bordun 7ba8158c63 Update main.workflow 2019-04-22 11:44:37 +02:00
Oleksandr Bordun 02dfec60b1 Updating main workflow 2019-04-22 11:35:55 +02:00
Oleksandr Bordun 05eb7c3a78 Update main.workflow 2019-04-22 01:00:10 +02:00
Oleksandr Bordun 2f417a09c0 Fixing Docker Lint 2019-04-22 00:28:20 +02:00
Oleksandr Bordun 6f4d654ec1 Adding PR tests 2019-04-21 23:42:36 +02:00
Marc-Antoine 097057d996 Use full node image
NPM for Github actions uses the full node image from docker.

I need it because some of my dependencies need python and slim version does not seems to have it.

More here: https://github.com/actions/npm/issues/8
2019-04-21 21:45:04 +02:00
Marc-Antoine ae944a02b7 Backport entrypoint.sh from npm action
I just backported changes made in the NPM action
2019-04-21 21:40:20 +02:00
Oleksandr Bordun ed3b33b7fe Merge pull request #4 from Embraser01/patch-1
Fix action preview (capitalize Borales)
2019-04-21 14:47:33 +02:00
Marc-Antoine a918ccf9e6 Fix action preview (capitalize Borales)
Without it, Github action can't load meta data (icon color, name, etc.)
2019-04-21 11:43:46 +02:00
Oleksandr Bordun e207ae44f5 Updating color 2019-03-09 14:08:35 +01:00
12 changed files with 107 additions and 159 deletions
-49
View File
@@ -1,49 +0,0 @@
workflow "Build and Publish" {
on = "push"
resolves = "Docker Publish"
}
action "Shell Lint" {
uses = "actions/bin/shellcheck@master"
args = "entrypoint.sh"
}
action "Test" {
uses = "actions/bin/bats@master"
args = "test/*.bats"
}
action "Docker Lint" {
uses = "docker://replicated/dockerfilelint"
args = ["Dockerfile"]
}
action "Build" {
needs = ["Shell Lint", "Test", "Docker Lint"]
uses = "actions/docker/cli@master"
args = "build -t yarn ."
}
action "Docker Tag" {
needs = ["Build"]
uses = "actions/docker/tag@master"
args = "yarn borales/yarn --no-latest"
}
action "Publish Filter" {
needs = ["Build"]
uses = "actions/bin/filter@master"
args = "branch master"
}
action "Docker Login" {
needs = ["Publish Filter"]
uses = "actions/docker/login@master"
secrets = ["DOCKER_USERNAME", "DOCKER_PASSWORD"]
}
action "Docker Publish" {
needs = ["Docker Tag", "Docker Login"]
uses = "actions/docker/cli@master"
args = "push borales/yarn"
}
+21
View File
@@ -0,0 +1,21 @@
name: Publish Docker image
on:
push:
tags:
- 'v*' # Push events to matching v*, i.e. v1.0, v20.15.10
jobs:
build:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Publish to Registry
uses: elgohr/Publish-Docker-Github-Action@master
with:
name: borales/yarn
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
cache: true
-2
View File
@@ -1,2 +0,0 @@
brew "bats"
brew "shellcheck"
+22 -1
View File
@@ -1,5 +1,26 @@
# CHANGELOG
### 27 Dec 2018
## 3.0.0 (8 Jun 2022)
- Migrating to Python3 (thanks to [@richard-chim](https://github.com/richard-chim))
## 2.1.0 (8 Nov 2019)
- Switching to `node:lts` docker image
## 2.0.2 (6 Nov 2019)
- Added Git to the Docker image
## 2.0.0 (14 Oct 2019)
- Migrated to the latest Github Action syntax
- Using `node:10.16-alpine` as base image
## 1.1.0 (22 Apr 2019)
- Docker now uses the full image `node:10` and `entrypoint.sh` accepts extra NPM settings (thanks to [@Embraser01](https://github.com/Embraser01))
## 1.0.0 (27 Dec 2018)
- Added Docker credentials
+3 -12
View File
@@ -1,16 +1,7 @@
FROM node:10-slim
LABEL version="1.0.0"
LABEL repository="https://github.com/Borales/actions-yarn"
LABEL homepage="https://github.com/Borales/actions-yarn"
LABEL maintainer="Oleksandr Bordun <bordun.alexandr@gmail.com>"
LABEL com.github.actions.name="GitHub Action for Yarn"
LABEL com.github.actions.description="Wraps the yarn CLI to enable common yarn commands."
LABEL com.github.actions.icon="package"
LABEL com.github.actions.color="#2188b6"
# COPY LICENSE README.md THIRD_PARTY_NOTICE.md /
FROM node:lts-alpine
RUN apk add --no-cache git python3 build-base
RUN npm i -g --force yarn
COPY "entrypoint.sh" "/entrypoint.sh"
ENTRYPOINT ["/entrypoint.sh"]
CMD ["help"]
+30 -34
View File
@@ -1,38 +1,38 @@
# GitHub Actions for Yarn
> Look https://github.com/actions/npm for more details.
> Look [github.com/actions/setup-node](https://github.com/actions/setup-node) for more details.
This Action for [yarn](https://yarnpkg.com) enables arbitrary actions with the `yarn` command-line client, including testing packages and publishing to a registry.
> **Please keep in mind** that this Action was originally written for GitHub Actions beta (when Docker was the only way of doing things).
Consider using [actions/setup-node](https://github.com/actions/setup-node) to work with Yarn. This repository will be mostly supporting the existing flows.
## Usage
An example workflow to build, test, and publish an npm package to the default public registry follows:
An example workflow how to install packages via Yarn (using repository syntax):
```hcl
workflow "Build, Test, and Publish" {
on = "push"
resolves = ["Publish"]
}
action "Build" {
uses = "borales/actions-yarn@master"
args = "install"
}
action "Test" {
needs = "Build"
uses = "borales/actions-yarn@master"
args = "test"
}
action "Publish" {
needs = "Test"
uses = "borales/actions-yarn@master"
args = "publish --access public"
secrets = ["NPM_AUTH_TOKEN"]
}
```yml
name: CI
on: [push]
jobs:
build:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: borales/actions-yarn@v3.0.0
with:
cmd: install # will run `yarn install` command
- uses: borales/actions-yarn@v3.0.0
with:
cmd: build # will run `yarn build` command
- uses: borales/actions-yarn@v3.0.0
with:
cmd: test # will run `yarn test` command
```
> `cmd` value will be used as a command for Yarn
### Secrets
* `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))
@@ -46,13 +46,9 @@ action "Publish" {
To authenticate with, and publish to, a registry other than `registry.npmjs.org`:
```hcl
action "Publish" {
uses = "borales/actions-yarn@master"
args = "publish --access public"
env = {
NPM_REGISTRY_URL = "someOtherRegistry.someDomain.net"
}
secrets = ["NPM_AUTH_TOKEN"]
}
```yml
- uses: borales/actions-yarn@v3.0.0
with:
auth-token: ${{ secrets.NPM_TOKEN }}
registry-url: someOtherRegistry.someDomain.net
```
+21
View File
@@ -0,0 +1,21 @@
name: 'GitHub Action for Yarn'
description: 'Wraps the yarn CLI to enable common yarn commands'
branding:
icon: 'package'
color: 'blue'
inputs:
cmd:
description: 'Yarn command'
required: true
auth-token:
description: 'NPM_AUTH_TOKEN'
registry-url:
description: 'NPM_REGISTRY_URL'
runs:
using: 'docker'
image: 'Dockerfile'
args:
- ${{ inputs.cmd }}
env:
NPM_AUTH_TOKEN: ${{ inputs.auth-token }}
NPM_REGISTRY_URL: ${{ inputs.registry-url }}
+10 -3
View File
@@ -4,11 +4,18 @@ set -e
if [ -n "$NPM_AUTH_TOKEN" ]; then
# Respect NPM_CONFIG_USERCONFIG if it is provided, default to $HOME/.npmrc
NPM_CONFIG_USERCONFIG="${NPM_CONFIG_USERCONFIG-"$HOME/.npmrc"}"
NPM_REGISTRY_URL="${NPM_REGISTRY_URL-registry.npmjs.org}"
NPM_CONFIG_USERCONFIG="${NPM_CONFIG_USERCONFIG:-"$HOME/.npmrc"}"
NPM_REGISTRY_URL="${NPM_REGISTRY_URL:-registry.npmjs.org}"
NPM_STRICT_SSL="${NPM_STRICT_SSL:-true}"
NPM_REGISTRY_SCHEME="https"
if ! $NPM_STRICT_SSL
then
NPM_REGISTRY_SCHEME="http"
fi
# Allow registry.npmjs.org to be overridden with an environment variable
printf "//%s/:_authToken=%s\\nregistry=%s" "$NPM_REGISTRY_URL" "$NPM_AUTH_TOKEN" "$NPM_REGISTRY_URL" > "$NPM_CONFIG_USERCONFIG"
printf "//%s/:_authToken=%s\\nregistry=%s\\nstrict-ssl=%s" "$NPM_REGISTRY_URL" "$NPM_AUTH_TOKEN" "${NPM_REGISTRY_SCHEME}://$NPM_REGISTRY_URL" "${NPM_STRICT_SSL}" > "$NPM_CONFIG_USERCONFIG"
chmod 0600 "$NPM_CONFIG_USERCONFIG"
fi
-15
View File
@@ -1,15 +0,0 @@
#!/bin/sh
# script/bootstrap: Resolve dependencies that the application requires to run.
# Exit if any subcommand fails
set -e
# Ensure we're always running from the project root
cd "$(dirname "$0")/.."
if [ -f "Brewfile" ] && [ "$(uname -s)" = "Darwin" ]; then
brew bundle check >/dev/null 2>&1 || {
echo "==> Installing Homebrew dependencies…"
brew bundle
}
fi
-10
View File
@@ -1,10 +0,0 @@
#!/bin/sh
# Exit if any subcommand fails
set -e
# Ensure we're always running from the project root
cd "$(dirname "$0")/.."
bats test/*.bats
shellcheck *.sh
-2
View File
@@ -1,2 +0,0 @@
#!/bin/sh
echo "Fake yarn"
-31
View File
@@ -1,31 +0,0 @@
#!/usr/bin/env bats
PATH="$PATH:$BATS_TEST_DIRNAME/bin"
function setup() {
# Ensure GITHUB_WORKSPACE is set
export GITHUB_WORKSPACE="${GITHUB_WORKSPACE-"${BATS_TEST_DIRNAME}/.."}"
}
@test "entrypoint runs successfully" {
run $GITHUB_WORKSPACE/entrypoint.sh help
echo "$output"
[ "$status" -eq 0 ]
}
@test "npmrc location can be overridden" {
export NPM_CONFIG_USERCONFIG=$( mktemp )
export NPM_AUTH_TOKEN=NPM_AUTH_TOKEN
run $GITHUB_WORKSPACE/entrypoint.sh help
[ "$status" -eq 0 ]
[ "$(cat $NPM_CONFIG_USERCONFIG)" = $'//registry.npmjs.org/:_authToken=NPM_AUTH_TOKEN\nregistry=registry.npmjs.org' ]
}
@test "registry can be overridden" {
export NPM_CONFIG_USERCONFIG=$( mktemp )
export NPM_REGISTRY_URL=someOtherRegistry.someDomain.net
export NPM_AUTH_TOKEN=NPM_AUTH_TOKEN
run $GITHUB_WORKSPACE/entrypoint.sh help
[ "$status" -eq 0 ]
[ "$(cat $NPM_CONFIG_USERCONFIG)" = $'//someOtherRegistry.someDomain.net/:_authToken=NPM_AUTH_TOKEN\nregistry=someOtherRegistry.someDomain.net' ]
}