Skip to content

dont use zips... urgh #31

dont use zips... urgh

dont use zips... urgh #31

Workflow file for this run

name: Cross-Platform Compile and Publish
description: Compiles on multiple platforms and publishes to deken when tags are pushed
on:
workflow_dispatch:
push:
branches:
- main
paths:
- "include/**"
- "src/**"
- "Makefile"
- "config.sh"
tags:
- 'v*'
pull_request:
paths:
- "include/**"
- "src/**"
- "Makefile"
- "config.sh"
jobs:
build:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash
env:
PDVERSION: pd-0.56-2
steps:
- uses: actions/checkout@v6
# ---- platform-specific setup ----
- name: setup pd (unix)
if: matrix.os != 'windows-latest'
uses: ./.github/actions/setup-pd
- name: install mac deps
if: matrix.os == 'macos-latest'
run: brew install automake autoconf libtool
- name: setup windows deps
if: matrix.os == 'windows-latest'
run: |
echo "local_short_commands=true" >> $GITHUB_ENV
git submodule init && git submodule update
curl -O "http://msp.ucsd.edu/Software/$PDVERSION.msw.zip"
unzip "$PDVERSION.msw.zip"
# ---- build ----
- name: configure
run: bash config.sh
- name: make (unix)
if: matrix.os != 'windows-latest'
run: make PDINCLUDEDIR=pure-data/src
- name: make (windows)
if: matrix.os == 'windows-latest'
run: make pdbinpath="$PDVERSION/bin" PDINCLUDEDIR="$PDVERSION/src" CFLAGS=-march=x86-64
# ---- package ----
- name: package library
run: |
bash scripts/package_lib.sh "${{ matrix.os }}"
- name: upload artifact
uses: actions/upload-artifact@v6
with:
name: "fd_lib-${{ github.ref_name }}-${{ matrix.os }}-build"
path: "${{ matrix.os }}"
if-no-files-found: error
publish:
runs-on: ubuntu-latest
needs: build
if: startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main'
steps:
- uses: actions/checkout@v6
- name: download all artifacts
uses: actions/download-artifact@v8
- name: Pull deken image
run: docker pull registry.git.iem.at/pd/deken
- name: create deken packages
run: |
ls -la
for artifact in fd_lib-*-build; do
echo "Packaging $artifact ..."
docker run --rm \
--user $(id -u) \
--volume ${{ github.workspace }}:/deken \
registry.git.iem.at/pd/deken \
deken package --name fd_lib --version "${{ github.ref_name }}" "$artifact"
done
- name: Upload all to deken
env:
DEKEN_USERNAME: ${{ secrets.DEKEN_USERNAME }}
DEKEN_PASSWORD: ${{ secrets.DEKEN_PASSWORD }}
run: |
ls -la
docker run --rm \
--user $(id -u) \
--volume ${{ github.workspace }}:/deken \
--env DEKEN_USERNAME \
--env DEKEN_PASSWORD \
registry.git.iem.at/pd/deken \
sh -c "deken upload *.dek"