Skip to content

Workflow file for this run

name: Build and Deploy TAF
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
jobs:
build_and_upload_wheel:
strategy:
matrix:
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12']
runs-on: ubuntu-latest
needs: run-tests
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Set up Python
uses: actions/setup-python@v3
with:
python-version: ${{ matrix.python-version }}
- name: Upgrade pip
run: |
pip install --upgrade pip setuptools wheel
- name: Install swig
run: |
sudo apt-get update
sudo apt-get install libhdf5-serial-dev zlib1g-dev libatlas-base-dev lcov swig3.0 libpcsclite-dev
mkdir -p ~/bin/ && ln -s /usr/bin/swig3.0 ~/bin/swig && export PATH=~/bin/:$PATH
- name: Install and build TAF
run: |
pip install .[yubikey]
python setup.py sdist bdist_wheel clean --all
- name: Install publishing dependencies
run: |
pip install packaging
pip install twine==3.8.0
- name: Upload to TestPyPi
# if: startsWith(github.ref, 'refs/tags/v')
run: |
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
env:
TWINE_USERNAME: ${{ secrets.TEST_PYPI_USERNAME }}
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_PASSWORD }}
- name: Upload wheels to PyPI
if: startsWith(github.ref, 'refs/tags/v')
run: |
python -m pip install twine
twine check dist/*
twine upload --skip-existing dist/* -u ${{ secrets.PYPI_USERNAME }} -p ${{ secrets.PYPI_PASSWORD }}
env:
PYPI_USERNAME: ${{ secrets.PYPI_USERNAME }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
displayName: "Upload wheels"

Check failure on line 72 in .github/workflows/deploy.yml

View workflow run for this annotation

GitHub Actions / Build and Deploy TAF

Invalid workflow file

The workflow is not valid. .github/workflows/deploy.yml (Line: 72, Col: 9): Unexpected value 'displayName'
create_release:
runs-on: ubuntu-latest
needs: build_and_upload_wheel
outputs:
upload_url: ${{ steps.set_upload_url.outputs.upload_url }}
steps:
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: test
release_name: Release test
draft: false
prerelease: true
- name: Set Upload URL output
id: set_upload_url
run: |
echo "upload_url=${{ steps.create_release.outputs.upload_url }}" >> "$GITHUB_OUTPUT"
build-and-test-executables:
needs: create_release
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Get Upload URL
id: get_upload_url
run: echo "${{needs.create_release.outputs.upload_url}}"
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.x'
- name: Upgrade pip windows
if: matrix.os == 'windows-latest'
run: |
python -m pip install --upgrade pip setuptools wheel
- name: Upgrade pip
if: matrix.os == 'ubuntu-latest' || matrix.os == 'macos-latest'
run: |
pip install --upgrade pip setuptools wheel
- name: Install Linux dependencies
if: matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install libhdf5-serial-dev zlib1g-dev libatlas-base-dev lcov swig3.0 libpcsclite-dev
mkdir -p ~/bin/ && ln -s /usr/bin/swig3.0 ~/bin/swig && export PATH=~/bin/:$PATH
- name: Install Windows dependencies
if: matrix.os == 'windows-latest'
run: |
choco install swig
- name: Install macOS dependencies
if: matrix.os == 'macos-latest'
run: |
brew install swig
- name: Install dependencies
run: |
pip install .[yubikey]
pip install pyinstaller
- name: Build and test standalone executable (Linux)
if: matrix.os == 'ubuntu-latest'
run: |
pyinstaller --onefile --hidden-import=yubikey_manager --name taf -y taf/tools/cli/taf.py
chmod +x dist/taf
./dist/taf --help | grep "TAF Command Line Interface" || { echo "Error: Expected text not found in the executable output"; exit 1; }
- name: Build and test standalone executable (Windows)
if: matrix.os == 'windows-latest'
run: |
pyinstaller --onefile --hidden-import=yubikey_manager --name taf.exe -y taf/tools/cli/taf.py
./dist/taf.exe --help | Select-String "TAF Command Line Interface" -quiet
- name: Build and test standalone executable (macOS)
if: matrix.os == 'macos-latest'
run: |
pyinstaller --onefile --hidden-import=yubikey_manager --name taf -y taf/tools/cli/taf.py
./dist/taf --help | grep "TAF Command Line Interface" || { echo "Error: Expected text not found in the executable output"; exit 1; }
- name: Upload standalone executable (Linux)
if: matrix.os == 'ubuntu-latest'
uses: actions/upload-release-asset@v1
with:
upload_url: ${{needs.create_release.outputs.upload_url}}
asset_path: dist/taf
asset_name: taf-linux
asset_content_type: application/x-executable
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload standalone executable (Windows)
if: matrix.os == 'windows-latest'
uses: actions/upload-release-asset@v1
with:
upload_url: ${{needs.create_release.outputs.upload_url}}
asset_path: dist/taf.exe
asset_name: taf-windows.exe
asset_content_type: application/octet-stream
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Upload standalone executable (macOS)
if: matrix.os == 'macos-latest'
uses: actions/upload-release-asset@v1
with:
upload_url: ${{needs.create_release.outputs.upload_url}}
asset_path: dist/taf
asset_name: taf-macos
asset_content_type: application/octet-stream
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}