Add drone pipeline
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
IamTheFij 2021-01-08 16:45:05 -05:00
parent fa21e10153
commit fc3e8a356b
2 changed files with 53 additions and 12 deletions

31
.drone.yml Normal file
View File

@ -0,0 +1,31 @@
---
kind: pipeline
name: test
steps:
- name: check
image: iamthefij/drone-pre-commit:personal
---
kind: pipeline
name: notify
depends_on:
- test
trigger:
status:
- failure
steps:
- name: notify
image: drillster/drone-email
settings:
host:
from_secret: SMTP_HOST # pragma: whitelist secret
username:
from_secret: SMTP_USER # pragma: whitelist secret
password:
from_secret: SMTP_PASS # pragma: whitelist secret
from: drone@iamthefij.com

View File

@ -29,13 +29,14 @@ func init() {
} }
} }
// Build workflow // Build workflow.
func Build() error { func Build() error {
mg.Deps(cleanBuild) mg.Deps(cleanBuild)
fmt.Println("Building...") fmt.Println("Building...")
err := sh.RunWith(info.Env(), "go", "build", "-o", buildDir+"/alfred-yubico-auth", ".") err := sh.RunWith(info.Env(), "go", "build", "-o", buildDir+"/alfred-yubico-auth", ".")
if err != nil { if err != nil {
return err return fmt.Errorf("error building binary %w", err)
} }
globs := build.Globs( globs := build.Globs(
@ -49,54 +50,62 @@ func Build() error {
return build.SymlinkGlobs(buildDir, globs...) return build.SymlinkGlobs(buildDir, globs...)
} }
// Run workflow // Run workflow.
func Run() error { func Run() error {
mg.Deps(Build) mg.Deps(Build)
fmt.Println("Running...") fmt.Println("Running...")
return sh.RunWith(info.Env(), buildDir+"/alfred-yubico-auth") return sh.RunWith(info.Env(), buildDir+"/alfred-yubico-auth")
} }
// Dist packages workflow for distribution // Dist packages workflow for distribution.
func Dist() error { func Dist() error {
mg.SerialDeps(Clean, Build) mg.SerialDeps(Clean, Build)
p, err := build.Export(buildDir, distDir) p, err := build.Export(buildDir, distDir)
if err != nil { if err != nil {
return err return err
} }
fmt.Printf("Exported %q\n", p) fmt.Printf("Exported %q\n", p)
return nil return nil
} }
// Install symlinked workflow to Alfred // Install symlinked workflow to Alfred.
func Install() error { func Install() error {
mg.Deps(Build) mg.Deps(Build)
fmt.Printf("Installing (linking) %q to %q...\n", buildDir, info.InstallDir) fmt.Printf("Installing (linking) %q to %q...\n", buildDir, info.InstallDir)
if err := sh.Rm(info.InstallDir); err != nil { if err := sh.Rm(info.InstallDir); err != nil {
return err return fmt.Errorf("error cleaning previously installed workflow: %w", err)
} }
return build.Symlink(info.InstallDir, buildDir, true) return build.Symlink(info.InstallDir, buildDir, true)
} }
// InstallHooks will install pre-commit hooks // InstallHooks will install pre-commit hooks.
func InstallHooks() error { func InstallHooks() error {
return sh.RunV("pre-commit", "install", "--overwrite", "--install-hooks") return sh.RunV("pre-commit", "install", "--overwrite", "--install-hooks")
} }
// Check will run all pre-commit hooks // Check will run all pre-commit hooks.
func Check() error { func Check() error {
return sh.RunV("pre-commit", "run", "--all-files") return sh.RunV("pre-commit", "run", "--all-files")
} }
// Clean build files // Clean build files.
func Clean() error { func Clean() error {
fmt.Println("Cleaning...") fmt.Println("Cleaning...")
mg.Deps(cleanBuild, cleanMage) mg.Deps(cleanBuild, cleanMage)
return nil return nil
} }
// DistClean build files and distribution files // DistClean build files and distribution files.
func DistClean() error { func DistClean() error {
mg.Deps(Clean, cleanDist) mg.Deps(Clean, cleanDist)
return nil return nil
} }
@ -107,14 +116,15 @@ func cleanDir(name string) error {
infos, err := ioutil.ReadDir(name) infos, err := ioutil.ReadDir(name)
if err != nil { if err != nil {
return err return fmt.Errorf("cleanDir could not read folder: %w", err)
} }
for _, fi := range infos { for _, fi := range infos {
if err := sh.Rm(filepath.Join(name, fi.Name())); err != nil { if err := sh.Rm(filepath.Join(name, fi.Name())); err != nil {
return err return fmt.Errorf("cleanDir could not remove file: %w", err)
} }
} }
return nil return nil
} }