diff --git a/.github/main.workflow b/.github/main.workflow index 66e555e..498d701 100644 --- a/.github/main.workflow +++ b/.github/main.workflow @@ -1,49 +1,83 @@ +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 = [ + "Docker Lint", + "Test", + "Docker Login", + "Docker Publish", + ] on = "push" - resolves = "Docker Publish" +} + +action "Master Branch" { + uses = "actions/bin/filter@master" + args = "branch master" +} + +action "Docker Lint" { + uses = "docker://replicated/dockerfilelint" + needs = ["Master Branch"] + args = "Dockerfile" } action "Shell Lint" { uses = "actions/bin/shellcheck@master" + needs = ["Master Branch"] args = "entrypoint.sh" } action "Test" { uses = "actions/bin/bats@master" + needs = ["Master Branch"] 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" + needs = [ + "Docker Lint", + "Test", + "Shell Lint", + ] 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"] + secrets = ["DOCKER_PASSWORD", "DOCKER_USERNAME"] + needs = ["Build"] } action "Docker Publish" { - needs = ["Docker Tag", "Docker Login"] uses = "actions/docker/cli@master" + needs = [ + "Docker Login", + "Docker Tag", + ] args = "push borales/yarn" }