Skip to content

try clang 16

try clang 16 #11

Workflow file for this run

# Copyright (c) 2022 PHPER Framework Team
# PHPER is licensed under Mulan PSL v2.
# You can use this software according to the terms and conditions of the Mulan
# PSL v2. You may obtain a copy of Mulan PSL v2 at:
# http://license.coscl.org.cn/MulanPSL2
# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY
# KIND, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO
# NON-INFRINGEMENT, MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
# See the Mulan PSL v2 for more details.
name: CI
on:
push:
branches:
- master
pull_request:
branches: [ "**" ]
env:
RUST_LOG: debug
CARGO_TERM_COLOR: always
RUST_BACKTRACE: "1"
RUSTFLAGS: "-D warnings"
LLVM_CONFIG_PATH: llvm-config-16
jobs:
required:
name: Required
needs:
- ci
runs-on: ubuntu-latest
steps:
- name: Check results
run: |
[[ ${{ needs.ci.result }} == 'success' ]] || exit 1;
ci:
name: CI
strategy:
fail-fast: false
matrix:
os:
- ubuntu-latest
php-version:
- "8.1"
- "8.2"
- "8.3"
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup system
run: |
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install -y llvm-14-dev libclang-14-dev clang-14 build-essential
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}
tools: php-config,composer
- name: Setup php-fpm
run: |
sudo apt-get install -y php${{ matrix.php-version }}-fpm
sudo rm -f /usr/sbin/php-fpm
sudo ln -s /usr/sbin/php-fpm${{ matrix.php-version }} /usr/sbin/php-fpm
- name: PHP version
run: |
php --version
php-fpm --version
php-config || true
[[ `php --version` == PHP\ ${{ matrix.php-version }}.* ]] || exit 1;
[[ `php-fpm --version` == PHP\ ${{ matrix.php-version }}.* ]] || exit 1;
[[ `php-config --version` == ${{ matrix.php-version }}.* ]] || exit 1;
- name: Install Rust Nightly
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
components: rustfmt
# - name: Setup cargo cache
# uses: actions/cache@v3
# with:
# path: |
# ~/.cargo/bin/
# ~/.cargo/registry/index/
# ~/.cargo/registry/cache/
# ~/.cargo/git/db/
# target/
# key: ${{ matrix.os }}-ci-${{ matrix.php-version }}-${{ hashFiles('**/Cargo.lock') }}
- name: Cargo fmt
uses: actions-rs/cargo@v1
with:
toolchain: nightly
command: fmt
args: --all -- --check
- name: Cargo clippy
uses: actions-rs/cargo@v1
with:
command: clippy
args: --release
- name: Cargo build
uses: actions-rs/cargo@v1
with:
command: build
args: --release
- name: Cargo test
uses: actions-rs/cargo@v1
with:
command: test
args: --release -- --nocapture
- name: Cargo doc
uses: actions-rs/cargo@v1
env:
RUSTDOCFLAGS: "-D warnings --cfg docsrs"
with:
toolchain: nightly
command: doc
args: --workspace --no-deps --all-features