diff --git a/.github/workflows/contributor.yml b/.github/workflows/contributor.yml index f737f528..51cb710a 100644 --- a/.github/workflows/contributor.yml +++ b/.github/workflows/contributor.yml @@ -1,7 +1,6 @@ name: Python Package - Contributor on: - workflow_dispatch: pull_request: branches: - main @@ -9,26 +8,31 @@ on: jobs: test: if: > - ${{ github.event.pull_request.author_association != 'COLLABORATOR' && - github.event.pull_request.author_association != 'MEMBER' && - github.event.pull_request.author_association != 'OWNER' }} + github.event.pull_request.head.repo.fork == true || + !( + contains(github.event.pull_request.author_association, 'COLLABORATOR') || + contains(github.event.pull_request.author_association, 'MEMBER') || + contains(github.event.pull_request.author_association, 'OWNER') + ) runs-on: ubuntu-20.04 strategy: matrix: python-version: ["3.8", "3.9", "3.10", "3.11", "3.12", "3.13"] steps: + - name: Debug event payload + run: | + echo "Fork: ${{ github.event.pull_request.head.repo.fork }}" + echo "Author Association: ${{ github.event.pull_request.author_association }}" - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - - name: Display Python version - run: python -c "import sys; print(sys.version)" - name: Install dependencies run: | python -m pip install --upgrade pip pip install -r test_requirements.txt - - name: Test with pytest + - name: Run tests with pytest run: | pytest --cov=./ --cov-report=xml @@ -38,8 +42,6 @@ jobs: strategy: matrix: os: ['windows-latest', 'ubuntu-20.04', 'macos-latest'] - env: - BINARY_OS: '${{ matrix.os }}' steps: - uses: actions/checkout@v4 - name: Set up Python @@ -47,32 +49,15 @@ jobs: with: python-version: '3.13' - name: Install Dependencies - run: python binaries.py install - - name: Test Safety + run: | + python -m pip install --upgrade pip + python binaries.py install + - name: Test Binaries run: python binaries.py test - - name: Producing Binaries + - name: Build Binaries run: python binaries.py dist - uses: actions/upload-artifact@v4 - if: ${{ matrix.os == 'windows-latest' }} - with: - name: safety-win-i686.exe - path: dist/safety-win-i686.exe - if-no-files-found: error - - uses: actions/upload-artifact@v4 - if: ${{ matrix.os == 'windows-latest' }} - with: - name: safety-win-x86_64.exe - path: dist/safety-win-x86_64.exe - if-no-files-found: error - - uses: actions/upload-artifact@v4 - if: ${{ matrix.os == 'ubuntu-20.04' }} - with: - name: safety-linux-x86_64 - path: dist/safety-linux-x86_64 - if-no-files-found: error - - uses: actions/upload-artifact@v4 - if: ${{ matrix.os == 'macos-latest' }} with: - name: safety-macos-x86_64 - path: dist/safety-macos-x86_64 + name: ${{ matrix.os }}-binary + path: dist/ if-no-files-found: error