Skip to content

Attempt to add our TLS certificate to the binary #1649

Attempt to add our TLS certificate to the binary

Attempt to add our TLS certificate to the binary #1649

Workflow file for this run

on:
push:
branches:
- main
paths:
- "**/*.rs"
- "**/Cargo.toml"
- Cargo.lock
pull_request:
paths:
- "**/*.rs"
- "**/Cargo.toml"
- Cargo.lock
- .github/workflows/ci.yml
name: ci·rs
concurrency:
group: ci/rs/${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
fmt:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- run: cargo fmt --all -- --check
clippy:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
- run: cargo clippy --all-features
env:
RUSTFLAGS: "-D warnings"
test:
needs: fmt
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo test --all-features
env:
RUSTFLAGS: "-D warnings"
coverage-unit:
needs: fmt
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- run: cargo install cargo-tarpaulin
- run: cargo tarpaulin -o lcov --output-dir coverage
- uses: coverallsapp/github-action@v2
with:
path-to-lcov: coverage/lcov.info
parallel: true
flag-name: ${{ matrix.os }}-unit
- uses: actions/upload-artifact@v4
with:
path: ./target/release/pkgx
coverage-integration:
needs: fmt
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- name: build
run: |
RUSTFLAGS="-C instrument-coverage" cargo build
echo "$PWD/target/debug" >> $GITHUB_PATH
# testing for installing multiple of the same thing at once is ok
- run: pkgx +gnome.org/libxml2 & pkgx +gnome.org/libxml2 & pkgx +gnome.org/libxml2
# ^^ KEEP FIRST, IT MUST INSTALL
- run: pkgx --help
- run: pkgx --version
- run: pkgx +git
- run: pkgx +git --json
- run: pkgx +git --json=v1
- run: pkgx git --version
- run: pkgx --silent +git
- run: pkgx --quiet +git
- run: pkgx +git -- git --version # lib/utils.rs:find_program
- run: pkgx --shellcode || true
- run: pkgx -qq git --version
- run: pkgx -s git --version
- run: pkgx -j +git
- run: pkgx /usr/bin/awk --version
- run: pkgx +yarnpkg.com yarn --version
- run: pkgx +yarnpkg.com -- yarn --version
# coverage for conflict error messages
- run: '! pkgx yarn --version'
# coverage for display-name resolution
- run: pkgx -v +agg
# testing we correctly handle +pkg syntax for pkgs with no env
- run: pkgx +curl.se/ca-certs
# create a fork bomb, but since it’s via pkgx we prevent it
- run: |
echo '#!/bin/sh' > foo
echo 'pkgx -- /bin/sh "$0"' >> foo
chmod u+x foo
if ./foo; then
exit 1
fi
# check that we update the pantry for unknown programs
# this works by deleting the entry for git then forcing
# pkgx to update the db, then trying to get git again
- run: |
set -x
rm -rf ~/.pkgx
rm -rf ~/.cache/pkgx/pantry/projects/git-scm.org
rm ~/.cache/pkgx/pantry.2.db
pkgx curl --version
test -f ~/.cache/pkgx/pantry.2.db
test ! -d ~/.cache/pkgx/pantry/projects/git-scm.org
pkgx git --version
test -d ~/.cache/pkgx/pantry/projects/git-scm.org
if: ${{ matrix.os == 'ubuntu-latest' }}
# ^^ only on one platform as wasteful otherwise
- name: generate coverage
run: |
cargo install rustfilt
pkgx +llvm.org -- llvm-profdata merge -sparse default_*.profraw -o default.profdata
pkgx +llvm.org -- llvm-cov export \
./target/debug/pkgx \
--format=lcov \
--ignore-filename-regex="$HOME/.cargo" \
--instr-profile=default.profdata \
-Xdemangler=rustfilt \
> lcov.info
- uses: coverallsapp/github-action@v2
with:
path-to-lcov: lcov.info
parallel: true
flag-name: ${{ matrix.os }}-integration
upload-coverage:
needs: [coverage-unit, coverage-integration]
runs-on: ubuntu-latest
steps:
- uses: coverallsapp/github-action@v2
with:
parallel-finished: true