diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml deleted file mode 100644 index 73b87065..00000000 --- a/.github/workflows/publish.yml +++ /dev/null @@ -1,90 +0,0 @@ -# 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: Publish - -on: - push: - tags: [ "**" ] - -env: - RUST_LOG: debug - CARGO_TERM_COLOR: always - RUST_BACKTRACE: "1" - RUSTFLAGS: "-D warnings" - LLVM_CONFIG_PATH: llvm-config-18 - CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} - -jobs: - publish: - name: Publish - - runs-on: ubuntu-24.04 - steps: - - name: Checkout - uses: actions/checkout@v2 - - - name: Install libclang - run: sudo apt-get install -y llvm-18-dev libclang-18-dev - - - name: Setup PHP - uses: shivammathur/setup-php@v2 - with: - php-version: 7.4 - tools: php-config - - - name: Cargo publish phper-sys - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper-sys/Cargo.toml - continue-on-error: true - - - name: Cargo publish phper-build - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper-build/Cargo.toml - continue-on-error: true - - - name: Cargo publish phper-macros - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper-macros/Cargo.toml - continue-on-error: true - - - name: Cargo publish phper-alloc - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper-alloc/Cargo.toml - continue-on-error: true - - - name: Cargo publish phper-test - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper-test/Cargo.toml - continue-on-error: true - - - name: Cargo publish phper - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper/Cargo.toml - continue-on-error: true - - - name: Cargo publish phper-doc - uses: actions-rs/cargo@v1 - with: - command: publish - args: --manifest-path phper-doc/Cargo.toml - continue-on-error: true diff --git a/.github/workflows/release-plz.yml b/.github/workflows/release-plz.yml new file mode 100644 index 00000000..796fab7a --- /dev/null +++ b/.github/workflows/release-plz.yml @@ -0,0 +1,83 @@ +# 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: Release-plz + +permissions: + pull-requests: write + contents: write + +on: workflow_dispatch + +env: + RUST_LOG: debug + CARGO_TERM_COLOR: always + RUST_BACKTRACE: "1" + RUSTFLAGS: "-D warnings" + LLVM_CONFIG_PATH: llvm-config-18 + +jobs: + # Release unpublished packages. + release-plz-release: + name: Release-plz release + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'phper-framework' }} + permissions: + contents: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + + - name: Install libclang + run: sudo apt-get install -y llvm-18-dev libclang-18-dev + + - name: Setup PHP + uses: shivammathur/setup-php@v2 + with: + php-version: 7.4 + tools: php-config + + - name: Run release-plz + uses: release-plz/action@v0.5 + with: + command: release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }} + + # Create a PR with the new versions and changelog, preparing the next release. + release-plz-pr: + name: Release-plz PR + runs-on: ubuntu-latest + if: ${{ github.repository_owner == 'phper-framework' }} + permissions: + contents: write + pull-requests: write + concurrency: + group: release-plz-${{ github.ref }} + cancel-in-progress: false + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + - name: Install Rust toolchain + uses: dtolnay/rust-toolchain@stable + - name: Run release-plz + uses: release-plz/action@v0.5 + with: + command: release-pr + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + CARGO_REGISTRY_TOKEN: ${{ secrets.CARGO_REGISTRY_TOKEN }}