Skip to content

Commit 2456a16

Browse files
Generate cross compiled release files and make sure that release remote files have the right hashes (#44)
* Generate cross compiled release files and make sure that release remote files have the right hashes * Fixes * Bump plz * Fix
1 parent 4de7173 commit 2456a16

File tree

15 files changed

+161
-20
lines changed

15 files changed

+161
-20
lines changed

.github/workflows/plugin.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,10 @@ jobs:
2828
steps:
2929
- name: Checkout code
3030
uses: actions/checkout@v2
31-
- name: build
32-
run: ./pleasew build //tools/...
31+
- name: Test
32+
run: ./pleasew test //test/release_remote_files:please_pex_remote_hashes
33+
- name: Build
34+
run: ./pleasew build //package:release_files
3335
- name: Release
3436
env:
3537
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

.plzconfig

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
[Please]
2-
Version = >=16.17.0
2+
Version = >=16.19.0
3+
4+
[Build]
5+
hashcheckers = sha256
36

47
[Parse]
58
PreloadBuildDefs = test/build_defs/test.build_defs
@@ -21,6 +24,7 @@ DefaultValue = python3
2124

2225
[PluginConfig "pex_tool"]
2326
ConfigKey = PexTool
27+
; Release artifact of //tools/please_pex:pex_main.
2428
DefaultValue = //tools:please_pex
2529

2630
[PluginConfig "interpreter_options"]
@@ -83,3 +87,4 @@ Optional = true
8387
[featureflags]
8488
PythonWheelHashing = true
8589
ExcludePythonRules = true
90+
SingleSHA1Hash = true

BUILD

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1+
subinclude("//build_defs:version")
2+
13
filegroup(
24
name = "pleasew",
35
srcs = ["pleasew"],
46
binary = True,
57
test_only = True,
68
visibility = ["PUBLIC"],
79
)
10+
11+
version(name = "version")
12+

build_defs/BUILD

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,30 @@
1+
filegroup(
2+
name = "archs",
3+
srcs = ["archs.build_defs"],
4+
visibility = ["PUBLIC"],
5+
)
6+
17
filegroup(
28
name = "python",
39
srcs = ["python.build_defs"],
410
visibility = ["PUBLIC"],
511
)
612

13+
filegroup(
14+
name = "version",
15+
srcs = ["version.build_defs"],
16+
visibility = ["PUBLIC"],
17+
)
18+
719
filegroup(
820
name = "multiversion_wheel",
921
srcs = ["multiversion_wheel.build_defs"],
1022
visibility = ["//third_party/..."],
1123
)
24+
25+
filegroup(
26+
name = "release_file",
27+
srcs = ["release_file.build_defs"],
28+
visibility = ["//package/..."],
29+
)
30+

build_defs/archs.build_defs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
SUPPORTED_ARCHS = [
2+
"darwin_amd64",
3+
"darwin_arm64",
4+
"freebsd_amd64",
5+
"linux_amd64",
6+
"linux_arm64",
7+
]

build_defs/release_file.build_defs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
subinclude("//:version")
2+
3+
def release_file(name:str, file_target:str, arch:str):
4+
return genrule(
5+
name = f"{name}_{arch}",
6+
srcs = [f"///{arch}" + canonicalise(file_target)],
7+
outs = [f"{name}-{VERSION}-{arch}"],
8+
cmd = "mv $SRC $OUT",
9+
labels = [f"release-file:{name}"],
10+
)
11+

build_defs/version.build_defs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
def version(name:str, version_file:str="VERSION", visibility:list=["PUBLIC"]):
2+
return genrule(
3+
name = name,
4+
srcs = [version_file],
5+
outs = [f"{name}.build_defs"],
6+
cmd = "echo VERSION = \\\"$(cat $SRCS)\\\" > $OUT",
7+
visibility = visibility,
8+
)
9+

package/BUILD

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
export_file(
2+
name = "files",
3+
src = "files.build_defs",
4+
visibility = ["PUBLIC"],
5+
)
6+
7+
subinclude(":files", "//build_defs:release_file", "//build_defs:archs")
8+
9+
filegroup(
10+
name = "release_files",
11+
srcs = [
12+
release_file(name, target, arch)
13+
for name, target in RELEASE_FILES.items()
14+
for arch in SUPPORTED_ARCHS
15+
],
16+
labels = ["hlink:plz-out/package"],
17+
)
18+

package/files.build_defs

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
RELEASE_FILES = {
2+
"please_pex": "//tools/please_pex:pex_main",
3+
}
4+

test/build_defs/BUILD

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export_file(
2+
name = "release_remote_file",
3+
src = "release_remote_file.build_defs",
4+
visibility = ["//test/..."],
5+
)

0 commit comments

Comments
 (0)