Skip to content

Release Debian Package #25

Release Debian Package

Release Debian Package #25

Workflow file for this run

name: Release Debian Package
on:
schedule:
- cron: '30 18 * * *'
workflow_dispatch:
jobs:
macOS:
runs-on: macos-latest
steps:
- name: Rename and tar firmware
run: |
curl -L https://raw.githubusercontent.com/t2linux/wiki/9314a44971df3d6aff9af96b023181fb3e40ad2b/docs/tools/firmware.sh > firmware.sh
python3 firmware.sh /usr/share/firmware ${{ github.workspace }}/firmware.tar -v
ver=$(sw_vers -productVersion)
echo "Package: apple-firmware" > control
echo "Version: ${ver}-1" >> control
echo "Maintainer: Aditya Garg" >> control
echo "Architecture: all" >> control
echo "Description: Wi-Fi and Bluetooth firmware for T2 Macs" >> control
mkdir firmware
mv ./firmware.tar ./firmware
mv ./control ./firmware
- name: Upload firmware
uses: actions/upload-artifact@v4
with:
name: firmware
path: ${{ github.workspace }}/firmware
Linux:
needs: [macOS]
runs-on: ubuntu-latest
steps:
- name: Download firmware
uses: actions/download-artifact@v4
with:
name: firmware
- name: Configure GPG Key
run: |
echo -n "$GPG_SIGNING_KEY" | base64 -di | gpg --import
echo -n "$GPG_SIGNING_KEY" | base64 -di > key
env:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
- name: Create deb
run: |
tar -xvf ${{ github.workspace }}/firmware.tar
cd ${{ github.workspace }}
mkdir deb
cd deb
mkdir DEBIAN
mkdir usr
cd usr
mkdir lib
cd lib
mkdir firmware
cd ..
cd ..
cd DEBIAN
cp ${{ github.workspace }}/control ./control
sudo chmod a+x ./control
echo "modprobe -r brcmfmac_wcc || true" > postinst
echo "modprobe -r brcmfmac || true" >> postinst
echo "modprobe brcmfmac || true" >> postinst
echo "modprobe -r hci_bcm4377 || true" >> postinst
echo "modprobe hci_bcm4377 || true" >> postinst
sudo chmod a+x ./postinst
cd ${{ github.workspace }}
cp -r ${{ github.workspace }}/brcm ${{ github.workspace }}/deb/usr/lib/firmware
dpkg-deb --build --root-owner-group -Zgzip deb
DOCKER_IMAGE=ubuntu:22.04
docker pull ${DOCKER_IMAGE}
docker run \
-e GH_TOKEN=${{ secrets.GITHUB_TOKEN }} \
-e GPG_SIGNING_EMAIL=${{ secrets.GPG_SIGNING_EMAIL }} \
-t \
-v "$(pwd)":/repo \
${DOCKER_IMAGE} \
/bin/bash -c 'apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y -qq -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" wget curl gpg apt-utils dpkg-dev && \
mkdir -p -m 755 /etc/apt/keyrings && wget -qO- https://cli.github.com/packages/githubcli-archive-keyring.gpg | tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null \
&& chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null \
&& apt update \
&& apt install gh -y && \
cat /repo/key | gpg --import && \
cd /repo && \
gh release download debian -D debian -R AdityaGarg8/Apple-Firmware && \
cp /repo/deb.deb /repo/debian && \
cd /repo/debian && \
dpkg-name deb.deb && \
dpkg-scanpackages --multiversion . > Packages && \
gzip -k -f Packages && \
apt-ftparchive release . > Release && \
gpg --default-key "${GPG_SIGNING_EMAIL}" -abs -o - Release > Release.gpg && \
gpg --default-key "${GPG_SIGNING_EMAIL}" --clearsign -o - Release > InRelease'
cd ${{ github.workspace }}/debian
if [[ $(ls | grep deb.deb) == deb.deb ]]
then
echo "publish=no" >> $GITHUB_ENV
fi
- name: Release
if: env.publish != 'no'
uses: softprops/action-gh-release@v2
with:
files: ${{ github.workspace }}/debian/*
tag_name: debian
draft: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}