mirror of
https://github.com/kovetskiy/mark.git
synced 2025-04-24 05:42:40 +08:00
Merge pull request #238 from mrueg/ci
Add a CI pipeline that runs on PRs
This commit is contained in:
commit
4ef1d47b5c
66
.github/ci.yml
vendored
Normal file
66
.github/ci.yml
vendored
Normal file
@ -0,0 +1,66 @@
|
||||
name: continuous-integration
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
env:
|
||||
GO_VERSION: "~1.19.4"
|
||||
|
||||
jobs:
|
||||
# Runs Golangci-lint on the source code
|
||||
ci-go-lint:
|
||||
name: ci-go-lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up Go 1.x
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: golangci-lint
|
||||
uses: golangci/golangci-lint-action@v3
|
||||
|
||||
# Executes Unit Tests
|
||||
ci-unit-tests:
|
||||
name: ci-unit-tests
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up Go 1.x
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Run unit tests
|
||||
run: |
|
||||
make test
|
||||
|
||||
# Builds mark binary
|
||||
ci-build:
|
||||
name: ci-build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Set up Go 1.x
|
||||
uses: actions/setup-go@v3
|
||||
with:
|
||||
go-version: ${{ env.GO_VERSION }}
|
||||
id: go
|
||||
|
||||
- name: Check out code into the Go module directory
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Build mark
|
||||
run: |
|
||||
make build
|
1
.gitignore
vendored
1
.gitignore
vendored
@ -3,3 +3,4 @@
|
||||
/testdata
|
||||
.idea/
|
||||
/mark.test
|
||||
/profile.cov
|
||||
|
3
Makefile
3
Makefile
@ -18,6 +18,9 @@ build:
|
||||
-ldflags "-X main.version=$(VERSION)" \
|
||||
-gcflags "-trimpath $(GOPATH)/src"
|
||||
|
||||
test:
|
||||
go test -race -coverprofile=profile.cov ./...
|
||||
|
||||
image:
|
||||
@echo :: building image $(NAME):$(VERSION)
|
||||
@docker build -t $(NAME):$(VERSION) -f Dockerfile .
|
||||
|
@ -89,7 +89,10 @@ func (tracer *tracer) Printf(format string, args ...interface{}) {
|
||||
func NewAPI(baseURL string, username string, password string) *API {
|
||||
var auth *gopencils.BasicAuth
|
||||
if username != "" {
|
||||
auth = &gopencils.BasicAuth{username, password}
|
||||
auth = &gopencils.BasicAuth{
|
||||
Username: username,
|
||||
Password: password,
|
||||
}
|
||||
}
|
||||
rest := gopencils.Api(baseURL+"/rest/api", auth)
|
||||
if username == "" {
|
||||
|
@ -149,7 +149,7 @@ func SubstituteLinks(markdown []byte, links []LinkSubstitution) []byte {
|
||||
}
|
||||
|
||||
func parseLinks(markdown string) []markdownLink {
|
||||
re := regexp.MustCompile("\\[[^\\]]+\\]\\((([^\\)#]+)?#?([^\\)]+)?)\\)")
|
||||
re := regexp.MustCompile(`\[[^\]]+\]\((([^\)#]+)?#?([^\)]+)?)\)`)
|
||||
matches := re.FindAllStringSubmatch(markdown, -1)
|
||||
|
||||
links := make([]markdownLink, len(matches))
|
||||
|
@ -176,7 +176,7 @@ func (renderer ConfluenceRenderer) RenderNode(
|
||||
theme = option
|
||||
}
|
||||
}
|
||||
renderer.Stdlib.Templates.ExecuteTemplate(
|
||||
err := renderer.Stdlib.Templates.ExecuteTemplate(
|
||||
writer,
|
||||
"ac:code",
|
||||
struct {
|
||||
@ -197,20 +197,46 @@ func (renderer ConfluenceRenderer) RenderNode(
|
||||
strings.TrimSuffix(string(node.Literal), "\n"),
|
||||
},
|
||||
)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return bf.GoToNext
|
||||
}
|
||||
if node.Type == bf.Link && string(node.Destination[0:3]) == "ac:" {
|
||||
if entering {
|
||||
writer.Write([]byte("<ac:link><ri:page ri:content-title=\""))
|
||||
if len(node.Destination) < 4 {
|
||||
writer.Write(node.FirstChild.Literal)
|
||||
} else {
|
||||
writer.Write(node.Destination[3:])
|
||||
_, err := writer.Write([]byte("<ac:link><ri:page ri:content-title=\""))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
writer.Write([]byte("\"/><ac:plain-text-link-body><![CDATA["))
|
||||
writer.Write(node.FirstChild.Literal)
|
||||
writer.Write([]byte("]]></ac:plain-text-link-body></ac:link>"))
|
||||
|
||||
if len(node.Destination) < 4 {
|
||||
_, err := writer.Write(node.FirstChild.Literal)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
} else {
|
||||
_, err := writer.Write(node.Destination[3:])
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
}
|
||||
_, err = writer.Write([]byte("\"/><ac:plain-text-link-body><![CDATA["))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
_, err = writer.Write(node.FirstChild.Literal)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
_, err = writer.Write([]byte("]]></ac:plain-text-link-body></ac:link>"))
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return bf.SkipChildren
|
||||
}
|
||||
return bf.GoToNext
|
||||
|
@ -14,10 +14,6 @@ const (
|
||||
NL = "\n"
|
||||
)
|
||||
|
||||
func text(lines ...string) string {
|
||||
return strings.Join(lines, "\n")
|
||||
}
|
||||
|
||||
func TestCompileMarkdown(t *testing.T) {
|
||||
test := assert.New(t)
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user