chore: add workflow to find the python dependencies in repo #43
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
name: Check Python Dependencies | |
on: | |
pull_request: | |
defaults: | |
run: | |
shell: bash # strict bash | |
jobs: | |
check_dependencies: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.8' | |
- name: Create repo_work directory | |
run: | | |
WORK_DIR="/tmp/unpack_reqs" | |
repo_name="${{ github.repository }}" | |
repo_work="$WORK_DIR/$repo_name" | |
mkdir -p "$repo_work" | |
echo "$repo_work" | |
- name: Copy Python requirements file | |
run: | | |
for req_file in "requirements/edx/base.txt" "requirements/base.txt" "requirements.txt"; do | |
if [ -f "$req_file" ]; then | |
cp "$req_file" "$repo_work"/base.txt | |
echo "Python requirements file found: $req_file" | |
echo "Content of base.txt:" | |
cat "$req_file" | |
break | |
fi | |
done | |
- name: Create virtual environment | |
run: python3 -m venv .venv | |
working-directory: /tmp/unpack_reqs/repo_work | |
- name: Upgrade pip | |
run: | | |
.venv/bin/python3 -m pip install -U pip | |
working-directory: | | |
WORK_DIR="/tmp/unpack_reqs" | |
$WORK_DIR/repo_work | |
- name: Download packages | |
run: | | |
echo "Downloading packages" | |
.venv/bin/python3 -m pip download --dest files -r base.txt | |
base_txt_path="${GITHUB_WORKSPACE}/files/base.txt" | |
echo "Path of base.txt: ${base_txt_path}" | |
working-directory: | | |
WORK_DIR="/tmp/unpack_reqs" | |
$WORK_DIR/repo_work | |
- name: Extract GitHub URLs from base.txt | |
id: extract | |
run: | | |
urls=() | |
base_txt_path="./files/base.txt" | |
while IFS= read -r line; do | |
if [[ $line =~ (https://github.com[^@ #]*(\.git)?) ]]; then | |
urls+=("${BASH_REMATCH[0]}") | |
fi | |
done < "${base_txt_path}" | |
echo "::set-output name=urls::${urls[*]}" | |
- name: Display GitHub URLs | |
run: | | |
echo "GitHub URLs:" | |
echo "${{ steps.extract.outputs.urls }}" |