Skip to content

Commit

Permalink
Reverted all changes back
Browse files Browse the repository at this point in the history
  • Loading branch information
SalOne22 committed Oct 4, 2023
1 parent f201a39 commit 727490c
Showing 1 changed file with 62 additions and 156 deletions.
218 changes: 62 additions & 156 deletions .github/workflows/rimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,178 +2,84 @@ name: rimage

on:
push:
branches:
- main
pull_request:
types:
- opened
- synchronize
workflow_dispatch:
branches:
- main

jobs:
ci:
name: CI

runs-on: ${{ matrix.os }}
timeout-minutes: 60

# Prevent tags and in-repo PRs from triggering this workflow more than once for a commit
if: github.ref_type != 'tag' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork)

strategy:
fail-fast: false
matrix:
target:
- x86_64-unknown-linux-gnu
- x86_64-unknown-linux-musl
- aarch64-unknown-linux-gnu
- aarch64-unknown-linux-musl
- x86_64-pc-windows-msvc
- i686-pc-windows-msvc
- x86_64-apple-darwin
- aarch64-apple-darwin

include:
- target: x86_64-unknown-linux-gnu
os: ubuntu-22.04
target-apt-arch: amd64
- target: x86_64-unknown-linux-musl
os: ubuntu-22.04
target-apt-arch: amd64
- target: aarch64-unknown-linux-gnu
os: ubuntu-22.04
target-apt-arch: arm64
- target: aarch64-unknown-linux-musl
os: ubuntu-22.04
target-apt-arch: arm64
- target: x86_64-pc-windows-msvc
os: windows-latest
- target: i686-pc-windows-msvc
os: windows-latest
- target: x86_64-apple-darwin
os: macos-latest
- target: aarch64-apple-darwin
os: macos-latest

env:
CARGO_BUILD_TARGET: ${{ matrix.target }}
test:
name: test
runs-on: ubuntu-latest

steps:
- name: Checkout source
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v4
with:
persist-credentials: false

- name: Set up Ubuntu multiarch
if: startsWith(matrix.os, 'ubuntu') && matrix.target-apt-arch != 'amd64'
run: |
readonly DISTRO_CODENAME=jammy
sudo dpkg --add-architecture "${{ matrix.target-apt-arch }}"
sudo sed -i "s/^deb http/deb [arch=$(dpkg-architecture -q DEB_HOST_ARCH)] http/" /etc/apt/sources.list
sudo sed -i "s/^deb mirror/deb [arch=$(dpkg-architecture -q DEB_HOST_ARCH)] mirror/" /etc/apt/sources.list
for suite in '' '-updates' '-backports' '-security'; do
echo "deb [arch=${{ matrix.target-apt-arch }}] http://ports.ubuntu.com/ $DISTRO_CODENAME$suite main universe multiverse" | \
sudo tee -a /etc/apt/sources.list >/dev/null
done

- name: Install musl development files
if: endsWith(matrix.target, '-musl')
run: |
sudo apt-get -yq update
sudo apt-get -yq install musl-tools musl-dev:${{ matrix.target-apt-arch }}
- name: Install QEMU and AArch64 cross compiler
if: startsWith(matrix.target, 'aarch64-unknown-linux')
run: |
sudo apt-get -yq update
# libc6 must be present to run executables dynamically linked
# against glibc for the target architecture
sudo apt-get -yq install qemu-user gcc-aarch64-linux-gnu libc6:arm64
- name: Cache Cargo artifacts
uses: Swatinem/rust-cache@v2

- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@v1
- name: Setup cache πŸ’Ύ
uses: actions/cache@v3
with:
toolchain: nightly
targets: ${{ env.CARGO_BUILD_TARGET }}
components: clippy, rustfmt

- name: Install nextest
uses: taiki-e/install-action@nextest

- name: Run rustfmt
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: cargo fmt --check

- name: Run Clippy (no default features)
if: matrix.target == 'x86_64-unknown-linux-gnu'
uses: giraffate/clippy-action@v1
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Setup nasm πŸ§‘β€πŸ’»
uses: ilammy/setup-nasm@v1

- name: Setup rust toolchain πŸ¦€
uses: actions-rs/toolchain@v1
with:
clippy_flags: --no-deps --all-targets --no-default-features -- -D warnings
reporter: github-check
fail_on_error: true
profile: minimal
toolchain: stable

- name: Run Clippy (all features)
if: matrix.target == 'x86_64-unknown-linux-gnu'
uses: giraffate/clippy-action@v1
- name: Test πŸ§ͺ
uses: actions-rs/cargo@v1
with:
clippy_flags: --no-deps --all-targets --all-features -- -D warnings
reporter: github-check
fail_on_error: true
command: test
args: --all-features

# There aren't good user-mode ARM64 emulators we can use on x64 macOS hosts.
# QEMU doesn't have any plans to add such support due to a lack of kernel
# syscall stability guarantees: https://gitlab.com/qemu-project/qemu/-/issues/1682
- name: Run tests
if: matrix.target != 'aarch64-apple-darwin'
run: |
cargo nextest run --release --all-features
cargo test --doc --release --all-features
- name: Build tests (ARM64 macOS only)
if: matrix.target == 'aarch64-apple-darwin'
run: cargo test --release --all-features --no-run

- name: Build docs
if: matrix.target == 'x86_64-unknown-linux-gnu'
run: cargo doc --release --no-deps
lint:
name: lint
runs-on: ubuntu-latest

- name: Build CLI binary
run: cargo build --release --all-feautes
steps:
- name: Checkout πŸ›ŽοΈ
uses: actions/checkout@v4

- name: Upload CLI binary as artifact
uses: actions/upload-artifact@v3
- name: Setup cache πŸ’Ύ
uses: actions/cache@v3
with:
name: Rimage binary (${{ matrix.target }})
path: |
target/${{ env.CARGO_BUILD_TARGET }}/release/rimage
target/${{ env.CARGO_BUILD_TARGET }}/release/rimage.exe
msrv-check:
name: MSRV check

runs-on: ubuntu-latest
timeout-minutes: 30

# Prevent tags and in-repo PRs from triggering this workflow more than once for a commit
if: github.ref_type != 'tag' && (github.event_name != 'pull_request' || github.event.pull_request.head.repo.fork)

steps:
- name: Checkout source
uses: actions/checkout@v3
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Setup nasm πŸ§‘β€πŸ’»
uses: ilammy/setup-nasm@v1

- name: Setup rust toolchain πŸ¦€
uses: actions-rs/toolchain@v1
with:
persist-credentials: false

- name: Cache Cargo artifacts
uses: Swatinem/rust-cache@v2
profile: minimal
toolchain: stable
components: rustfmt, clippy

- name: Install MSRV Rust toolchain
uses: dtolnay/[email protected]

- name: Install nextest
uses: taiki-e/install-action@nextest
- name: Formatting check πŸͺ„
uses: actions-rs/cargo@v1
with:
command: fmt
args: --all -- --check

- name: Run tests
run: |
cargo nextest run --release --all-features
cargo test --doc --release --all-features
- name: Clippy check πŸ”Ž
uses: actions-rs/cargo@v1
with:
command: clippy
args: --all-features -- -D warnings

0 comments on commit 727490c

Please sign in to comment.