Skip to content

Merge pull request #465 from sepotvin/master #980

Merge pull request #465 from sepotvin/master

Merge pull request #465 from sepotvin/master #980

Workflow file for this run

name: Test
on:
push:
pull_request:
workflow_dispatch:
jobs:
doc:
runs-on: ubuntu-latest
name: 'πŸ““ Docs'
steps:
- name: '🧰 Checkout'
uses: actions/checkout@v2
- name: 'πŸ““ BuildTheDocs (BTD)'
uses: buildthedocs/btd@v0
with:
token: ${{ github.token }}
skip-deploy: ${{ github.event_name == 'pull_request' }}
- name: '🧹 Clean HTML build'
if: ${{ github.event_name != 'pull_request' }}
run: sudo rm -rf doc/_build/html/.git
- name: 'πŸ“€ Upload artifact: HTML'
uses: actions/upload-artifact@v2
with:
name: openFPGALoader-Documentation
path: doc/_build/html
lin-build:
strategy:
fail-fast: false
matrix:
os:
- 20
- 22
name: '🚧🐧 Ubuntu ${{ matrix.os }} | build'
runs-on: ubuntu-${{ matrix.os }}.04
steps:
- name: '🧰 Checkout'
uses: actions/checkout@v2
- name: 'βš™οΈ Install dependencies'
run: |
sudo apt update -qq
sudo apt install -y \
cmake \
gzip \
libftdi1-2 \
libftdi1-dev \
libhidapi-libusb0 \
libhidapi-dev \
libudev-dev \
pkg-config \
tree \
zlib1g-dev
- name: '🚧 Build tarball'
run: |
mkdir build
cd build
cmake ..
cmake --build .
make DESTDIR=$(pwd)/dist install
_rulesdir='dist/etc/udev/rules.d/'
mkdir -p "${_rulesdir}"
cp ../99-openfpgaloader.rules "${_rulesdir}"
_licenses="dist/usr/local/share/licenses/openFPGALoader"
mkdir -p "${_licenses}"
install -m 644 ../LICENSE "${_licenses}"
tar -cvzf ../ubtuntu${{ matrix.os }}.04-openFPGALoader.tgz -C dist .
- name: 'πŸ“€ Upload artifact: tarball'
uses: actions/upload-artifact@v2
with:
name: ubtuntu${{ matrix.os }}.04-openFPGALoader
path: ubtuntu${{ matrix.os }}.04-openFPGALoader.tgz
- name: 'πŸ” Show package content'
run: |
mkdir tmp
cd tmp
tar -xf ../ubtuntu${{ matrix.os }}.04-openFPGALoader.tgz
tree .
mac-build:
strategy:
fail-fast: false
name: '🚧🐧 macOS latest | build'
runs-on: macos-latest
steps:
- name: '🧰 Checkout'
uses: actions/checkout@v2
- name: 'βš™οΈ Install dependencies'
run: |
#brew update
brew install --only-dependencies openFPGALoader
- name: '🚧 Build tarball'
run: |
mkdir build
cd build
cmake ..
cmake --build .
lin-test:
needs: lin-build
strategy:
fail-fast: false
matrix:
os:
- 20
- 22
name: '🚦🐧 Ubuntu ${{ matrix.os }} | test'
runs-on: ubuntu-${{ matrix.os }}.04
steps:
- name: 'βš™οΈ Install dependencies'
run: |
sudo apt update -qq
sudo apt install -y \
libftdi1-2 \
libhidapi-libusb0 \
udev \
zlib1g
- name: 'πŸ“₯ Download artifact: package'
uses: actions/download-artifact@v2
with:
name: ubtuntu${{ matrix.os }}.04-openFPGALoader
- name: 'πŸ› οΈ Install package'
run: sudo tar -xvzf *.tgz -C /
- name: '🚦 Test package'
run: |
openFPGALoader --help
openFPGALoader --detect || true
win-jobs:
name: ⬜ Generate list of MSYS2 jobs
runs-on: ubuntu-latest
outputs:
jobs: ${{ steps.matrix.outputs.jobs }}
steps:
- id: matrix
uses: msys2/setup-msys2/matrix@main
with:
systems: >-
mingw64
ucrt64
clang64
win:
needs: win-jobs
uses: msys2/setup-msys2/.github/workflows/PKGBUILD.yml@main
with:
name: openFPGALoader
matrix: ${{ needs.win-jobs.outputs.jobs }}
path: scripts/msys2
test: |
uname -a
which openFPGALoader
openFPGALoader --help
openFPGALoader --detect || true
Release:
if: github.event_name != 'pull_request' && (github.ref == 'refs/heads/master' || contains(github.ref, 'refs/tags/'))
needs: [ lin-test, win ]
runs-on: ubuntu-latest
name: 'πŸ“¦ Release'
steps:
- name: 'πŸ“₯ Download artifacts'
uses: actions/download-artifact@v2
with:
path: artifact
- name: 'βœ‰οΈ Package Documentation'
run: |
cd artifact
tar cvzf openFPGALoader-Documentation.tar.gz openFPGALoader-Documentation
rm -rf openFPGALoader-Documentation
# Tagged: create a pre-release or a release (semver)
# Untagged: update the assets of pre-release 'nightly'
- uses: pyTooling/Actions/releaser@r0
with:
token: ${{ github.token }}
tag: 'nightly'
files: artifact/**/*