Skip to content

Commit

Permalink
ci: migrate to sage
Browse files Browse the repository at this point in the history
  • Loading branch information
odsod committed Jan 27, 2022
1 parent 66d9c40 commit 8fae66f
Show file tree
Hide file tree
Showing 10 changed files with 118 additions and 103 deletions.
4 changes: 2 additions & 2 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,6 @@ updates:
interval: daily

- package-ecosystem: gomod
directory: .mage
directory: .sage
schedule:
interval: daily
interval: weekly
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ jobs:
- name: Report Code Coverage
uses: codecov/codecov-action@v2.1.0
with:
file: .mage/tools/go/coverage/go-test.txt
file: .sage/tools/go/coverage/go-test.txt
fail_ci_if_error: true
1 change: 0 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
.idea
.mage/tools/
15 changes: 0 additions & 15 deletions .mage/go.mod

This file was deleted.

51 changes: 0 additions & 51 deletions .mage/magefile.go

This file was deleted.

2 changes: 2 additions & 0 deletions .sage/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
tools/
bin/
13 changes: 13 additions & 0 deletions .sage/go.mod
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
module sage

go 1.17

require (
github.com/go-logr/logr v1.2.2
go.einride.tech/sage v0.53.0
)

require (
github.com/iancoleman/strcase v0.2.0 // indirect
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b // indirect
)
8 changes: 2 additions & 6 deletions .mage/go.sum → .sage/go.sum
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
github.com/go-logr/logr v1.2.2 h1:ahHml/yUpnlb96Rp8HCvtYVPY8ZYpxq3g7UYchIYwbs=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
github.com/iancoleman/strcase v0.2.0 h1:05I4QRnGpI0m37iZQRuskXh+w77mr6Z41lwQzuHLwW0=
github.com/iancoleman/strcase v0.2.0/go.mod h1:iwCmte+B7n89clKwxIoIXy/HfoL7AsD47ZCWhYzw7ho=
github.com/magefile/mage v1.12.1 h1:oGdAbhIUd6iKamKlDGVtU6XGdy5SgNuCWn7gCTgHDtU=
github.com/magefile/mage v1.12.1/go.mod h1:z5UZb/iS3GoOSn0JgWuiw7dxlurVYTu+/jHXqQg881A=
go.einride.tech/mage-tools v0.28.0 h1:RSCd3tN6WrtSuudwmqiAzjCKfuTpLtE7bLKqTyuMOMU=
go.einride.tech/mage-tools v0.28.0/go.mod h1:pFpCBZ0U7a6862mks4y6v5xBkT4IhdrcJdEeTEjweMI=
go.einride.tech/sage v0.53.0 h1:6cdx0zubvjvWGlKiw/Jv0Od/BGZv+twr7Rl3EZWrZBk=
go.einride.tech/sage v0.53.0/go.mod h1:6qSXPc1PUoJOCbavwiKy4kq5SqQ1invk5C7pBG9UP3o=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo=
Expand Down
70 changes: 70 additions & 0 deletions .sage/sagefile.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
package main

import (
"context"

"github.com/go-logr/logr"
"go.einride.tech/sage/sg"
"go.einride.tech/sage/tools/sgconvco"
"go.einride.tech/sage/tools/sggit"
"go.einride.tech/sage/tools/sggo"
"go.einride.tech/sage/tools/sggolangcilint"
"go.einride.tech/sage/tools/sggoreview"
"go.einride.tech/sage/tools/sgmarkdownfmt"
"go.einride.tech/sage/tools/sgyamlfmt"
)

func main() {
sg.GenerateMakefiles(
sg.Makefile{
Path: sg.FromGitRoot("Makefile"),
DefaultTarget: All,
},
)
}

func All(ctx context.Context) error {
sg.Deps(ctx, ConvcoCheck, GolangciLint, GoReview, GoTest, FormatMarkdown, FormatYAML)
sg.SerialDeps(ctx, GoModTidy, GitVerifyNoDiff)
return nil
}

func FormatYAML(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("formatting YAML files...")
return sgyamlfmt.FormatYAML(ctx)
}

func GoModTidy(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("tidying Go module files...")
return sg.Command(ctx, "go", "mod", "tidy", "-v").Run()
}

func GoTest(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("running Go tests...")
return sggo.TestCommand(ctx).Run()
}

func GoReview(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("reviewing Go files...")
return sggoreview.Command(ctx, "-c", "1", "./...").Run()
}

func GolangciLint(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("linting Go files...")
return sggolangcilint.RunCommand(ctx).Run()
}

func FormatMarkdown(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("formatting Markdown files...")
return sgmarkdownfmt.Command(ctx, "-w", ".").Run()
}

func ConvcoCheck(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("checking git commits...")
return sgconvco.Command(ctx, "check", "origin/master..HEAD").Run()
}

func GitVerifyNoDiff(ctx context.Context) error {
logr.FromContextOrDiscard(ctx).Info("verifying that git has no diff...")
return sggit.VerifyNoDiff(ctx)
}
55 changes: 28 additions & 27 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
# Code generated by go.einride.tech/mage-tools. DO NOT EDIT.
# To learn more, see .mage/magefile.go and https://github.com/einride/mage-tools.
# Code generated by go.einride.tech/sage. DO NOT EDIT.
# To learn more, see .sage/sagefile.go and https://github.com/einride/sage.

.DEFAULT_GOAL := all

magefile := .mage/tools/bin/magefile
sagefile := .sage/bin/sagefile

$(magefile): .mage/go.mod .mage/*.go
@cd .mage && go run go.einride.tech/mage-tools/cmd/build
$(sagefile): .sage/go.mod .sage/*.go
@cd .sage && go mod tidy && go run .

.PHONY: clean-mage-tools
clean-mage-tools:
@git clean -fdx .mage/tools
.PHONY: clean-sage
clean-sage:
@git clean -fdx .sage/tools

.PHONY: all
all: $(magefile)
@$(magefile) all
all: $(sagefile)
@$(sagefile) All

.PHONY: convco-check
convco-check: $(magefile)
ifndef rev
$(error missing argument rev="...")
endif
@$(magefile) convcoCheck $(rev)
convco-check: $(sagefile)
@$(sagefile) ConvcoCheck

.PHONY: format-markdown
format-markdown: $(magefile)
@$(magefile) formatMarkdown
format-markdown: $(sagefile)
@$(sagefile) FormatMarkdown

.PHONY: format-yaml
format-yaml: $(magefile)
@$(magefile) formatYaml
format-yaml: $(sagefile)
@$(sagefile) FormatYAML

.PHONY: git-verify-no-diff
git-verify-no-diff: $(magefile)
@$(magefile) gitVerifyNoDiff
git-verify-no-diff: $(sagefile)
@$(sagefile) GitVerifyNoDiff

.PHONY: go-mod-tidy
go-mod-tidy: $(magefile)
@$(magefile) goModTidy
go-mod-tidy: $(sagefile)
@$(sagefile) GoModTidy

.PHONY: go-review
go-review: $(sagefile)
@$(sagefile) GoReview

.PHONY: go-test
go-test: $(magefile)
@$(magefile) goTest
go-test: $(sagefile)
@$(sagefile) GoTest

.PHONY: golangci-lint
golangci-lint: $(magefile)
@$(magefile) golangciLint
golangci-lint: $(sagefile)
@$(sagefile) GolangciLint

0 comments on commit 8fae66f

Please sign in to comment.