Skip to content

Commit de523cb

Browse files
Merge pull request #68 from multiversx/update-rust-sc-meta
Update rust and sc-meta
2 parents 35da985 + 60be0b8 commit de523cb

7 files changed

Lines changed: 26 additions & 46 deletions

File tree

.github/workflows/tests.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ jobs:
1010
runs-on: ubuntu-latest
1111
steps:
1212
- name: Check out the repo
13-
uses: actions/checkout@v2
13+
uses: actions/checkout@v3
1414

1515
- name: Set up Docker Buildx
1616
uses: docker/setup-buildx-action@v2
@@ -32,7 +32,7 @@ jobs:
3232
python ./integration_tests/test_previous_builds_are_reproducible.py --selected-builds "a.1" "a.2" "a.3"
3333
3434
- name: Save artifacts
35-
uses: actions/upload-artifact@v3
35+
uses: actions/upload-artifact@v4
3636
with:
3737
name: testdata_output
3838
path: |

Dockerfile

Lines changed: 4 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,8 @@
11
FROM ubuntu:22.04
22

33
# Constants
4-
ARG BUILDER_NAME="multiversx/sdk-rust-contract-builder:v8.0.1"
5-
ARG VERSION_RUST="1.78.0"
6-
ARG VERSION_BINARYEN="version_112"
7-
ARG DOWNLOAD_URL_BINARYEN="https://github.com/WebAssembly/binaryen/releases/download/${VERSION_BINARYEN}/binaryen-${VERSION_BINARYEN}-x86_64-linux.tar.gz"
8-
ARG VERSION_SC_META="0.50.3"
4+
ARG VERSION_RUST="1.85.0"
5+
ARG VERSION_SC_META="0.57.0"
96
ARG TARGETPLATFORM
107

118
# Install system dependencies
@@ -17,14 +14,6 @@ RUN apt-get update --fix-missing && apt-get install -y \
1714
pkg-config \
1815
libssl-dev
1916

20-
# Install binaryen
21-
RUN wget -O binaryen.tar.gz ${DOWNLOAD_URL_BINARYEN} && \
22-
tar -xf binaryen.tar.gz && \
23-
mkdir -p /binaryen && \
24-
cp binaryen-${VERSION_BINARYEN}/bin/wasm-opt /binaryen && \
25-
rm -rf binaryen.tar.gz binaryen-${VERSION_BINARYEN} && \
26-
chmod -R 777 /binaryen
27-
2817
# Install Python dependencies
2918
RUN pip3 install toml==0.10.2 semver==3.0.0-dev.4
3019

@@ -36,19 +25,17 @@ RUN wget -O rustup.sh https://sh.rustup.rs && \
3625
chmod -R 777 /rust && \
3726
rm -rf /rust/registry
3827

39-
# Install sc-tool
28+
# Install sc-meta tool
4029
RUN PATH="/rust/bin:${PATH}" CARGO_HOME=/rust RUSTUP_HOME=/rust cargo install multiversx-sc-meta --version ${VERSION_SC_META} --locked && \
4130
rm -rf /rust/registry
4231

4332
COPY "multiversx_sdk_rust_contract_builder" "/multiversx_sdk_rust_contract_builder"
4433

45-
ENV PATH="/rust/bin:/binaryen:${PATH}"
34+
ENV PATH="/rust/bin:${PATH}"
4635
ENV CARGO_HOME="/rust"
4736
ENV RUSTUP_HOME="/rust"
4837
ENV PYTHONPATH=/
49-
ENV BUILD_METADATA_BUILDER_NAME=${BUILDER_NAME}
5038
ENV BUILD_METADATA_VERSION_RUST=${VERSION_RUST}
51-
ENV BUILD_METADATA_VERSION_BINARYEN=${VERSION_BINARYEN}
5239
ENV BUILD_METADATA_VERSION_SC_META=${VERSION_SC_META}
5340
ENV BUILD_METADATA_TARGETPLATFORM=${TARGETPLATFORM}
5441

