Merge pull request #238 from mrueg/ci

Add a CI pipeline that runs on PRs
This commit is contained in:
Manuel Rüger 2023-01-05 23:05:36 +01:00 committed by GitHub
commit 4ef1d47b5c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 110 additions and 15 deletions

66
.github/ci.yml vendored Normal file
View 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
View File

@ -3,3 +3,4 @@
/testdata
.idea/
/mark.test
/profile.cov

View File

@ -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 .

View File

@ -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 == "" {

View File

@ -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))

View File

@ -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

View File

@ -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)