Skip to content

Commit 76818ca

Browse files
committed
try cross tool
cleanup workflow a bit rename test job at runtime bump codecov action add some tier 2 targets put vender and cross flags into matrix
1 parent 0059ed9 commit 76818ca

File tree

2 files changed

+68
-52
lines changed

2 files changed

+68
-52
lines changed

.github/workflows/binary-builds.yml

Lines changed: 60 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -34,53 +34,68 @@ jobs:
3434
include:
3535
- target: aarch64-unknown-linux-gnu
3636
os: ubuntu-latest
37-
## I GIVE UP! For this target, OpenSSL needs to be cross compiled
38-
## which is driven by openssl-sys crate's custom build script...
39-
## Linux users with aarch64 (aka ARM64) using musl C lib can go fish (or build from source).
40-
# - target: aarch64-unknown-linux-musl
41-
# os: ubuntu-latest
37+
vendered: true
38+
cross: true
39+
- target: aarch64-unknown-linux-musl
40+
os: ubuntu-latest
41+
vendered: true
42+
cross: true
4243
- target: x86_64-unknown-linux-gnu
4344
os: ubuntu-latest
45+
vendered: false
46+
cross: false
4447
- target: x86_64-unknown-linux-musl
4548
os: ubuntu-latest
49+
vendered: true
50+
cross: true
51+
- target: arm-unknown-linux-gnueabi
52+
os: ubuntu-latest
53+
vendered: true
54+
cross: true
55+
- target: arm-unknown-linux-gnueabihf
56+
os: ubuntu-latest
57+
vendered: true
58+
cross: true
59+
- target: armv7-unknown-linux-gnueabihf
60+
os: ubuntu-latest
61+
vendered: true
62+
cross: true
63+
- target: powerpc-unknown-linux-gnu
64+
os: ubuntu-latest
65+
vendered: true
66+
cross: true
67+
- target: powerpc64-unknown-linux-gnu
68+
os: ubuntu-latest
69+
vendered: true
70+
cross: true
71+
- target: powerpc64le-unknown-linux-gnu
72+
os: ubuntu-latest
73+
vendered: true
74+
cross: true
75+
- target: s390x-unknown-linux-gnu
76+
os: ubuntu-latest
77+
vendered: true
78+
cross: true
4679
- target: aarch64-apple-darwin
4780
os: macos-latest
81+
vendered: true
82+
cross: false
4883
- target: x86_64-apple-darwin
4984
os: macos-latest
85+
vendered: true
86+
cross: false
5087
- target: x86_64-pc-windows-msvc
5188
os: windows-latest
89+
vendered: false
90+
cross: false
91+
- target: aarch64-pc-windows-msvc
92+
os: windows-latest
93+
vendered: false
94+
cross: false
5295
runs-on: ${{ matrix.os }}
5396
permissions:
5497
contents: write
5598
steps:
56-
- name: Install native OpenSSL on Linux
57-
if: runner.os == 'Linux' && !(startsWith(matrix.target, 'aarch64') || endsWith(matrix.target, 'musl'))
58-
run: sudo apt-get install -y pkg-config libssl-dev
59-
- name: Install GCC for aarch64 (for cross-compiling openssl)
60-
if: runner.os == 'Linux' && startsWith(matrix.target, 'aarch64')
61-
run: |
62-
sudo apt-get update
63-
sudo apt-get install gcc-aarch64-linux-gnu binutils-aarch64-linux-gnu
64-
if [[ "${{matrix.target}}" == *musl ]]; then
65-
sudo apt-get install musl-dev musl-tools
66-
fi
67-
- name: Install musl-gcc (for compiling OpenSSL)
68-
if: matrix.target == 'x86_64-unknown-linux-musl'
69-
run: sudo apt-get install musl-tools
70-
71-
- name: Calculate openssl-vendored
72-
shell: bash
73-
id: is-openssl-vendored
74-
run: |
75-
case "${{ matrix.target }}" in
76-
"aarch64-apple-darwin" | "x86_64-apple-darwin" | "aarch64-unknown-linux-gnu" | "aarch64-unknown-linux-musl" | "x86_64-unknown-linux-musl")
77-
echo "enabled=--features openssl-vendored" >> $GITHUB_OUTPUT
78-
;;
79-
*)
80-
echo "enabled=" >> $GITHUB_OUTPUT
81-
;;
82-
esac
83-
8499
- name: Checkout
85100
uses: actions/checkout@v4
86101