@@ -62,5 +49,4 @@ ENTRYPOINT ["python", "/multiversx_sdk_rust_contract_builder/main.py", \
6249

6350
LABEL frozen="yes"
6451
LABEL rust=${VERSION_RUST}
65-
LABEL wasm-opt-binaryen=${VERSION_BINARYEN}
6652
LABEL sc_meta=${VERSION_SC_META}

integration_tests/previous_builds.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,13 @@ def __init__(self, name: str,
5454
),
5555
PreviousBuild(
5656
name="a.3",
57-
project_archive_url="https://github.com/multiversx/mx-sovereign-sc/archive/80599388b9358842b50ea216a622d514e15df374.zip",
58-
project_relative_path_in_archive="mx-sovereign-sc-80599388b9358842b50ea216a622d514e15df374",
57+
project_archive_url="https://github.com/multiversx/mx-sovereign-sc/archive/e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac.zip",
58+
project_relative_path_in_archive="mx-sovereign-sc-e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac",
5959
packaged_src_url=None,
6060
contract_name=None,
6161
expected_code_hashes={
62-
"esdt-safe": "08d0ba0f0931b9aa71946a543efc29da6e66d5247e911ce6595bea6a13a62cb4",
63-
"fee-market": "e6efffc7723e1b38c9cdc41f3c2827acbcaed86c73795d09635d78b685c45576"
62+
"sov-esdt-safe": "34f6479356b2621328bbfac0f0e0833a55a8bd1948b5a0e2500fd66291f0ad88",
63+
"fee-market": "0b81078e61efd692ebb3f83b437da9cf83ffff7843aeb0a66a71b5ddff3b2fb2"
6464
},
6565
docker_image="sdk-rust-contract-builder:next"
6666
),

integration_tests/test_basic.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,10 @@
66
from multiversx_sdk_rust_contract_builder.packaged_source_code import \
77
PackagedSourceCode
88

9-
DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/80599388b9358842b50ea216a622d514e15df374.zip"
10-
DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-80599388b9358842b50ea216a622d514e15df374"
11-
DEFAULT_CONTRACT_NAME = "esdt-safe"
9+
DEFAULT_PROJECT_ARCHIVE_URL = "https://github.com/multiversx/mx-sovereign-sc/archive/068151049f75aafa3e92aa87bbb69a95bf009316.zip"
10+
DEFAULT_PROJECT_ARCHIVE_PAYLOAD = "mx-sovereign-sc-068151049f75aafa3e92aa87bbb69a95bf009316"
11+
DEFAULT_CONTRACT_NAME = "sov-esdt-safe"
12+
DEFAULT_CONTRACT_VERSION = "0.1.0"
1213

1314

1415
def test_with_symlinks():
@@ -58,11 +59,13 @@ def test_has_correct_packaged_source():
5859

5960
assert code == 0
6061

61-
packaged_source_code = PackagedSourceCode.from_file(output_folder / DEFAULT_CONTRACT_NAME / f"{DEFAULT_CONTRACT_NAME}-0.0.0.source.json")
62+
packaged_source_code = PackagedSourceCode.from_file(output_folder / DEFAULT_CONTRACT_NAME / f"{DEFAULT_CONTRACT_NAME}-{DEFAULT_CONTRACT_VERSION}.source.json")
6263

6364
for entry in packaged_source_code.entries:
6465
assert not str(entry.path).startswith("target"), f"Unexpected file: {entry.path}"
65-
assert entry.is_test_file == ("test" in str(entry.path)), f"Unexpected is_test_file marker for: {entry.path}"
66+
67+
is_test_file = ("tests" in str(entry.path)) or ("test_" in str(entry.path)) or ("_test" in str(entry.path))
68+
assert entry.is_test_file == is_test_file, f"Unexpected is_test_file marker for: {entry.path}"
6669

6770

6871
def test_fail_if_contract_cargo_lock_is_missing():
@@ -74,7 +77,7 @@ def test_fail_if_contract_cargo_lock_is_missing():
7477
output_folder.mkdir(parents=True, exist_ok=True)
7578

7679
# Remove a (required) Cargo.lock file
77-
(workspace / DEFAULT_CONTRACT_NAME / "wasm" / "Cargo.lock").unlink()
80+
(workspace / DEFAULT_CONTRACT_NAME / f"wasm-{DEFAULT_CONTRACT_NAME}" / "Cargo.lock").unlink()
7881

7982
(code, _, stderr) = run_docker(
8083
project_path=workspace,

integration_tests/test_project_folder_and_packaged_src_are_equivalent.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,15 @@
99

1010
def main(cli_args: List[str]):
1111
repository_url = "https://github.com/multiversx/mx-sovereign-sc"
12-
commit = "80599388b9358842b50ea216a622d514e15df374"
13-
archve_subfolder = f"mx-sovereign-sc-{commit}"
14-
project_path = download_project_repository(f"{repository_url}/archive/{commit}.zip", archve_subfolder)
15-
project_path = project_path / archve_subfolder
12+
commit = "e9a4f1fc8d963d48cbce0fb0cf673621cc0832ac"
13+
archive_subfolder = f"mx-sovereign-sc-{commit}"
14+
project_path = download_project_repository(f"{repository_url}/archive/{commit}.zip", archive_subfolder)
15+
project_path = project_path / archive_subfolder
1616

1717
check_project_folder_and_packaged_src_are_equivalent(
1818
project_path=project_path,
1919
parent_output_folder=PARENT_OUTPUT_FOLDER,
20-
contracts=["esdt-safe", "fee-market"],
20+
contracts=["sov-esdt-safe", "fee-market"],
2121
)
2222

2323

multiversx_sdk_rust_contract_builder/build_metadata.py

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,33 +5,25 @@
55
class BuildMetadata:
66
def __init__(
77
self,
8-
builder_name: str,
98
version_rust: str,
10-
version_binaryen: str,
119
version_sc_meta: str,
1210
target_platform: str,
1311
):
14-
self.builder_name = builder_name
1512
self.version_rust = version_rust
16-
self.version_binaryen = version_binaryen
1713
self.version_sc_meta = version_sc_meta
1814
self.target_platform = target_platform
1915

2016
@classmethod
2117
def from_env(cls) -> 'BuildMetadata':
2218
return BuildMetadata(
23-
builder_name=os.environ["BUILD_METADATA_BUILDER_NAME"],
2419
version_rust=os.environ["BUILD_METADATA_VERSION_RUST"],
25-
version_binaryen=os.environ["BUILD_METADATA_VERSION_BINARYEN"],
2620
version_sc_meta=os.environ["BUILD_METADATA_VERSION_SC_META"],
2721
target_platform=os.environ["BUILD_METADATA_TARGETPLATFORM"],
2822
)
2923

3024
def to_dict(self) -> Dict[str, str]:
3125
return {
32-
"builderName": self.builder_name,
3326
"versionRust": self.version_rust,
34-
"versionBinaryen": self.version_binaryen,
3527
"versionScTool": self.version_sc_meta,
3628
"targetPlatform": self.target_platform,
3729
}

multiversx_sdk_rust_contract_builder/builder.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -138,9 +138,8 @@ def clean_contract(folder: Path, clean_output: bool = True):
138138

139139
def build_contract(build_folder: Path, output_folder: Path, cargo_target_dir: Path, no_wasm_opt: bool):
140140
cargo_output_folder = build_folder / "output"
141-
meta_folder = build_folder / "meta"
142141

143-
args = ["cargo", "run", "build"]
142+
args = ["sc-meta", "all", "build"]
144143
args.extend(["--target-dir", str(cargo_target_dir)])
145144
args.extend(["--no-wasm-opt"] if no_wasm_opt else [])
146145

@@ -156,7 +155,7 @@ def build_contract(build_folder: Path, output_folder: Path, cargo_target_dir: Pa
156155
custom_env["CARGO_NET_GIT_FETCH_WITH_CLI"] = "true"
157156

158157
logging.info(f"Building: {args}")
159-
return_code = subprocess.run(args, cwd=meta_folder, env=custom_env).returncode
158+
return_code = subprocess.run(args, cwd=build_folder, env=custom_env).returncode
160159
if return_code != 0:
161160
raise ErrKnown(f"Failed to build contract {build_folder}. Return code: {return_code}.")
162161

0 commit comments

Comments
 (0)