Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 0 additions & 5 deletions .execs/tools.flow
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,6 @@ executables:
echo "goreleaser is not installed. Installing..."
go install github.com/goreleaser/goreleaser/v2@v2.12.5
fi
- cmd: |
if ! command -v golangci-lint &> /dev/null; then
echo "golangci-lint is not installed. Installing..."
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s v2.5.0
fi
- cmd: |
if ! command -v ginkgo &> /dev/null; then
echo "ginkgo is not installed. Installing..."
Expand Down
25 changes: 16 additions & 9 deletions .execs/validate.flow
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,20 @@ executables:
- cmd: go fmt ./...
- cmd: go mod tidy
- cmd: |
if ! command -v golangci-lint &> /dev/null; then
echo "Installing golangci-lint..."
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/HEAD/install.sh | sh -s v2.5.0
export PATH="$PATH:./bin"
fi
set -euo pipefail

# go run builds the linter with this repo's toolchain, so its language version always
# matches the go directive in go.mod. A prebuilt release binary carries whatever Go
# upstream built it with, and golangci-lint refuses to run once that trails the
# directive. This also pins one version for CI and local runs alike, rather than
# deferring to whatever happens to be on PATH.
lint="go run github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.5.0"

if [ "$CI" = "true" ]; then
if [ "${CI:-}" = "true" ]; then
echo "Running golangci-lint with sarif output..."
golangci-lint run ./... --fix --output.sarif.path lint.sarif --output.text.path stdout
$lint run ./... --fix --output.sarif.path lint.sarif --output.text.path stdout
else
golangci-lint run ./... --fix
$lint run ./... --fix
fi

- verb: scan
Expand All @@ -82,12 +85,16 @@ executables:
exec:
dir: //
cmd: |
# Without this, a failed install leaves the scan to run a missing binary and the step
# still "succeeds" — CI then fails two steps later on an empty SARIF file.
set -euo pipefail

if ! command -v govulncheck &> /dev/null; then
echo "Installing govulncheck..."
go install golang.org/x/vuln/cmd/govulncheck@latest
fi

if [ "$CI" = "true" ]; then
if [ "${CI:-}" = "true" ]; then
govulncheck -format sarif ./... > govuln.sarif
echo "Security scan completed. Results saved to govuln.sarif"
else
Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
# Build the flow under review and run every task with it, so CI exercises
# the code as it would land on main rather than the released CLI.
- name: Build flow
Expand All @@ -47,7 +47,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
- name: Set up Python
uses: actions/setup-python@v7
with:
Expand Down Expand Up @@ -78,7 +78,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
- name: Set up Python
uses: actions/setup-python@v7
with:
Expand Down Expand Up @@ -134,7 +134,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
- name: Install mockgen
run: go install go.uber.org/mock/mockgen@v0.4.0
# Build the flow under review and run every task with it, so CI exercises
Expand Down Expand Up @@ -167,7 +167,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
# Build the flow under review and run every task with it, so CI exercises
# the code as it would land on main rather than the released CLI. The
# bootstrap binary lives in ./bin; `build binary` writes its own to .bin.
Expand Down Expand Up @@ -200,7 +200,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
- name: Set up Python
uses: actions/setup-python@v7
with:
Expand All @@ -222,7 +222,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
# Build the flow under review and run every task with it, so CI exercises
# the code as it would land on main rather than the released CLI.
- name: Build flow
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
- name: Initialize CodeQL
uses: github/codeql-action/init@v4.37.4
with:
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
- name: Set up QEMU
uses: docker/setup-qemu-action@v4
- name: Set up Docker Buildx
Expand Down
10 changes: 5 additions & 5 deletions .github/workflows/windows-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
cache: true
- name: Set up Python
uses: actions/setup-python@v7
Expand Down Expand Up @@ -62,7 +62,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
cache: true
- name: Set up Python
uses: actions/setup-python@v7
Expand Down Expand Up @@ -103,7 +103,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
cache: true
- name: Build flow binary
uses: flowexec/action@v1
Expand All @@ -127,7 +127,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
cache: true
- name: Download built binary
uses: actions/download-artifact@v8
Expand Down Expand Up @@ -159,7 +159,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v7
with:
go-version: "1.25.x"
go-version-file: go.mod
cache: true
- name: Set up Python
uses: actions/setup-python@v7
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/flowexec/flow/v2

go 1.25.8
go 1.26.0

require (
charm.land/bubbletea/v2 v2.0.9
Expand Down
Loading