Compiling Go with python
Some minor notes.

I love the ternary operator and f strings, but...

Here are three ways to express the same thing.  There is the original way, a DRY version of the original way, and a more traditional if/else.  Which is easier to read and understand what is going on?

# variant 1
build_type = f"go build -buildmode=c-shared" if kwargs["buildtype"].lower() == "dll" else "go build -tags exe"

# variant 2
build_type = f"go build {'-buildmode=c-shared' if kwargs['buildtype'].lower() == 'dll' else '-tags exe'}"

# variant 3
if kwargs["buildtype"].lower() == "dll":
    build_type = "go build -buildmode=c-shared"
else:
    build_type = "go build -tags exe"


In this case I would argue that the third variant is MUCH easier to understand what the distinction is between the two build types.  EG: What question is being asked (buildtype) and what is the difference in the result based on the answer.

Environment has a "n" after the "o"

This:

enviroment["CGO_ENABLED"] = "1"


should likely be:

environment["CGO_ENABLED"] = "1"    


Click is the thing.

Not sure this is immediately relevant as a code review, but...

I much prefer click to argparse.  In this simple case there is not likely a huge advantage for Click, but there is little downside.  And if you get comfortable with click and the size of your project increases, I think Click can be quite advantageous.