Skip to content

Commit

Permalink
action default values (#33)
Browse files Browse the repository at this point in the history
  • Loading branch information
vladopajic authored Oct 31, 2023
1 parent 001567b commit 75112d0
Show file tree
Hide file tree
Showing 2 changed files with 81 additions and 76 deletions.
52 changes: 26 additions & 26 deletions action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,17 @@ inputs:
config:
description: Path of configuration file.
required: false
default: "''"
default: ""
type: string
profile:
description: Path of coverage profile file.
required: false
default: "''"
default: ""
type: string
local-prefix:
description: When specified reported file paths will not contain local prefix in the output.
required: false
default: "''"
default: ""
type: string
threshold-file:
description: The minimum coverage that each file should have.
Expand All @@ -35,37 +35,37 @@ inputs:
badge-file-name:
description: When specified coverage badge will be created and saved to file with this name.
required: false
default: "''"
default: ""
type: string
cdn-key:
description: CDN key.
required: false
default: "''"
default: ""
type: string
cdn-secret:
description: CDN secret.
required: false
default: "''"
default: ""
type: string
cdn-region:
description: CDN region.
required: false
default: "''"
default: ""
type: string
cdn-endpoint:
description: CDN endpoint.
required: false
default: "''"
default: ""
type: string
cdn-file-name:
description: CDN file name.
required: false
default: "''"
default: ""
type: string
cdn-bucket-name:
description: CDN bucket name.
required: false
default: "''"
default: ""
type: string
cdn-force-path-style:
description: CDN force path style.
Expand All @@ -75,7 +75,7 @@ inputs:
git-token:
description: Github token.
required: false
default: "''"
default: ""
type: string
git-repository:
description: Github repository in format {owner}/{repository}.
Expand All @@ -85,7 +85,7 @@ inputs:
git-branch:
description: git branch where badge will be stored.
required: false
default: "''"
default: ""
type: string
git-file-name:
description: File name of badge stored to repository.
Expand All @@ -103,25 +103,25 @@ runs:
using: docker
image: docker://ghcr.io/vladopajic/go-test-coverage:v2.7.1
args:
- --config=${{ inputs.config }}
- --profile=${{ inputs.profile }}
- --config=${{ inputs.config || '''''' }}
- --profile=${{ inputs.profile || '''''' }}
- --github-action-output=true
- --local-prefix=${{ inputs.local-prefix }}
- --local-prefix=${{ inputs.local-prefix || '''''' }}
- --threshold-file=${{ inputs.threshold-file }}
- --threshold-package=${{ inputs.threshold-package }}
- --threshold-total=${{ inputs.threshold-total }}
- --badge-file-name=${{ inputs.badge-file-name }}
- --cdn-key=${{ inputs.cdn-key }}
- --cdn-secret=${{ inputs.cdn-secret }}
- --cdn-region=${{ inputs.cdn-region }}
- --cdn-endpoint=${{ inputs.cdn-endpoint }}
- --cdn-file-name=${{ inputs.cdn-file-name }}
- --cdn-bucket-name=${{ inputs.cdn-bucket-name }}
- --badge-file-name=${{ inputs.badge-file-name || '''''' }}
- --cdn-key=${{ inputs.cdn-key || '''''' }}
- --cdn-secret=${{ inputs.cdn-secret || '''''' }}
- --cdn-region=${{ inputs.cdn-region || '''''' }}
- --cdn-endpoint=${{ inputs.cdn-endpoint || '''''' }}
- --cdn-file-name=${{ inputs.cdn-file-name || '''''' }}
- --cdn-bucket-name=${{ inputs.cdn-bucket-name || '''''' }}
- --cdn-force-path-style=${{ inputs.cdn-force-path-style }}
- --git-token=${{ inputs.git-token }}
- --git-repository=${{ inputs.git-repository }}
- --git-branch=${{ inputs.git-branch }}
- --git-file-name=${{ inputs.git-file-name }}
- --git-token=${{ inputs.git-token || '''''' }}
- --git-branch=${{ inputs.git-branch || '''''' }}
- --git-repository=${{ inputs.git-repository || ''''''}}
- --git-file-name=${{ inputs.git-file-name || '''''' }}
branding:
icon: 'code'
color: 'blue'
105 changes: 55 additions & 50 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,17 @@ import (
"github.com/vladopajic/go-test-coverage/v2/pkg/testcoverage"
)

const Version = "v2.7.1"
const (
Version = "v2.7.1"
Name = "go-test-coverage"
)

const (
// default value of string variables passed by CI
ciDefaultString = `''`
// default value of int variables passed by CI
ciDefaultnt = -1
)

type args struct {
ConfigPath string `arg:"-c,--config"`
Expand All @@ -35,89 +45,88 @@ type args struct {
GitFileName string `arg:"--git-file-name"`
}

const (
magicString = `''`
magicInt = -1
)

func newArgs() args {
return args{
ConfigPath: magicString,
Profile: magicString,
LocalPrefix: magicString,
ConfigPath: ciDefaultString,
Profile: ciDefaultString,
LocalPrefix: ciDefaultString,
GithubActionOutput: false,
ThresholdFile: magicInt,
ThresholdPackage: magicInt,
ThresholdTotal: magicInt,
BadgeFileName: magicString,

CDNKey: magicString,
CDNSecret: magicString,
CDNRegion: magicString,
CDNEndpoint: magicString,
CDNFileName: magicString,
CDNBucketName: magicString,
ThresholdFile: ciDefaultnt,
ThresholdPackage: ciDefaultnt,
ThresholdTotal: ciDefaultnt,

// Badge
BadgeFileName: ciDefaultString,

// CDN
CDNKey: ciDefaultString,
CDNSecret: ciDefaultString,
CDNRegion: ciDefaultString,
CDNEndpoint: ciDefaultString,
CDNFileName: ciDefaultString,
CDNBucketName: ciDefaultString,
CDNForcePathStyle: false,

GitToken: magicString,
GitRepository: magicString,
GitBranch: magicString,
GitFileName: magicString,
// Git
GitToken: ciDefaultString,
GitRepository: ciDefaultString,
GitBranch: ciDefaultString,
GitFileName: ciDefaultString,
}
}

func (args) Version() string {
return "go-test-coverage " + Version
return Name + " " + Version
}

//nolint:cyclop,maintidx // relax
func (a *args) overrideConfig(cfg testcoverage.Config) testcoverage.Config {
if !isMagicString(a.Profile) {
if !isCIDefaultString(a.Profile) {
cfg.Profile = a.Profile
}

if a.GithubActionOutput {
cfg.GithubActionOutput = true
}

if !isMagicString(a.LocalPrefix) {
if !isCIDefaultString(a.LocalPrefix) {
cfg.LocalPrefix = a.LocalPrefix
}

if !isMagicInt(a.ThresholdFile) {
if !isCIDefaultnt(a.ThresholdFile) {
cfg.Threshold.File = a.ThresholdFile
}

if !isMagicInt(a.ThresholdPackage) {
if !isCIDefaultnt(a.ThresholdPackage) {
cfg.Threshold.Package = a.ThresholdPackage
}

if !isMagicInt(a.ThresholdPackage) {
if !isCIDefaultnt(a.ThresholdPackage) {
cfg.Threshold.Total = a.ThresholdTotal
}

if !isMagicString(a.BadgeFileName) {
if !isCIDefaultString(a.BadgeFileName) {
cfg.Badge.FileName = a.BadgeFileName
}

if !isMagicString(a.CDNSecret) {
if !isCIDefaultString(a.CDNSecret) {
cfg.Badge.CDN.Secret = a.CDNSecret
cfg.Badge.CDN.Key = escapeMagicString(a.CDNKey)
cfg.Badge.CDN.Region = escapeMagicString(a.CDNRegion)
cfg.Badge.CDN.FileName = escapeMagicString(a.CDNFileName)
cfg.Badge.CDN.BucketName = escapeMagicString(a.CDNBucketName)
cfg.Badge.CDN.Key = escapeCiDefaultString(a.CDNKey)
cfg.Badge.CDN.Region = escapeCiDefaultString(a.CDNRegion)
cfg.Badge.CDN.FileName = escapeCiDefaultString(a.CDNFileName)
cfg.Badge.CDN.BucketName = escapeCiDefaultString(a.CDNBucketName)
cfg.Badge.CDN.ForcePathStyle = a.CDNForcePathStyle

if !isMagicString(a.CDNEndpoint) {
if !isCIDefaultString(a.CDNEndpoint) {
cfg.Badge.CDN.Endpoint = a.CDNEndpoint
}
}

if !isMagicString(a.GitToken) {
if !isCIDefaultString(a.GitToken) {
cfg.Badge.Git.Token = a.GitToken
cfg.Badge.Git.Repository = escapeMagicString(a.GitRepository)
cfg.Badge.Git.Branch = escapeMagicString(a.GitBranch)
cfg.Badge.Git.FileName = escapeMagicString(a.GitFileName)
cfg.Badge.Git.Repository = escapeCiDefaultString(a.GitRepository)
cfg.Badge.Git.Branch = escapeCiDefaultString(a.GitBranch)
cfg.Badge.Git.FileName = escapeCiDefaultString(a.GitFileName)
}

return cfg
Expand Down Expand Up @@ -148,7 +157,7 @@ func readConfig() (testcoverage.Config, error) {
cfg := testcoverage.Config{}

// Load config from file
if !isMagicString(cmdArgs.ConfigPath) {
if !isCIDefaultString(cmdArgs.ConfigPath) {
err := testcoverage.ConfigFromFile(&cfg, cmdArgs.ConfigPath)
if err != nil {
return testcoverage.Config{}, fmt.Errorf("failed loading config from file: %w", err)
Expand All @@ -165,16 +174,12 @@ func readConfig() (testcoverage.Config, error) {
return cfg, nil
}

func isMagicString(v string) bool {
return v == magicString
}
func isCIDefaultString(v string) bool { return v == ciDefaultString }

func isMagicInt(v int) bool {
return v == magicInt
}
func isCIDefaultnt(v int) bool { return v == ciDefaultnt }

func escapeMagicString(v string) string {
if v == magicString {
func escapeCiDefaultString(v string) string {
if v == ciDefaultString {
return ""
}

Expand Down

0 comments on commit 75112d0

Please sign in to comment.