actions-yarn/.github/main.workflow
2019-04-22 11:35:55 +02:00

117 lines
2.4 KiB
HCL

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"
}
workflow "Pull Request" {
on = "pull_request"
resolves = ["Docker Lint [PR]", "Shell Lint [PR]", "Test [PR]"]
}
action "Docker Lint [PR]" {
uses = "docker://replicated/dockerfilelint"
args = "[\"./Dockerfile\"]"
}
action "Shell Lint [PR]" {
uses = "actions/bin/shellcheck@master"
args = "entrypoint.sh"
}
action "Test [PR]" {
uses = "actions/bin/bats@master"
args = "test/*.bats"
}
workflow "Build and Publish" {
resolves = ["Test [N]", "Docker Login [N]", "Docker Publish [N]", "Docker Lint [N]"]
on = "push"
}
action "Master Branch" {
uses = "actions/bin/filter@master"
args = "branch master"
}
action "Docker Lint [N]" {
uses = "docker://replicated/dockerfilelint"
needs = ["Master Branch"]
args = "[\"Dockerfile\"]"
}
action "Shell Lint [N]" {
uses = "actions/bin/shellcheck@master"
needs = ["Master Branch"]
args = "entrypoint.sh"
}
action "Test [N]" {
uses = "actions/bin/bats@master"
needs = ["Master Branch"]
args = "test/*.bats"
}
action "Build [N]" {
uses = "actions/docker/cli@master"
needs = ["Shell Lint [N]", "Test [N]", "Docker Lint [N]"]
args = "build -t yarn ."
}
action "Docker Tag [N]" {
uses = "actions/docker/tag@master"
needs = ["Build [N]"]
args = "yarn borales/yarn --no-latest"
}
action "Docker Login [N]" {
uses = "actions/docker/login@master"
needs = ["Build [N]"]
secrets = ["DOCKER_PASSWORD", "DOCKER_USERNAME"]
}
action "Docker Publish [N]" {
uses = "actions/docker/cli@master"
needs = ["Docker Tag [N]", "Docker Login [N]"]
args = "push borales/yarn"
}