From 83f6968cc747c5342600923fd1580c77dfe81be6 Mon Sep 17 00:00:00 2001 From: Thanabodee Charoenpiriyakij Date: Thu, 5 Sep 2024 23:26:08 +0700 Subject: [PATCH] Add support for fetch-depth option When `fetch-depth` is set, it will configure `actions/checkout` fetch depth option. Signed-off-by: Thanabodee Charoenpiriyakij --- .github/workflows/demo-pipeline-1.yml | 2 ++ .github/workflows/demo-pipeline-2.yml | 1 + .github/workflows/demo-pipeline-3.yml | 2 ++ .github/workflows/deploy-docs.yml | 2 ++ go.mod | 6 ++++++ go.sum | 6 ++++++ main.go | 12 +++++++++++- 7 files changed, 30 insertions(+), 1 deletion(-) diff --git a/.github/workflows/demo-pipeline-1.yml b/.github/workflows/demo-pipeline-1.yml index 46b0fef..3afa149 100644 --- a/.github/workflows/demo-pipeline-1.yml +++ b/.github/workflows/demo-pipeline-1.yml @@ -15,6 +15,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: "1" - name: scripts/install-dagger.sh id: install-dagger run: | diff --git a/.github/workflows/demo-pipeline-2.yml b/.github/workflows/demo-pipeline-2.yml index 89628f9..d2dc99e 100644 --- a/.github/workflows/demo-pipeline-2.yml +++ b/.github/workflows/demo-pipeline-2.yml @@ -16,6 +16,7 @@ jobs: - name: Checkout uses: actions/checkout@v4 with: + fetch-depth: "1" sparse-checkout: |- misc scripts diff --git a/.github/workflows/demo-pipeline-3.yml b/.github/workflows/demo-pipeline-3.yml index 0cc4743..c7459fc 100644 --- a/.github/workflows/demo-pipeline-3.yml +++ b/.github/workflows/demo-pipeline-3.yml @@ -9,6 +9,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: "1" - name: scripts/install-dagger.sh id: install-dagger run: | diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml index 69e5596..18641d2 100644 --- a/.github/workflows/deploy-docs.yml +++ b/.github/workflows/deploy-docs.yml @@ -12,6 +12,8 @@ jobs: steps: - name: Checkout uses: actions/checkout@v4 + with: + fetch-depth: "1" - name: scripts/install-dagger.sh id: install-dagger run: | diff --git a/go.mod b/go.mod index 325b767..6652056 100644 --- a/go.mod +++ b/go.mod @@ -24,6 +24,12 @@ require ( require ( dagger.io/dagger v0.12.6 golang.org/x/mod v0.20.0 + mvdan.cc/sh v2.6.4+incompatible +) + +require ( + golang.org/x/crypto v0.24.0 // indirect + golang.org/x/term v0.21.0 // indirect ) require ( diff --git a/go.sum b/go.sum index 3480674..8c6970a 100644 --- a/go.sum +++ b/go.sum @@ -70,6 +70,8 @@ go.opentelemetry.io/proto/otlp v1.3.1 h1:TrMUixzpM0yuc/znrFTP9MMRh8trP93mkCiDVeX go.opentelemetry.io/proto/otlp v1.3.1/go.mod h1:0X1WI4de4ZsLrrJNLAQbFeLCm3T7yBkR0XqQ7niQU+8= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= +golang.org/x/crypto v0.24.0 h1:mnl8DM0o513X8fdIkmyFE/5hTYxbwYOjDS/+rK6qpRI= +golang.org/x/crypto v0.24.0/go.mod h1:Z1PMYSOR5nyMcyAVAIQSKCDwalqy85Aqn1x3Ws4L5DM= golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa h1:FRnLl4eNAQl8hwxVVC17teOw8kdjVDVAiFMtgUdTSRQ= golang.org/x/exp v0.0.0-20231110203233-9a3e6036ecaa/go.mod h1:zk2irFbV9DP96SEBUUAy67IdHUaZuSnrz1n472HUCLE= golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= @@ -81,6 +83,8 @@ golang.org/x/sync v0.7.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/term v0.21.0 h1:WVXCp+/EBEHOj53Rvu+7KiT/iElMrO8ACK16SMZ3jaA= +golang.org/x/term v0.21.0/go.mod h1:ooXLefLobQVslOqselCNF4SxFAaoS6KujMbsGzSDmX0= golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= google.golang.org/genproto/googleapis/api v0.0.0-20240520151616-dc85e6b867a5 h1:P8OJ/WCl/Xo4E4zoe4/bifHpSmmKwARqyqE4nW6J2GQ= @@ -97,3 +101,5 @@ gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EV gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +mvdan.cc/sh v2.6.4+incompatible h1:eD6tDeh0pw+/TOTI1BBEryZ02rD2nMcFsgcvde7jffM= +mvdan.cc/sh v2.6.4+incompatible/go.mod h1:IeeQbZq+x2SUGBensq/jge5lLQbS3XT2ktyp3wrt4x8= diff --git a/main.go b/main.go index e71e78d..a65365e 100644 --- a/main.go +++ b/main.go @@ -14,6 +14,7 @@ import ( "fmt" "regexp" "sort" + "strconv" "strings" "github.com/shykes/gha/internal/dagger" @@ -200,6 +201,10 @@ func (m *Gha) WithPipeline( // Example: ["src", "tests", "Dockerfile"] // +optional sparseCheckout []string, + // Number of commit to fetch. + // +optional + // +default="1" + fetchDepth int, // (DEPRECATED) allow this pipeline to be manually "dispatched" // +optional // +deprecated @@ -308,6 +313,7 @@ func (m *Gha) WithPipeline( Module: module, Secrets: secrets, SparseCheckout: sparseCheckout, + FetchDepth: fetchDepth, LFS: lfs, Settings: m.Settings, } @@ -523,6 +529,8 @@ type Pipeline struct { // +private SparseCheckout []string // +private + FetchDepth int + // +private LFS bool // +private Settings Settings @@ -657,7 +665,9 @@ func (p *Pipeline) checkoutStep() JobStep { step := JobStep{ Name: "Checkout", Uses: "actions/checkout@v4", - With: map[string]string{}, + With: map[string]string{ + "fetch-depth": strconv.Itoa(p.FetchDepth), + }, } if p.SparseCheckout != nil { // Include common dagger paths in the checkout, to make