Skip to content

refactor: switch to quick_xml library (#101) #343

refactor: switch to quick_xml library (#101)

refactor: switch to quick_xml library (#101) #343

Workflow file for this run

name: Binary builds
permissions:
contents: read
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
defaults:
run:
shell: bash
jobs:
create-assets:
name: ${{ matrix.target }}
strategy:
fail-fast: false
matrix:
include:
- target: aarch64-unknown-linux-gnu
os: ubuntu-latest
vendered: true
cross: true
- target: aarch64-unknown-linux-musl
os: ubuntu-latest
vendered: true
cross: true
- target: x86_64-unknown-linux-gnu
os: ubuntu-latest
vendered: false
cross: false
- target: x86_64-unknown-linux-musl
os: ubuntu-latest
vendered: true
cross: true
- target: arm-unknown-linux-gnueabi
os: ubuntu-latest
vendered: true
cross: true
- target: arm-unknown-linux-gnueabihf
os: ubuntu-latest
vendered: true
cross: true
- target: armv7-unknown-linux-gnueabihf
os: ubuntu-latest
vendered: true
cross: true
- target: powerpc-unknown-linux-gnu
os: ubuntu-latest
vendered: true
cross: true
- target: powerpc64-unknown-linux-gnu
os: ubuntu-latest
vendered: true
cross: true
- target: powerpc64le-unknown-linux-gnu
os: ubuntu-latest
vendered: true
cross: true
- target: s390x-unknown-linux-gnu
os: ubuntu-latest
vendered: true
cross: true
- target: aarch64-apple-darwin
os: macos-latest
vendered: true
cross: false
- target: x86_64-apple-darwin
os: macos-latest
vendered: true
cross: false
- target: x86_64-pc-windows-msvc
os: windows-latest
vendered: false
cross: false
- target: aarch64-pc-windows-msvc
os: windows-latest
vendered: false
cross: false
runs-on: ${{ matrix.os }}
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
target: ${{ matrix.target }}
- name: Install cross (cargo cross compiler)
if: matrix.cross
uses: taiki-e/install-action@v2
with:
tool: cross
- name: Build
run: >-
${{ matrix.cross && 'cross' || 'cargo '}}
build
--manifest-path cpp-linter/Cargo.toml
--bin cpp-linter
--release
--target ${{ matrix.target }}
${{ matrix.vendered && '--features openssl-vendored' || '' }}
- name: Prepare artifacts
run: mv target/${{ matrix.target }}/release/cpp-linter${{ runner.os == 'Windows' && '.exe' || '' }} ./cpp-linter-${{ matrix.target }}${{ runner.os == 'Windows' && '.exe' || '' }}
- 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:
contents: write
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Install Rust
run: rustup update stable --no-self-update
- uses: actions/setup-python@v5
with:
python-version: 3.x
- name: Download built assets
uses: actions/download-artifact@v4
with:
pattern: cpp-linter-*
path: dist
merge-multiple: true
- name: Create a Github Release
env:
GH_TOKEN: ${{ github.token }}
run: |
files=$(ls dist/cpp-linter*)
gh release upload "${{ github.ref_name }}" $files
- run: cargo publish -p cpp-linter
env:
CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}