Skip to content

Commit 4769896

Browse files
committed
added explicit build targets for each arch
removed PHONY alias added wildcard for .go files updated security workflow to use explicit build target vs old alias
1 parent 2a40050 commit 4769896

File tree

2 files changed

+61
-12
lines changed

2 files changed

+61
-12
lines changed

Makefile

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,36 @@ upload:
2727

2828
TAG=$(shell git describe --always)
2929

30-
build/linux/amd64:
30+
# Individual build targets for each OS/arch combination
31+
bin/code-marketplace-mac-amd64: $(wildcard **/*.go) go.mod go.sum
3132
mkdir -p bin
32-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-linux-amd64 ./cmd/marketplace/main.go
33-
.PHONY: build/linux/amd64
34-
35-
build:
36-
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-mac-amd64 ./cmd/marketplace/main.go
37-
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-mac-arm64 ./cmd/marketplace/main.go
38-
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-linux-amd64 ./cmd/marketplace/main.go
39-
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-linux-arm64 ./cmd/marketplace/main.go
40-
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-windows-amd64 ./cmd/marketplace/main.go
41-
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o bin/code-marketplace-windows-arm64 ./cmd/marketplace/main.go
33+
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o $@ ./cmd/marketplace/main.go
34+
35+
bin/code-marketplace-mac-arm64: $(wildcard **/*.go) go.mod go.sum
36+
mkdir -p bin
37+
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o $@ ./cmd/marketplace/main.go
38+
39+
bin/code-marketplace-linux-amd64: $(wildcard **/*.go) go.mod go.sum
40+
mkdir -p bin
41+
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o $@ ./cmd/marketplace/main.go
42+
43+
bin/code-marketplace-linux-arm64: $(wildcard **/*.go) go.mod go.sum
44+
mkdir -p bin
45+
CGO_ENABLED=0 GOOS=linux GOARCH=arm64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o $@ ./cmd/marketplace/main.go
46+
47+
bin/code-marketplace-windows-amd64: $(wildcard **/*.go) go.mod go.sum
48+
mkdir -p bin
49+
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o $@ ./cmd/marketplace/main.go
50+
51+
bin/code-marketplace-windows-arm64: $(wildcard **/*.go) go.mod go.sum
52+
mkdir -p bin
53+
CGO_ENABLED=0 GOOS=windows GOARCH=arm64 go build -ldflags "-X github.com/coder/code-marketplace/buildinfo.tag=$(TAG)" -o $@ ./cmd/marketplace/main.go
54+
55+
# Main build target - builds all platforms
56+
build: bin/code-marketplace-mac-amd64 \
57+
bin/code-marketplace-mac-arm64 \
58+
bin/code-marketplace-linux-amd64 \
59+
bin/code-marketplace-linux-arm64 \
60+
bin/code-marketplace-windows-amd64 \
61+
bin/code-marketplace-windows-arm64
4262
.PHONY: build

README.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,35 @@ This marketplace reads extensions from file storage and provides an API for
1313
editors to consume. It does not have a frontend or any mechanisms for extension
1414
authors to add or update extensions in the marketplace.
1515

16+
## Development
17+
18+
### Requirements
19+
20+
- Go 1.21 or later
21+
- GNU Make 4.3 or later (for recursive glob support in build targets)
22+
23+
### Building from source
24+
25+
Build all platform binaries:
26+
27+
```console
28+
make build
29+
```
30+
31+
Build a specific platform:
32+
33+
```console
34+
make bin/code-marketplace-linux-amd64
35+
```
36+
37+
Available targets:
38+
- `bin/code-marketplace-mac-amd64`
39+
- `bin/code-marketplace-mac-arm64`
40+
- `bin/code-marketplace-linux-amd64`
41+
- `bin/code-marketplace-linux-arm64`
42+
- `bin/code-marketplace-windows-amd64`
43+
- `bin/code-marketplace-windows-arm64`
44+
1645
## Deployment
1746

1847
The marketplace is a single binary. Deployment involves running the binary,
@@ -219,7 +248,7 @@ using code-marketplace with VS Code and VSCodium:
219248

220249
- [VSCodium](https://github.com/VSCodium/vscodium/blob/master/docs/index.md#howto-switch-marketplace)
221250

222-
```
251+
```console
223252
export VSCODE_GALLERY_SERVICE_URL="https://<domain>/api
224253
export VSCODE_GALLERY_ITEM_URL="https://<domain>/item"
225254
# Or set a product.json file in `~/.config/VSCodium/product.json`

0 commit comments

Comments
 (0)