Fix memory leak in pacparser_setmyip #143
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: Build Pacparser | |
on: | |
push: | |
branches: [master] | |
paths: | |
- 'src/**' | |
- '.github/workflows/build.yml' | |
pull_request: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'Tag to run workflow for' | |
required: true | |
permissions: | |
contents: read | |
jobs: | |
build: | |
strategy: | |
matrix: | |
os: [ubuntu, windows, macos] | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- uses: actions/checkout@v2 | |
if: ${{ !contains(github.event_name, 'workflow_dispatch') }} | |
with: | |
fetch-depth: 0 | |
- name: Check out code for workflow_dispatch | |
if: ${{ contains(github.event_name, 'workflow_dispatch') }} | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.inputs.tag }} | |
- name: make non-windows | |
if: ${{ matrix.os != 'windows' }} | |
run: make -C src | |
- name: make windows | |
if: ${{ matrix.os == 'windows' }} | |
run: make -C src -f Makefile.win32 | |
- name: Get ref_name | |
id: get_ref_name | |
if: ${{ matrix.os != 'windows' }} | |
run: | | |
if [ "${{ github.event_name }}" == "pull_request" ]; then | |
echo "ref_name=${{ github.base_ref }}" | |
echo "ref_name=${{ github.base_ref }}" >> $GITHUB_OUTPUT || exit 1 | |
else | |
echo "ref_name=${{ github.ref_name }}" | |
echo "ref_name=${{ github.ref_name }}" >> $GITHUB_OUTPUT || exit 1 | |
fi | |
- name: make non-windows dist | |
if: ${{ matrix.os != 'windows' }} | |
run: | | |
DIST_OS_SUFFIX=${{ matrix.os }} make -C src dist | |
ls -R src/*.zip | |
- name: make windows dist | |
if: ${{ matrix.os == 'windows' }} | |
run: | | |
make -C src -f Makefile.win32 dist | |
- name: Upload dist (non-windows) | |
if: ${{ matrix.os != 'windows' }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: pacparser-dist | |
path: src/pacparser*.zip | |
- name: Upload dist (windows) | |
if: ${{ matrix.os == 'windows' }} | |
uses: actions/upload-artifact@v2 | |
with: | |
name: pacparser-${{ matrix.os }} | |
path: src/dist | |
python-module-build: | |
strategy: | |
matrix: | |
os: [ubuntu, windows, macos] | |
python-version: ['3.7', '3.8', '3.9', '3.10', '3.11'] | |
runs-on: ${{ matrix.os }}-latest | |
steps: | |
- uses: actions/checkout@v2 | |
if: ${{ !contains(github.event_name, 'workflow_dispatch') }} | |
with: | |
fetch-depth: 0 | |
- name: Check out code for workflow_dispatch | |
if: ${{ contains(github.event_name, 'workflow_dispatch') }} | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.inputs.tag }} | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: make non-windows | |
if: ${{ matrix.os != 'windows' }} | |
run: make -C src pymod-dist | |
- name: make windows | |
if: ${{ matrix.os == 'windows' }} | |
run: make -C src -f Makefile.win32 pymod-dist | |
- name: Upload dist | |
uses: actions/upload-artifact@v2 | |
with: | |
name: pacparser-python-${{ matrix.python-version }}-${{ matrix.os }}-dist | |
path: src/pymod/pacparser-python* | |
- name: Build wheel non-linux | |
if: ${{ matrix.os != 'ubuntu' }} | |
run: | | |
python -m pip install wheel | |
cd src/pymod && python setup.py bdist_wheel | |
- uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
src: | |
- 'src/**' | |
- name: Publish package to PyPI (non-linux) | |
if: ${{ (matrix.os != 'ubuntu') && (steps.changes.outputs.src == 'true') && (github.event_name != 'pull_request') }} | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI }} | |
run: | | |
python -m pip install twine | |
ls -R . | |
twine upload src/pymod/dist/* | |
build-linux-wheels: | |
runs-on: ubuntu-20.04 | |
steps: | |
- uses: actions/checkout@v2 | |
if: ${{ !contains(github.event_name, 'workflow_dispatch') }} | |
with: | |
fetch-depth: 0 | |
- name: Check out code for workflow_dispatch | |
if: ${{ contains(github.event_name, 'workflow_dispatch') }} | |
uses: actions/checkout@v2 | |
with: | |
fetch-depth: 0 | |
ref: ${{ github.event.inputs.tag }} | |
- name: Set env | |
run: echo "PACPARSER_VERSION=$(git describe --always --tags --candidate=100)" >> $GITHUB_ENV | |
- name: Set up Python | |
uses: actions/setup-python@v3 | |
- name: make | |
run: | | |
python --version | |
sudo apt-get install python3-distutils | |
make -C src pymod | |
- name: Build sdist | |
run: cd src/pymod && python setup.py sdist | |
- name: Install cibuildwheel and twine | |
run: python -m pip install cibuildwheel twine | |
- name: Build wheel using cibuildwheel | |
run: | | |
cp src/spidermonkey/libjs.a src/pacparser.o src/pacparser.h src/pymod | |
cd src/pymod && python -m cibuildwheel --output-dir dist | |
env: | |
CIBW_BUILD: 'cp{37,38,39,310,311}-manylinux*64' | |
CIBW_ENVIRONMENT: 'PACPARSER_VERSION=${{ env.PACPARSER_VERSION }}' | |
- uses: dorny/paths-filter@v2 | |
id: changes | |
with: | |
filters: | | |
src: | |
- 'src/**' | |
- name: Publish package to PyPI | |
if: ${{ startsWith(github.ref, 'refs/tags/v') || (github.ref == 'refs/heads/master' && steps.changes.outputs.src == 'true') }} | |
env: | |
TWINE_USERNAME: __token__ | |
TWINE_PASSWORD: ${{ secrets.PYPI }} | |
run: | | |
twine upload src/pymod/dist/* |