-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Windows compat tasks #20
Merged
Merged
Changes from 3 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
2c94dca
make binny taskfile parseable on Windows
willmurphyscode df14c0e
enable unit tests to run on Windows
willmurphyscode 13182bb
skip or fix some unit tests on Windows
willmurphyscode 8fb320e
chore: windows compatibility due to open file failures
kzantow 21257d6
Fix and skip more unit tests
willmurphyscode 0e0d123
prevent CRLF normalization of test fixtures
willmurphyscode 880d8db
Enable Windows unit tests
willmurphyscode 9e5eb89
Fix workflow actions yaml syntax
willmurphyscode b0f98e9
set Windows-specific coverage threshold
willmurphyscode File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
import subprocess | ||
import sys | ||
|
||
def go_list_exclude_pattern(owner, project): | ||
exclude_pattern = f"{owner}/{project}/test" | ||
|
||
result = subprocess.run(["go", "list", "./..."], stdout=subprocess.PIPE, text=True, check=True) | ||
|
||
filtered_lines = [line for line in result.stdout.splitlines() if exclude_pattern not in line] | ||
|
||
joined_output = ' '.join(filtered_lines) | ||
|
||
return joined_output | ||
|
||
owner = sys.argv[1] | ||
project = sys.argv[2] | ||
output = go_list_exclude_pattern(owner, project) | ||
print(output) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,6 +2,8 @@ package goinstall | |
|
||
import ( | ||
"fmt" | ||
"os" | ||
"strings" | ||
"testing" | ||
|
||
"github.com/stretchr/testify/assert" | ||
|
@@ -108,6 +110,7 @@ func TestInstaller_InstallTo(t *testing.T) { | |
i.goInstallRunner = tt.fields.goInstallRunner | ||
|
||
got, err := i.InstallTo(tt.args.version, tt.args.destDir) | ||
got = strings.ReplaceAll(got, string(os.PathSeparator), "/") | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This test fails for me because there is no |
||
if !tt.wantErr(t, err, fmt.Sprintf("InstallTo(%v, %v)", tt.args.version, tt.args.destDir)) { | ||
return | ||
} | ||
|
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since we have binny, can we just have it download
grep
(and maybesh
,curl
, and other such missing shell script utilities) instead of making the python scripts?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
My concern is that the utilities won't behave the same even if we make them available. For example
ls
lists files in PowerShell, but the output looks different than on macOS or Linux. We also see elsewhere in this PR thatmkdir -p
doesn't work on Windows, even though there is a mkdir on PATH in PowerShell.In other words, if we keep using a command shell as our scripting environment, we have to worry about the compatibility of every executable the shell invokes. If we use standard library Python, we only have to worry about the cross-platform behavior of Python itself.