Skip to content

feat: delegate vendoring of OpenSSL to git2 dependency tree #473

feat: delegate vendoring of OpenSSL to git2 dependency tree

feat: delegate vendoring of OpenSSL to git2 dependency tree #473

Workflow file for this run

name: Binary builds
on:
push:
branches: [main]
paths:
- cpp-linter/src/**
- cpp-linter/Cargo.toml
- Cargo.toml
- Cargo.lock
tags:
- v*
pull_request:
branches: [main]
paths:
- cpp-linter/src/**
- cpp-linter/Cargo.toml
- Cargo.toml
- Cargo.lock
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: 1
permissions: {}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
jobs:
create-assets:
name: ${{ matrix.target }}
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
vendored: true
cross: true
- target: aarch64-unknown-linux-musl
os: ubuntu-latest
vendored: true
cross: true
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
vendored: false
cross: false
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
vendored: true
cross: true
- target: arm-unknown-linux-gnueabi
os: ubuntu-latest
vendored: true
cross: true
- target: arm-unknown-linux-gnueabihf
os: ubuntu-latest
vendored: true
cross: true
- target: armv7-unknown-linux-gnueabihf
os: ubuntu-latest
vendored: true
cross: true
- target: powerpc-unknown-linux-gnu
os: ubuntu-latest
vendored: true
cross: true
- target: powerpc64-unknown-linux-gnu
os: ubuntu-latest
vendored: true
cross: true
- target: powerpc64le-unknown-linux-gnu
os: ubuntu-latest
vendored: true
cross: true
- target: s390x-unknown-linux-gnu
os: ubuntu-latest
vendored: true
cross: true
- target: aarch64-apple-darwin
os: macos-latest
vendored: true
cross: false
- target: x86_64-apple-darwin
os: macos-latest
vendored: true
cross: false
- target: x86_64-pc-windows-msvc
os: windows-latest
vendored: false
cross: false
- target: aarch64-pc-windows-msvc
os: windows-latest
vendored: false
cross: false
runs-on: ${{ matrix.os }}
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v5
with:
persist-credentials: false
- name: Setup Rust
shell: bash
env:
RS_TARGET: ${{ matrix.target }}
run: |-
rustup update stable --no-self-update
rustup target add ${RS_TARGET}
- name: Install cargo-binstall
if: matrix.cross
uses: cargo-bins/cargo-binstall@a66119fbb1c952daba62640c2609111fe0803621 # v1.15.7
env:
GITHUB_TOKEN: ${{ github.token }}
- name: Install cross (cargo cross compiler)
if: matrix.cross
env:
GITHUB_TOKEN: ${{ github.token }}
run: cargo binstall -y cross
- name: Build
run: >-
${{ matrix.cross && 'cross' || 'cargo '}}
build
--manifest-path cpp-linter/Cargo.toml
--bin cpp-linter
--release
--target ${{ matrix.target }}
${{ matrix.vendored && '--features openssl-vendored' || '' }}
- name: Prepare artifacts (unix)
if: runner.os != 'Windows'
shell: bash
run: |-
tgt="cpp-linter"
mv "target/${{ matrix.target }}/release/${tgt}" "${tgt}"
arc_name="cpp-linter-${{ matrix.target }}.tar.gz"
tar -a -c -v -z -f "${arc_name}" ${tgt} LICENSE
- name: Prepare artifacts (windows)
if: runner.os == 'Windows'
shell: pwsh
# `tar.exe` in powershell is different from `tar` in bash.
# need to use `tar.exe` in powershell to create a valid zip file.
run: |-
$tgt = "cpp-linter.exe"
mv "target/${{ matrix.target }}/release/${tgt}" "${tgt}"
$arc_name = "cpp-linter-${{ matrix.target }}.zip"
tar -a -c -v -f "${arc_name}" ${tgt} LICENSE
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: cpp-linter-${{ matrix.target }}
path: cpp-linter-${{ matrix.target }}*
if-no-files-found: error
publish:
if: startswith(github.ref, 'refs/tags')
runs-on: ubuntu-latest
needs: [create-assets]
permissions:
id-token: write
contents: write
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- name: Install Rust
run: rustup update stable --no-self-update
- uses: actions/setup-python@v6
with:
python-version: 3.x
- name: Download built assets
uses: actions/download-artifact@v5
with:
pattern: cpp-linter-*
path: dist
merge-multiple: true
- name: Create a Github Release
env:
GH_TOKEN: ${{ github.token }}
GIT_REF: ${{ github.ref_name }}
run: |
files=$(ls dist/cpp-linter*)
gh release upload "$GIT_REF" $files
- name: Establish provenance
id: auth
uses: rust-lang/crates-io-auth-action@e919bc7605cde86df457cf5b93c5e103838bd879 # v1.0.1
- name: Publish package
env:
CARGO_REGISTRY_TOKEN: ${{ steps.auth.outputs.token }}
run: cargo publish -p cpp-linter