Attempt to add our TLS certificate to the binary #1649
Workflow file for this run
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
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 |