diff --git a/.github/workflows/contributer_action.yml b/.github/workflows/contributer_action.yml new file mode 100644 index 00000000..d3b40788 --- /dev/null +++ b/.github/workflows/contributer_action.yml @@ -0,0 +1,81 @@ +name: Python Package - Contributor + +on: + workflow_dispatch: + +jobs: + test: + runs-on: ubuntu-20.04 + strategy: + matrix: + python-version: ["3.7", "3.8", "3.9", "3.10", "3.11", "3.12"] + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + 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 + run: | + pytest --cov=./ --cov-report=xml + + notify: + needs: test + runs-on: ubuntu-20.04 + if: contains(fromJson('["refs/heads/main", "refs/heads/binaries-fixes"]'), github.ref) || startsWith(github.ref, 'refs/tags') + steps: + - name: Slack trigger + uses: slackapi/slack-github-action@v1.23.0 + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} + + build-binaries: + needs: test + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: ['windows-latest', 'ubuntu-20.04', 'macos-latest'] + env: + BINARY_OS: '${{ matrix.os }}' + steps: + - uses: actions/checkout@v3 + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + - name: Install Dependencies + run: python binaries.py install + - name: Test Safety + run: python binaries.py test + - name: Producing Binaries + run: python binaries.py dist + - uses: actions/upload-artifact@v3 + 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@v3 + 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@v3 + 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@v3 + if: ${{ matrix.os == 'macos-latest' }} + with: + name: safety-macos-x86_64 + path: dist/safety-macos-x86_64 + if-no-files-found: error