Skip to content
This repository has been archived by the owner on Jan 4, 2023. It is now read-only.

Commit

Permalink
Update github actions + robotpy-build
Browse files Browse the repository at this point in the history
  • Loading branch information
virtuald committed Sep 19, 2020
1 parent c455b30 commit 088c190
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 56 deletions.
154 changes: 99 additions & 55 deletions .github/workflows/dist.yml
Expand Up @@ -6,16 +6,13 @@ on: [push, pull_request]
jobs:
check:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
with:
python-version: 3.8
- name: Black
run: |
python -m pip install black
black --check --diff .
- uses: actions/checkout@v2
- uses: psf/black@stable

#
# Build native wheels
#

build:
runs-on: ${{ matrix.os }}
Expand All @@ -31,141 +28,188 @@ jobs:
architecture: x86

steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
- uses: actions/checkout@v2
- uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python_version }}
architecture: ${{ matrix.architecture }}

- name: Install build dependencies
run: |
python -m pip install 'robotpy-build>=2020.1.8'
python -m robotpy_build build-dep --install --find-links https://www.tortall.net/~robotpy/wheels/2020/linux_x86_64
- name: Build wheel
run: python setup.py bdist_wheel
env:
RPYBUILD_PARALLEL: 1
RPYBUILD_STRIP_LIBPYTHON: 1

- name: Test wheel
shell: bash
run: |
cd dist
python -m pip install *.whl
cd ../tests
python -m pip install -r requirements.txt
python run_tests.py
- uses: robotpy/build-actions/install-robotpy-build@v2020
- uses: robotpy/build-actions/install-build-deps@v2020
- uses: robotpy/build-actions/build-wheel@v2020
- uses: robotpy/build-actions/test-native-wheel@v2020

- uses: actions/upload-artifact@v1
- uses: actions/upload-artifact@v2
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
with:
name: "dist-py${{ matrix.python_version }}-${{ matrix.os }}-${{ matrix.architecture }}"
path: dist

#
# Build roboRIO wheel
#

publish-linux-wheels:
cross-build:
runs-on: ubuntu-latest
container: robotpy/roborio-cross-ubuntu:2020.1-20.04
steps:
- uses: actions/checkout@v2

- uses: robotpy/build-actions/install-robotpy-build@v2020
with:
python: /build/venv/bin/cross-python
- uses: robotpy/build-actions/install-build-deps@v2020
with:
python: /build/venv/bin/cross-python
wheeldir: roborio
- uses: robotpy/build-actions/build-wheel@v2020
with:
python: /build/venv/bin/cross-python

- uses: actions/upload-artifact@v2
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')
with:
name: dist-roborio
path: dist

#
# Publish wheels to robotpy site, pypi
#

publish-rpyrepo:
runs-on: ubuntu-latest
needs: [check, build]
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')

steps:
- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.6-ubuntu-18.04-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.7-ubuntu-18.04-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.8-ubuntu-18.04-x64
path: dist/

- name: Upload wheels
uses: garygrossgarten/github-action-scp@v0.5.3
- uses: garygrossgarten/github-action-scp@v0.6.0
with:
local: dist
remote: public_html/2020/linux_x86_64
host: narya.tortall.net
username: ${{ secrets.SSH_USER }}
privateKey: ${{ secrets.SSH_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}

- name: Ping readthedocs
uses: wei/curl@v1
with:
args: -X POST -d "token=${{ secrets.RTD_TOKEN }}" ${{ secrets.RTD_WEBHOOK }}

#
# RoboRIO wheel
#

- uses: actions/download-artifact@v2
with:
name: dist-roborio
path: dist-roborio/

- uses: garygrossgarten/github-action-scp@v0.6.0
with:
local: dist-roborio
remote: public_html/2020/roborio
host: narya.tortall.net
username: ${{ secrets.SSH_USER }}
privateKey: ${{ secrets.SSH_KEY }}
passphrase: ${{ secrets.SSH_PASSPHRASE }}


publish-pypi:
runs-on: ubuntu-latest
needs: [check, build]
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')

steps:
- uses: actions/checkout@v1
- uses: actions/checkout@v2

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.6-windows-latest-x86
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.6-windows-latest-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.6-macos-latest-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.7-windows-latest-x86
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.7-windows-latest-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.7-macos-latest-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.8-windows-latest-x86
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.8-windows-latest-x64
path: dist/

- uses: actions/download-artifact@v1
- uses: actions/download-artifact@v2
with:
name: dist-py3.8-macos-latest-x64
path: dist/

- uses: actions/setup-python@v1
- uses: actions/setup-python@v2
with:
python-version: 3.8

- name: Install build dependencies
run: python -m pip install 'robotpy-build>=2020.1.8'

- name: Build sdist
run: python setup.py sdist
- uses: robotpy/build-actions/install-robotpy-build@v2020
- uses: robotpy/build-actions/build-sdist@v2020

- name: Publish to PyPI
uses: pypa/gh-action-pypi-publish@master
with:
user: __token__
password: ${{ secrets.pypi_password }}
password: ${{ secrets.PYPI_PASSWORD }}

ping:
runs-on: ubuntu-latest
needs: [publish-rpyrepo, publish-pypi]
if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags')

steps:
- name: Get Current Tag
uses: robotpy/build-actions/get-git-tag@v2020
id: currtag

- name: Ping meta
uses: peter-evans/repository-dispatch@v1
with:
token: ${{ secrets.REPO_ACCESS_TOKEN }}
repository: robotpy/robotpy-meta
event-type: tag
client-payload: '{"package_name": "robotpy-commands-v1", "package_version": "${{ steps.currtag.outputs.tag }}"}'
2 changes: 1 addition & 1 deletion pyproject.toml
@@ -1,6 +1,6 @@
[build-system]
requires = [
"robotpy-build>=2020.1.8,<2021.0.0",
"robotpy-build>=2020.2.0,<2021.0.0",
"wpilib>=2020.3.2.0,<2021.0.0",
]

Expand Down

0 comments on commit 088c190

Please sign in to comment.