Skip to content

fix: initialize ApResolver when creating app #35

fix: initialize ApResolver when creating app

fix: initialize ApResolver when creating app #35

Workflow file for this run

name: Release
on:
push:
tags: [ 'v*' ]
permissions:
contents: write
jobs:
build-deps:
runs-on: ubuntu-20.04
strategy:
matrix:
include:
- target: x86-64-linux-gnu
cc: gcc
- target: arm-rpi-linux-gnueabihf
cc: arm-rpi-linux-gnueabihf-gcc
- target: arm-linux-gnueabihf
cc: arm-linux-gnueabihf-gcc
- target: aarch64-linux-gnu
cc: aarch64-linux-gnu-gcc
env:
CC: ${{ matrix.cc }}
steps:
- name: Install toolchain for ${{ matrix.target }}
if: ${{ matrix.target != 'arm-rpi-linux-gnueabihf' }}
run: sudo apt-get update && sudo apt-get install -y gcc-${{ matrix.target }}
- name: Install custom toolchain for ${{ matrix.target }}
if: ${{ matrix.target == 'arm-rpi-linux-gnueabihf' }}
run: |
wget https://github.com/devgianlu/rpi-toolchain/releases/download/v1/arm-rpi-linux-gnueabihf.tar.gz
sudo tar -C /usr --strip-components=1 -xzf arm-rpi-linux-gnueabihf.tar.gz
- name: Download alsa-lib sources
working-directory: /tmp
run: |
wget http://www.alsa-project.org/files/pub/lib/alsa-lib-1.2.10.tar.bz2
tar -xvf alsa-lib-1.2.10.tar.bz2
- name: Compile alsa-lib for ${{ matrix.target }}
working-directory: /tmp
run: |
cd alsa-lib-1.2.10
./configure --enable-shared=yes --enable-static=no --with-pic \
--host=${{ matrix.target }} --prefix=/tmp/deps/${{ matrix.target }}
make
sudo make install
- name: Download libogg sources
working-directory: /tmp
run: |
wget https://downloads.xiph.org/releases/ogg/libogg-1.3.5.tar.xz
tar -xvf libogg-1.3.5.tar.xz
- name: Compile libogg for ${{ matrix.target }}
working-directory: /tmp
run: |
cd libogg-1.3.5
./configure --host=${{ matrix.target }} --prefix=/tmp/deps/${{ matrix.target }}
make
sudo make install
- name: Download libvorbis sources
working-directory: /tmp
run: |
wget https://downloads.xiph.org/releases/vorbis/libvorbis-1.3.7.tar.xz
tar -xvf libvorbis-1.3.7.tar.xz
- name: Compile libvorbis for ${{ matrix.target }}
working-directory: /tmp
run: |
cd libvorbis-1.3.7
./configure --host=${{ matrix.target }} --prefix=/tmp/deps/${{ matrix.target }}
make
sudo make install
- name: Package dependencies
run: mkdir /tmp/out && tar -C /tmp/deps -cvf /tmp/out/${{ matrix.target }}.tar ${{ matrix.target }}
- name: Upload compiled dependencies
uses: actions/upload-artifact@v3
with:
name: deps
path: /tmp/out
retention-days: 1
build:
runs-on: ubuntu-20.04
needs:
- build-deps
strategy:
matrix:
include:
- target: x86-64-linux-gnu
goarch: amd64
goamd64: v1
cc: gcc
tar: linux_x86_64
- target: arm-rpi-linux-gnueabihf
goarch: arm
goarm: 6
cc: arm-rpi-linux-gnueabihf-gcc
tar: linux_armv6_rpi
- target: arm-linux-gnueabihf
goarch: arm
goarm: 6
cc: arm-linux-gnueabihf-gcc
tar: linux_armv6
- target: aarch64-linux-gnu
goarch: arm64
cc: aarch64-linux-gnu-gcc
tar: linux_arm64
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: git fetch --force --tags
- name: Set up Golang
uses: actions/setup-go@v4
with:
go-version: '1.20.8'
- name: Download compiled dependencies
uses: actions/download-artifact@v3
with:
name: deps
path: /tmp/deps
- name: Unpack compiled dependencies
run: sudo mkdir /tmp/deps/${{ matrix.target }} && sudo tar -C /tmp/deps/${{ matrix.target }} --strip-components=1 -xvf /tmp/deps/${{ matrix.target }}.tar
- name: Install build dependencies
if: ${{ matrix.target != 'arm-rpi-linux-gnueabihf' }}
run: sudo apt-get update && sudo apt-get install -y gcc-${{ matrix.target }}
- name: Install build dependencies for arm-rpi-linux-gnueabihf
if: ${{ matrix.target == 'arm-rpi-linux-gnueabihf' }}
working-directory: /tmp
run: |
wget https://github.com/devgianlu/rpi-toolchain/releases/download/v1/arm-rpi-linux-gnueabihf.tar.gz
sudo tar -C /usr --strip-components=1 -xzf arm-rpi-linux-gnueabihf.tar.gz
- name: Build with Go
env:
CGO_ENABLED: 1
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
GOARM: ${{ matrix.goarm }}
GOAMD64: ${{ matrix.goamd64 }}
CC: ${{ matrix.cc }}
PKG_CONFIG_PATH: /tmp/deps/${{ matrix.target }}/lib/pkgconfig/
run: |
mkdir -p /tmp/out/${{ matrix.target }}/
go build \
-ldflags="-s -w -X go-librespot.commit=${{ github.sha }} -X go-librespot.version=${{ github.ref_name }}" \
-o ./go-librespot ./cmd/daemon
tar -zcvf /tmp/out/go-librespot_${{ matrix.tar }}.tar.gz go-librespot README.md
- name: Upload compiled binary
uses: actions/upload-artifact@v3
with:
name: binaries
path: /tmp/out
retention-days: 1
publish:
runs-on: ubuntu-20.04
needs:
- build
steps:
- name: Download compiled binaries
uses: actions/download-artifact@v3
with:
name: binaries
path: /tmp/out
- name: Generate changelog
uses: jaywcjlove/changelog-generator@main
id: changelog
with:
token: ${{ secrets.GITHUB_TOKEN }}
filter-author: (dependabot|renovate\\[bot\\]|dependabot\\[bot\\]|Renovate Bot)
filter: '[R|r]elease[d]\s+[v|V]\d(\.\d+){0,2}'
- name: Release binaries
uses: softprops/action-gh-release@v1
with:
body: |
${{ steps.changelog.outputs.compareurl }}
${{ steps.changelog.outputs.changelog }}
files: /tmp/out/*