Test Build Workflow #91
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test Build Workflow | |
on: | |
schedule: | |
- cron: '0 0 * * *' # Run daily at midnight | |
workflow_dispatch: | |
push: | |
branches: [ master ] | |
tags: | |
- 'v1' | |
- 'v1-test' | |
paths: | |
- 'action.yml' | |
- '.github/workflows/test-build-workflow.yml' | |
pull_request: | |
branches: [ master ] | |
paths: | |
- 'action.yml' | |
- '.github/workflows/test-build-workflow.yml' | |
jobs: | |
test-binary-build: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
use-pgo: true | |
use-cross: false | |
- os: ubuntu-latest | |
target: i686-unknown-linux-gnu | |
use-pgo: true | |
use-cross: false | |
- os: ubuntu-latest | |
target: aarch64-unknown-linux-gnu | |
use-pgo: true # x64 host to aarch64 simulated guest via cross | |
use-cross: true | |
- os: ubuntu-latest | |
target: armv7-unknown-linux-gnueabihf | |
use-pgo: true # x64 host to armv7 simulated guest via cross | |
use-cross: true | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
use-pgo: true | |
use-cross: false | |
- os: windows-latest | |
target: i686-pc-windows-msvc | |
use-pgo: true | |
use-cross: false | |
- os: windows-latest | |
target: aarch64-pc-windows-msvc | |
use-pgo: false # no virtualization support (proprietary OS) | |
use-cross: false | |
- os: macos-13 # x86 | |
target: x86_64-apple-darwin | |
use-pgo: true | |
use-cross: false | |
- os: macos-14 # M1 | |
target: aarch64-apple-darwin | |
use-pgo: true | |
use-cross: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Binary Build | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
target: ${{ matrix.target }} | |
use-pgo: ${{ matrix.use-pgo }} | |
use-cross: ${{ matrix.use-cross }} | |
rust-project-path: "tools/cli" | |
crate-name: "prs-rs-cli" | |
upload-artifacts: false | |
test-library-build: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
use-pgo: true | |
use-cross: false | |
- os: ubuntu-latest | |
target: i686-unknown-linux-gnu | |
use-pgo: true | |
use-cross: false | |
- os: ubuntu-latest | |
target: aarch64-unknown-linux-gnu | |
use-pgo: true # x64 host to aarch64 simulated guest via cross | |
use-cross: true | |
- os: ubuntu-latest | |
target: armv7-unknown-linux-gnueabihf | |
use-pgo: true # x64 host to armv7 simulated guest via cross | |
use-cross: true | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
use-pgo: true | |
use-cross: false | |
- os: windows-latest | |
target: i686-pc-windows-msvc | |
use-pgo: true | |
use-cross: false | |
# No native host to run tests and proprietary compiler. | |
#- os: windows-latest | |
# target: aarch64-pc-windows-msvc | |
# use-pgo: false # no virtualization support (proprietary OS) | |
# use-cross: false | |
- os: macos-13 # x86 | |
target: x86_64-apple-darwin | |
use-pgo: true | |
use-cross: false | |
- os: macos-14 # M1 | |
target: aarch64-apple-darwin | |
use-pgo: true | |
use-cross: false | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Library Build | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: ${{ matrix.target }} | |
use-pgo: ${{ matrix.use-pgo }} | |
use-cross: ${{ matrix.use-cross }} | |
features: "c-exports" | |
build-library: true | |
upload-artifacts: false | |
run-tests-and-coverage: true | |
upload-coverage-to-codecov: false | |
# This tests gathering PGO data on a host, and building for a different target. | |
test-pgo-with-cross-compile: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test PGO with Cross-Compilation (Binary) | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
rust-project-path: tools/cli | |
pgo-project-path: . | |
crate-name: prs-rs-cli | |
target: aarch64-unknown-linux-gnu # x64 host to aarch64 simulated guest | |
use-pgo: true | |
use-cross: true | |
pgo-benchmark-name: my_benchmark | |
upload-artifacts: false | |
- name: Test PGO with Cross-Compilation (Library) | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: aarch64-unknown-linux-gnu # x64 host to to aarch64 simulated guest | |
use-pgo: true | |
use-cross: true | |
pgo-benchmark-name: my_benchmark | |
upload-artifacts: false | |
build-library: true | |
test-library-feature-build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Library Feature Build | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: x86_64-unknown-linux-gnu | |
features: c-exports,std | |
upload-artifacts: false | |
build-library: true | |
test-library-no-default-features: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Library No Default Features | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: x86_64-unknown-linux-gnu | |
no-default-features: true | |
features: std | |
upload-artifacts: false | |
build-library: true | |
test-binary-pgo-with-library: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Binary PGO with Library | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
rust-project-path: tools/cli | |
pgo-project-path: . | |
crate-name: prs-rs-cli | |
target: x86_64-unknown-linux-gnu | |
use-pgo: true | |
pgo-benchmark-name: my_benchmark | |
upload-artifacts: false | |
test-library-pgo: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Library PGO | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: x86_64-unknown-linux-gnu | |
use-pgo: true | |
pgo-benchmark-name: my_benchmark | |
upload-artifacts: false | |
build-library: true | |
test-custom-rustflags: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Custom RUSTFLAGS (Binary) | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
rust-project-path: tools/cli | |
crate-name: prs-rs-cli | |
target: x86_64-unknown-linux-gnu | |
additional-rustflags: -C opt-level=3 | |
upload-artifacts: false | |
- name: Test Custom RUSTFLAGS (Library) | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: x86_64-unknown-linux-gnu | |
additional-rustflags: -C opt-level=3 | |
upload-artifacts: false | |
build-library: true | |
test-artifact-upload: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Test Repository | |
uses: actions/checkout@v4 | |
with: | |
repository: Sewer56/prs-rs | |
ref: 149060527e685360687d7332742ac016b39af8a7 | |
- name: Test Artifact Upload (Binary) | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
rust-project-path: tools/cli | |
crate-name: prs-rs-cli | |
target: x86_64-unknown-linux-gnu | |
- name: Download Binary Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: prs-rs-cli-x86_64-unknown-linux-gnu- | |
- name: Assert Binary Artifact | |
shell: bash | |
run: | | |
if [ ! -f prs-rs-cli ]; then | |
echo "Binary artifact not found" | |
exit 1 | |
fi | |
- name: Test Artifact Upload (Library) | |
uses: Reloaded-Project/devops-rust-lightweight-binary@v1-test | |
with: | |
crate-name: prs-rs | |
target: x86_64-unknown-linux-gnu | |
build-library: true | |
- name: Download Library Artifact | |
uses: actions/download-artifact@v4 | |
with: | |
name: C-Library-x86_64-unknown-linux-gnu- | |
- name: Assert Library Artifact | |
shell: bash | |
run: | | |
if [ ! -f libprs_rs.a ] || [ ! -f libprs_rs.so ]; then | |
echo "Library artifacts not found" | |
exit 1 | |
fi |