mirror of
https://github.com/Borales/actions-yarn.git
synced 2026-04-02 10:18:14 +08:00
Initial commit
This commit is contained in:
commit
7c76ec9392
7
.dockerignore
Normal file
7
.dockerignore
Normal file
@ -0,0 +1,7 @@
|
||||
# ignore all files by default
|
||||
*
|
||||
# include required files with an exception
|
||||
!entrypoint.sh
|
||||
!LICENSE
|
||||
!README.md
|
||||
!THIRD_PARTY_NOTICE.md
|
||||
49
.github/main.workflow
vendored
Normal file
49
.github/main.workflow
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
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"
|
||||
}
|
||||
16
Dockerfile
Normal file
16
Dockerfile
Normal file
@ -0,0 +1,16 @@
|
||||
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="red"
|
||||
# COPY LICENSE README.md THIRD_PARTY_NOTICE.md /
|
||||
|
||||
COPY "entrypoint.sh" "/entrypoint.sh"
|
||||
ENTRYPOINT ["/entrypoint.sh"]
|
||||
CMD ["help"]
|
||||
15
entrypoint.sh
Executable file
15
entrypoint.sh
Executable file
@ -0,0 +1,15 @@
|
||||
#!/bin/sh
|
||||
|
||||
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}"
|
||||
|
||||
# Allow registry.npmjs.org to be overridden with an environment variable
|
||||
printf "//$NPM_REGISTRY_URL/:_authToken=$NPM_AUTH_TOKEN\nregistry=$NPM_REGISTRY_URL" > "$NPM_CONFIG_USERCONFIG"
|
||||
chmod 0600 "$NPM_CONFIG_USERCONFIG"
|
||||
fi
|
||||
|
||||
sh -c "yarn $*"
|
||||
15
script/bootstrap
Executable file
15
script/bootstrap
Executable file
@ -0,0 +1,15 @@
|
||||
#!/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
script/test
Executable file
10
script/test
Executable file
@ -0,0 +1,10 @@
|
||||
#!/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
test/bin/yarn
Executable file
2
test/bin/yarn
Executable file
@ -0,0 +1,2 @@
|
||||
#!/bin/sh
|
||||
echo "Fake yarn"
|
||||
31
test/entrypoint.bats
Normal file
31
test/entrypoint.bats
Normal file
@ -0,0 +1,31 @@
|
||||
#!/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" ]
|
||||
}
|
||||
|
||||
@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" ]
|
||||
}
|
||||
Loading…
x
Reference in New Issue
Block a user