mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2024-12-22 21:55:20 +00:00
build: release: replace unmaintained actions
Replace actions: actions-rs/toolchain, upload-release-asset. actions-rs/toolchain is unmaintained, for cross-compilation replace it with houseabsolute/actions-rust-cross Action upload-release-asset is unmaintained and has been archived since Mar 4, 2021. An issue with upload-release-asset is that it creates separate release for each job of matrix strategy. Thus, to solve these issues, replace unmaintained upload-release-asset with upload-artifact See: #5929 Signed-off-by: Ruslan Mstoi <ruslan.mstoi@intel.com>
This commit is contained in:
parent
8a6add9c79
commit
6c4144e943
182
.github/workflows/release.yaml
vendored
182
.github/workflows/release.yaml
vendored
@ -3,135 +3,67 @@ on: [create, merge_group]
|
|||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
|
env:
|
||||||
|
GITHUB_TOKEN: ${{ github.token }}
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
release:
|
release:
|
||||||
if: (github.event_name == 'create' && github.event.ref_type == 'tag') || github.event_name == 'merge_group'
|
if: (github.event_name == 'create' && github.event.ref_type == 'tag') || github.event_name == 'merge_group'
|
||||||
name: Release
|
name: Release ${{ matrix.platform.target }}
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
matrix:
|
||||||
|
platform:
|
||||||
|
- target: x86_64-unknown-linux-gnu
|
||||||
|
args: --all --release --features mshv
|
||||||
|
name_ch: cloud-hypervisor
|
||||||
|
name_ch_remote: ch-remote
|
||||||
|
- target: x86_64-unknown-linux-musl
|
||||||
|
args: --all --release --features mshv
|
||||||
|
name_ch: cloud-hypervisor-static
|
||||||
|
name_ch_remote: ch-remote-static
|
||||||
|
- target: aarch64-unknown-linux-musl
|
||||||
|
args: --all --release
|
||||||
|
name_ch: cloud-hypervisor-static-aarch64
|
||||||
|
name_ch_remote: ch-remote-static-aarch64
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Code checkout
|
- name: Code checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v4
|
||||||
- name: Install musl-gcc
|
- name: Install musl-gcc
|
||||||
|
if: contains(matrix.platform.target, 'musl')
|
||||||
run: sudo apt install -y musl-tools
|
run: sudo apt install -y musl-tools
|
||||||
- name: Create release directory
|
- name: Create release directory
|
||||||
|
if: |
|
||||||
|
github.event_name == 'create' && github.event.ref_type == 'tag' &&
|
||||||
|
matrix.platform.target == 'x86_64-unknown-linux-gnu'
|
||||||
run: rsync -rv --exclude=.git . ../cloud-hypervisor-${{ github.event.ref }}
|
run: rsync -rv --exclude=.git . ../cloud-hypervisor-${{ github.event.ref }}
|
||||||
- name: Install Rust toolchain (x86_64-unknown-linux-gnu)
|
- name: Build ${{ matrix.platform.target }}
|
||||||
uses: actions-rs/toolchain@v1
|
uses: houseabsolute/actions-rust-cross@v0
|
||||||
with:
|
with:
|
||||||
toolchain: "1.74.1"
|
|
||||||
target: x86_64-unknown-linux-gnu
|
|
||||||
- name: Install Rust toolchain (x86_64-unknown-linux-musl)
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: "1.74.1"
|
|
||||||
target: x86_64-unknown-linux-musl
|
|
||||||
- name: Build
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
toolchain: "1.74.1"
|
|
||||||
command: build
|
command: build
|
||||||
args: --all --release --features mshv --target=x86_64-unknown-linux-gnu
|
target: ${{ matrix.platform.target }}
|
||||||
- name: Static Build
|
args: ${{ matrix.platform.args }}
|
||||||
uses: actions-rs/cargo@v1
|
strip: true
|
||||||
with:
|
toolchain: 1.74.1
|
||||||
toolchain: "1.74.1"
|
- name: Copy Release Binaries
|
||||||
command: build
|
|
||||||
args: --all --release --features mshv --target=x86_64-unknown-linux-musl
|
|
||||||
- name: Install Rust toolchain (aarch64-unknown-linux-musl)
|
|
||||||
uses: actions-rs/toolchain@v1
|
|
||||||
with:
|
|
||||||
toolchain: "1.74.1"
|
|
||||||
target: aarch64-unknown-linux-musl
|
|
||||||
override: true
|
|
||||||
- name: Create Release
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
||||||
id: create_release
|
shell: bash
|
||||||
uses: actions/create-release@v1
|
run: |
|
||||||
env:
|
cp target/${{ matrix.platform.target }}/release/cloud-hypervisor ./${{ matrix.platform.name_ch }}
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
cp target/${{ matrix.platform.target }}/release/ch-remote ./${{ matrix.platform.name_ch_remote }}
|
||||||
with:
|
- name: Upload Release Artifacts
|
||||||
tag_name: ${{ github.ref }}
|
|
||||||
release_name: ${{ github.ref }}
|
|
||||||
draft: true
|
|
||||||
prerelease: true
|
|
||||||
- name: Upload cloud-hypervisor
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
||||||
id: upload-release-cloud-hypervisor
|
uses: actions/upload-artifact@v3
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
name: Artifacts for ${{ matrix.platform.target }}
|
||||||
asset_path: target/x86_64-unknown-linux-gnu/release/cloud-hypervisor
|
path: |
|
||||||
asset_name: cloud-hypervisor
|
./${{ matrix.platform.name_ch }}
|
||||||
asset_content_type: application/octet-stream
|
./${{ matrix.platform.name_ch_remote }}
|
||||||
- name: Upload static cloud-hypervisor
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
|
||||||
id: upload-release-static-cloud-hypervisor
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: target/x86_64-unknown-linux-musl/release/cloud-hypervisor
|
|
||||||
asset_name: cloud-hypervisor-static
|
|
||||||
asset_content_type: application/octet-stream
|
|
||||||
- name: Upload ch-remote
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
|
||||||
id: upload-release-ch-remote
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: target/x86_64-unknown-linux-gnu/release/ch-remote
|
|
||||||
asset_name: ch-remote
|
|
||||||
asset_content_type: application/octet-stream
|
|
||||||
- name: Upload static-ch-remote
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
|
||||||
id: upload-release-static-ch-remote
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: target/x86_64-unknown-linux-musl/release/ch-remote
|
|
||||||
asset_name: ch-remote-static
|
|
||||||
asset_content_type: application/octet-stream
|
|
||||||
- name: Clean build tree ahead of cross build
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
command: clean
|
|
||||||
- name: Static Build (AArch64)
|
|
||||||
uses: actions-rs/cargo@v1
|
|
||||||
with:
|
|
||||||
use-cross: true
|
|
||||||
command: build
|
|
||||||
args: --all --release --target=aarch64-unknown-linux-musl
|
|
||||||
- name: Upload static AArch64 cloud-hypervisor
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
|
||||||
id: upload-release-static-aarch64-cloud-hypervisor
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: target/aarch64-unknown-linux-musl/release/cloud-hypervisor
|
|
||||||
asset_name: cloud-hypervisor-static-aarch64
|
|
||||||
asset_content_type: application/octet-stream
|
|
||||||
- name: Upload static AArch64 ch-remote
|
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
|
||||||
id: upload-release-static-aarch64-ch-remote
|
|
||||||
uses: actions/upload-release-asset@v1
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
|
||||||
asset_path: target/aarch64-unknown-linux-musl/release/ch-remote
|
|
||||||
asset_name: ch-remote-static-aarch64
|
|
||||||
asset_content_type: application/octet-stream
|
|
||||||
- name: Vendor
|
- name: Vendor
|
||||||
|
if: |
|
||||||
|
github.event_name == 'create' && github.event.ref_type == 'tag' &&
|
||||||
|
matrix.platform.target == 'x86_64-unknown-linux-gnu'
|
||||||
working-directory: ../cloud-hypervisor-${{ github.event.ref }}
|
working-directory: ../cloud-hypervisor-${{ github.event.ref }}
|
||||||
run: |
|
run: |
|
||||||
mkdir ../vendor-cargo-home
|
mkdir ../vendor-cargo-home
|
||||||
@ -139,16 +71,24 @@ jobs:
|
|||||||
mkdir .cargo
|
mkdir .cargo
|
||||||
cargo vendor > .cargo/config.toml
|
cargo vendor > .cargo/config.toml
|
||||||
- name: Create vendored source archive
|
- name: Create vendored source archive
|
||||||
working-directory: ../
|
if: |
|
||||||
run: tar cJf cloud-hypervisor-${{ github.event.ref }}.tar.xz cloud-hypervisor-${{ github.event.ref }}
|
github.event_name == 'create' && github.event.ref_type == 'tag' &&
|
||||||
|
matrix.platform.target == 'x86_64-unknown-linux-gnu'
|
||||||
|
run: tar cJf cloud-hypervisor-${{ github.event.ref }}.tar.xz ../cloud-hypervisor-${{ github.event.ref }}
|
||||||
- name: Upload cloud-hypervisor vendored source archive
|
- name: Upload cloud-hypervisor vendored source archive
|
||||||
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
if: |
|
||||||
|
github.event_name == 'create' && github.event.ref_type == 'tag' &&
|
||||||
|
matrix.platform.target == 'x86_64-unknown-linux-gnu'
|
||||||
id: upload-release-cloud-hypervisor-vendored-sources
|
id: upload-release-cloud-hypervisor-vendored-sources
|
||||||
uses: actions/upload-release-asset@v1
|
uses: actions/upload-artifact@v3
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
with:
|
with:
|
||||||
upload_url: ${{ steps.create_release.outputs.upload_url }}
|
path: cloud-hypervisor-${{ github.event.ref }}.tar.xz
|
||||||
asset_path: ../cloud-hypervisor-${{ github.event.ref }}.tar.xz
|
name: cloud-hypervisor-${{ github.event.ref }}.tar.xz
|
||||||
asset_name: cloud-hypervisor-${{ github.event.ref }}.tar.xz
|
- name: Create GitHub Release
|
||||||
asset_content_type: application/x-xz
|
if: github.event_name == 'create' && github.event.ref_type == 'tag'
|
||||||
|
uses: softprops/action-gh-release@v1
|
||||||
|
with:
|
||||||
|
files: |
|
||||||
|
./${{ matrix.platform.name_ch }}
|
||||||
|
./${{ matrix.platform.name_ch_remote }}
|
||||||
|
./cloud-hypervisor-${{ github.event.ref }}.tar.xz
|
||||||
|
Loading…
Reference in New Issue
Block a user