Skip to content
This repository was archived by the owner on Mar 13, 2024. It is now read-only.

Commit 4a30d23

Browse files
committed
abstract pip installs to a script
1 parent d070734 commit 4a30d23

File tree

2 files changed

+17
-12
lines changed

2 files changed

+17
-12
lines changed

.github/workflows/code.yml

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,8 @@ jobs:
2424

2525
- name: Lint
2626
run: |
27-
touch requirements-lint.txt requirements.txt
28-
pip install -r requirements.txt -r requirements-lint.txt -e .[dev]
27+
.github/workflows/pip_install.sh lint -e .[dev]
2928
tox -e pre-commit,mypy
30-
mkdir -p lockfiles
31-
pip freeze > lockfiles/requirements-lint.txt
3229
3330
- name: Upload lockfiles
3431
uses: actions/upload-artifact@v3
@@ -61,10 +58,7 @@ jobs:
6158
python-version: ${{ matrix.python }}
6259

6360
- name: Install with latest dependencies
64-
run: |
65-
pip install .[dev]
66-
mkdir -p lockfiles
67-
pip freeze > lockfiles/requirements-test-${{ matrix.python }}-${{ matrix.os }}.txt
61+
run: .github/workflows/pip_install.sh test-${{ matrix.python }}-${{ matrix.os }} .[dev]
6862

6963
- name: Run tests
7064
run: pytest tests
@@ -184,10 +178,6 @@ jobs:
184178
steps:
185179
- uses: actions/download-artifact@v3
186180

187-
- name: fixup requirements files
188-
# use sed to comment out the self references in requirements files
189-
run: sed -i '/file:/s/^/# Requirements for /' lockfiles/requirements*.txt
190-
191181
- name: Github Release
192182
# We pin to the SHA, not the tag, for security reasons.
193183
# https://docs.github.com/en/actions/learn-github-actions/security-hardening-for-github-actions#using-third-party-actions

.github/workflows/pip_install.sh

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
#!/bin/bash
2+
3+
# A script to pip install a package with dependencies from requirements{suffix}.txt
4+
# if requirements{suffix}.txt exists.
5+
# Generates the requirements{suffix}.txt file once install is complete
6+
7+
# usage: install_with_requirements.sh suffix [remaining parameters to pip install]
8+
9+
suffix=$1
10+
shift
11+
12+
touch requirements-${suffix}.txt
13+
pip install -r requirements-${suffix}.txt "${@}"
14+
mkdir -p lockfiles
15+
pip freeze | sed '/file:/s/^/# Requirements for /' > lockfiles/requirements${suffix}.txt

0 commit comments

Comments
 (0)