This repository has been archived by the owner on Sep 15, 2024. It is now read-only.
Update build.yml #1
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: Automated Builds | |
on: | |
push: | |
branches: | |
- master | |
tags: | |
# Run when pushing version tags, since otherwise it's impossible to | |
# restart a successful build after pushing a tag | |
- '*.*.*' | |
pull_request: | |
branches: | |
- master | |
defaults: | |
run: | |
# This otherwise gets run under dash which does not support brace expansion | |
shell: bash | |
jobs: | |
# We'll only package the plugins with an entry in bundler.toml | |
package: | |
strategy: | |
matrix: | |
include: | |
- { name: ubuntu-22.04, os: ubuntu-22.04, cross-target: '' } | |
- { name: macos-universal, os: macos-11, cross-target: aarch64-apple-darwin } | |
- { name: windows, os: windows-latest, cross-target: '' } | |
name: Package plugin binaries | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Fetch all git history | |
run: git fetch --force --prune --tags --unshallow | |
- name: Install dependencies | |
if: startsWith(matrix.os, 'ubuntu') | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y libasound2-dev libgl-dev libjack-dev libx11-xcb-dev libxcb1-dev libxcb-dri2-0-dev libxcb-icccm4-dev libxcursor-dev libxkbcommon-dev libxcb-shape0-dev libxcb-xfixes0-dev | |
- uses: actions/cache@v2 | |
# FIXME: Caching `target/` causes the Windows runner to blow up after some time | |
if: startsWith(matrix.os, 'windows') | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
key: ${{ matrix.name }}-${{ matrix.cross-target }} | |
- uses: actions/cache@v2 | |
if: "!startsWith(matrix.os, 'windows')" | |
with: | |
path: | | |
~/.cargo/registry/index/ | |
~/.cargo/registry/cache/ | |
~/.cargo/git/db/ | |
target/ | |
key: ${{ matrix.name }}-${{ matrix.cross-target }} | |
- name: Set up Rust toolchain | |
uses: actions-rs/toolchain@v1 | |
with: | |
# The macOS AArch64/universal build is done from an x86_64 macOS CI | |
# runner, so it needs to be cross compiled | |
target: ${{ matrix.cross-target }} | |
- name: Setup Python | |
uses: actions/[email protected] | |
with: | |
# Version range or exact version of Python or PyPy to use, using SemVer's version range syntax. Reads from .python-version if unset. | |
python-version: 3.12 | |
- name: Install poetry | |
run: pip install poetry | |
- name: Build and bundle plugin | |
run: cargo make bundle --release | |
- name: Determine build archive name | |
run: | | |
echo "ARCHIVE_NAME=ts404-$(git describe --always)-${{ matrix.name }}" >> "$GITHUB_ENV" | |
- name: Move all packaged plugin into a directory | |
run: | | |
# GitHub Action strips the top level directory, great, have another one | |
mkdir -p "$ARCHIVE_NAME/$ARCHIVE_NAME" | |
mv target/bundled/* "$ARCHIVE_NAME/$ARCHIVE_NAME" | |
- name: Add an OS-specific readme file with installation instructions | |
run: cp ".github/workflows/readme-${{ runner.os }}.txt" "$ARCHIVE_NAME/$ARCHIVE_NAME/README.txt" | |
- uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ env.ARCHIVE_NAME }} | |
path: ${{ env.ARCHIVE_NAME }} |