Skip to content

Commit 577a93b

Browse files
authored
Fix Coverage and Windows builds by installing protoc (#2280)
1 parent ec83638 commit 577a93b

File tree

1 file changed

+68
-61
lines changed

1 file changed

+68
-61
lines changed

.github/workflows/rust.yml

Lines changed: 68 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -50,33 +50,37 @@ jobs:
5050
export RUSTFLAGS="-C debuginfo=0"
5151
cargo test
5252
53-
# Commented out while fixed in https://github.com/apache/arrow-rs/issues/2279
54-
#
55-
# # Check workspace wide compile and test with default features for
56-
# # windows
57-
# windows:
58-
# name: Test on Windows
59-
# runs-on: windows-latest
60-
# steps:
61-
# - uses: actions/checkout@v2
62-
# with:
63-
# submodules: true
64-
# - name: Install protoc with NuGet
65-
# run: |
66-
# nuget.exe install Google.Protobuf -Version 3.21.4 -OutputDirectory d:\\proto
67-
# nuget.exe install Grpc.Tools -Version 2.47.0 -OutputDirectory d:\\proto
68-
# - name: Setup Rust toolchain
69-
# run: |
70-
# rustup toolchain install stable --no-self-update
71-
# rustup default stable
72-
# - name: Run tests
73-
# shell: bash
74-
# run: |
75-
# # do not produce debug symbols to keep memory usage down
76-
# export RUSTFLAGS="-C debuginfo=0"
77-
# # This is where protoc is installed
78-
# export PATH=$PATH:/d/proto/Grpc.Tools.2.47.0/tools/windows_x86
79-
# cargo test
53+
54+
# Check workspace wide compile and test with default features for
55+
# windows
56+
windows:
57+
name: Test on Windows
58+
runs-on: windows-latest
59+
steps:
60+
- uses: actions/checkout@v2
61+
with:
62+
submodules: true
63+
- name: Install protobuf compiler in /d/protoc
64+
shell: bash
65+
run: |
66+
mkdir /d/protoc
67+
cd /d/protoc
68+
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protoc-21.4-win64.zip
69+
unzip protoc-21.4-win64.zip
70+
export PATH=$PATH:/d/protoc/bin
71+
protoc --version
72+
73+
- name: Setup Rust toolchain
74+
run: |
75+
rustup toolchain install stable --no-self-update
76+
rustup default stable
77+
- name: Run tests
78+
shell: bash
79+
run: |
80+
# do not produce debug symbols to keep memory usage down
81+
export RUSTFLAGS="-C debuginfo=0"
82+
export PATH=$PATH:/d/protoc/bin
83+
cargo test
8084
8185
8286
# Run cargo fmt for all crates
@@ -95,37 +99,40 @@ jobs:
9599
- name: Run
96100
run: cargo fmt --all -- --check
97101

98-
# Commented out while fixed in https://github.com/apache/arrow-rs/issues/2279
99-
#
100-
# coverage:
101-
# name: Coverage
102-
# runs-on: ubuntu-latest
103-
# # Note runs outside of a container
104-
# # otherwise we get this error:
105-
# # Failed to run tests: ASLR disable failed: EPERM: Operation not permitted
106-
# steps:
107-
# - uses: actions/checkout@v2
108-
# with:
109-
# submodules: true
110-
# - name: Setup Rust toolchain
111-
# run: |
112-
# rustup toolchain install stable
113-
# rustup default stable
114-
# - name: Install protobuf compiler
115-
# run: |
116-
# sudo apt-get update
117-
# sudo apt-get install -y protobuf-compiler
118-
# - name: Cache Cargo
119-
# uses: actions/cache@v3
120-
# with:
121-
# path: /home/runner/.cargo
122-
# key: cargo-coverage-cache3-
123-
# - name: Run coverage
124-
# run: |
125-
# rustup toolchain install stable
126-
# rustup default stable
127-
# cargo install --version 0.18.2 cargo-tarpaulin
128-
# cargo tarpaulin --all --out Xml
129-
# - name: Report coverage
130-
# continue-on-error: true
131-
# run: bash <(curl -s https://codecov.io/bash)
102+
103+
coverage:
104+
name: Coverage
105+
runs-on: ubuntu-latest
106+
# Note runs outside of a container
107+
# otherwise we get this error:
108+
# Failed to run tests: ASLR disable failed: EPERM: Operation not permitted
109+
steps:
110+
- uses: actions/checkout@v2
111+
with:
112+
submodules: true
113+
- name: Setup Rust toolchain
114+
run: |
115+
rustup toolchain install stable
116+
rustup default stable
117+
- name: Install protobuf compiler in /protoc
118+
run: |
119+
sudo mkdir /protoc
120+
sudo chmod a+rwx /protoc
121+
cd /protoc
122+
curl -LO https://github.com/protocolbuffers/protobuf/releases/download/v21.4/protoc-21.4-linux-x86_64.zip
123+
unzip protoc-21.4-linux-x86_64.zip
124+
- name: Cache Cargo
125+
uses: actions/cache@v3
126+
with:
127+
path: /home/runner/.cargo
128+
key: cargo-coverage-cache3-
129+
- name: Run coverage
130+
run: |
131+
export PATH=$PATH:/protoc/bin
132+
rustup toolchain install stable
133+
rustup default stable
134+
cargo install --version 0.18.2 cargo-tarpaulin
135+
cargo tarpaulin --all --out Xml
136+
- name: Report coverage
137+
continue-on-error: true
138+
run: bash <(curl -s https://codecov.io/bash)

0 commit comments

Comments
 (0)