@@ -98,19 +113,19 @@ jobs:
98113
with:
99114
target: ${{ matrix.target }}
100115

101-
# problems with cross-compiling linux with musl
102-
- run: echo "RUSTFLAGS=-D warnings -C target-feature=+crt-static -C link-self-contained=yes" >> "${GITHUB_ENV}"
103-
if: contains(matrix.target, '-linux-musl')
104-
- run: |
105-
echo "CC=aarch64-linux-gnu-gcc" >> "$GITHUB_ENV"
106-
echo "CARGO_TARGET_AARCH64_UNKNOWN_LINUX_MUSL_LINKER=aarch64-linux-gnu-gcc" >> "$GITHUB_ENV"
107-
if: matrix.target == 'aarch64-unknown-linux-musl'
116+
- name: Install cross (cargo cross compiler)
117+
if: matrix.cross
118+
uses: taiki-e/install-action@v2
119+
with:
120+
tool: cross
121+
122+
- name: Build (native)
123+
if: ${{ !matrix.cross }}
124+
run: cargo build --manifest-path cpp-linter-lib/Cargo.toml --release --bin cpp-linter --target ${{ matrix.target }} ${{ matrix.vendered && '--features openssl-vendored' || '' }}
108125

109-
- name: Build
110-
env:
111-
# problems with cross-compiling aarch64 linux with gnu
112-
CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER: /usr/bin/aarch64-linux-gnu-gcc
113-
run: cargo build --manifest-path cpp-linter-lib/Cargo.toml --release --bin cpp-linter --target ${{ matrix.target }} ${{ steps.is-openssl-vendored.outputs.enabled }}
126+
- name: Build (cross)
127+
if: matrix.cross
128+
run: cross build --manifest-path cpp-linter-lib/Cargo.toml --release --bin cpp-linter --target ${{ matrix.target }} ${{ matrix.vendered && '--features openssl-vendored' || '' }}
114129

115130
- name: Prepare artifacts
116131
run: mv target/${{ matrix.target }}/release/cpp-linter${{ runner.os == 'Windows' && '.exe' || '' }} ./cpp-linter-${{ matrix.target }}${{ runner.os == 'Windows' && '.exe' || '' }}

.github/workflows/run-dev-tests.yml

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ env:
2020

2121
jobs:
2222
test:
23+
name: test ${{ matrix.os }} w/ clang v${{ matrix.version }}
2324
strategy:
2425
fail-fast: false
2526
matrix:
@@ -33,12 +34,12 @@ jobs:
3334
- run: rustup component add llvm-tools-preview
3435

3536
# https://docs.rs/openssl/latest/openssl/#automatic
36-
- name: Install OpenSSL (Linux)
37-
if: runner.os == 'Linux'
38-
run: sudo apt-get install -y pkg-config libssl-dev
39-
- name: Install OpenSSL (MacOS)
40-
if: runner.os == 'macOS'
41-
run: brew install openssl@3
37+
# - name: Install OpenSSL (Linux)
38+
# if: runner.os == 'Linux'
39+
# run: sudo apt-get install -y pkg-config libssl-dev
40+
# - name: Install OpenSSL (MacOS)
41+
# if: runner.os == 'macOS'
42+
# run: brew install openssl@3
4243
# - name: Install OpenSSL (Windows)
4344
# if: runner.os == 'Windows'
4445
# run: vcpkg install openssl
@@ -114,7 +115,7 @@ jobs:
114115
run: |
115116
cargo llvm-cov report --lcov --output-path lcov.info
116117
117-
- uses: codecov/codecov-action@v3
118+
- uses: codecov/codecov-action@v4
118119
if: matrix.version == '16' && runner.os == 'Linux'
119120
with:
120121
token: ${{secrets.CODECOV_TOKEN}}

0 commit comments

Comments
 (0)