CD #108
Workflow file for this run
This file contains hidden or 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: CD | |
| on: | |
| workflow_dispatch: | |
| types: [created] | |
| release: | |
| types: [created] | |
| defaults: | |
| run: | |
| shell: bash | |
| env: | |
| APPLE_TEAM_ID: ZE9XE938Z2 | |
| jobs: | |
| build_linux_wayland_x86_64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: sudo apt-get update -q | |
| - run: sudo apt-get install libopenal-dev xorg-dev libgl1-mesa-dev libwayland-dev libxkbcommon-dev -y --allow-unauthenticated | |
| - run: go build -tags wayland -v | |
| - run: OS=Linux ARCH=x86_64 DISPDRIVER=wayland VERSION=$VERSION make tar | |
| - run: OS=Linux ARCH=x86_64 DISPDRIVER=wayland VERSION=$VERSION make deb | |
| - run: sha256sum Ludo-Linux-wayland-x86_64-${VERSION}.tar.gz > Ludo-Linux-wayland-x86_64-${VERSION}.tar.gz.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.tar.gz*", "./*.deb"]' | |
| build_linux_wayland_armhf: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: sudo apt update -q | |
| - run: sudo apt install binutils-multiarch | |
| - run: sudo dpkg --add-architecture armhf | |
| - run: sudo rm -rf /etc/apt/sources.list.d/*s | |
| - run: echo "" | sudo tee /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6B05F25D762E3157 | |
| - run: sudo apt update -q | |
| - run: sudo apt install -f libc6-dev:armhf gcc-arm-linux-gnueabihf libopenal-dev:armhf libgl1-mesa-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxinerama-dev:armhf libxi-dev:armhf libwayland-dev:armhf libxkbcommon-dev:armhf -y --allow-unauthenticated | |
| - run: PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/ GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 CC=arm-linux-gnueabihf-gcc go build -tags wayland -v | |
| - run: OS=Linux ARCH=arm DISPDRIVER=wayland VERSION=$VERSION make tar | |
| - run: OS=Linux ARCH=arm DISPDRIVER=wayland VERSION=$VERSION make deb | |
| - run: sha256sum Ludo-Linux-wayland-arm-${VERSION}.tar.gz > Ludo-Linux-wayland-arm-${VERSION}.tar.gz.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.tar.gz*", "./*.deb"]' | |
| build_linux_x11_x86_64: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: sudo apt-get update -q | |
| - run: sudo apt-get install libopenal-dev xorg-dev libgl1-mesa-dev -y --allow-unauthenticated | |
| - run: go build -tags x11 -v | |
| - run: OS=Linux ARCH=x86_64 DISPDRIVER=x11 VERSION=$VERSION make tar | |
| - run: OS=Linux ARCH=x86_64 DISPDRIVER=x11 VERSION=$VERSION make deb | |
| - run: sha256sum Ludo-Linux-x11-x86_64-${VERSION}.tar.gz > Ludo-Linux-x11-x86_64-${VERSION}.tar.gz.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.tar.gz*", "./*.deb"]' | |
| build_linux_x11_armhf: | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: sudo apt update -q | |
| - run: sudo apt install binutils-multiarch | |
| - run: sudo dpkg --add-architecture armhf | |
| - run: sudo rm -rf /etc/apt/sources.list.d/*s | |
| - run: echo "" | sudo tee /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=armhf] http://ports.ubuntu.com/ubuntu-ports noble-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-updates main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-backports main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: echo "deb [arch=amd64] http://us.archive.ubuntu.com/ubuntu/ noble-security main restricted universe multiverse" | sudo tee -a /etc/apt/sources.list | |
| - run: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 6B05F25D762E3157 | |
| - run: sudo apt update -q | |
| - run: sudo apt install -f libxxf86vm-dev:armhf libc6-dev:armhf gcc-arm-linux-gnueabihf libopenal-dev:armhf libgl1-mesa-dev:armhf libxcursor-dev:armhf libxrandr-dev:armhf libxinerama-dev:armhf libxi-dev:armhf -y --allow-unauthenticated | |
| - run: PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig/ GOOS=linux GOARCH=arm GOARM=7 CGO_ENABLED=1 CC=arm-linux-gnueabihf-gcc go build -tags x11 -v | |
| - run: OS=Linux ARCH=arm DISPDRIVER=x11 VERSION=$VERSION make tar | |
| - run: OS=Linux ARCH=arm DISPDRIVER=x11 VERSION=$VERSION make deb | |
| - run: sha256sum Ludo-Linux-x11-arm-${VERSION}.tar.gz > Ludo-Linux-x11-arm-${VERSION}.tar.gz.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.tar.gz*", "./*.deb"]' | |
| build_osx_x86_64: | |
| runs-on: macos-15-intel | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: echo "/Users/runner/go/bin" >> $GITHUB_PATH | |
| - run: go install honnef.co/go/tools/cmd/staticcheck@latest | |
| - run: brew install openal-soft | |
| - run: | | |
| printf '%s' '${{ secrets.OSXCERT }}' | base64 --decode > dev.p12 | |
| - run: security create-keychain -p github build.keychain | |
| - run: security default-keychain -s build.keychain | |
| - run: security unlock-keychain -p github build.keychain | |
| - run: security import dev.p12 -f pkcs12 -k build.keychain -P ${{ secrets.OSXCERTPASS }} -A -T /usr/bin/codesign && rm dev.p12 | |
| - run: security set-keychain-settings -lut 21600 build.keychain | |
| - run: security set-key-partition-list -S "apple-tool:,apple:,codesign:" -s -k github build.keychain | |
| - run: security list-keychains -d user -s build.keychain | |
| - run: | | |
| SIGN_IDENTITY="$(security find-identity -v -p codesigning build.keychain | awk -F '"' '/Developer ID Application:/ { print $2; exit }')" | |
| if [[ -z "$SIGN_IDENTITY" ]]; then | |
| security find-identity -v -p codesigning build.keychain | |
| security find-certificate -a -Z build.keychain | |
| exit 1 | |
| fi | |
| echo "SIGN_IDENTITY=$SIGN_IDENTITY" >> $GITHUB_ENV | |
| - run: OS=OSX ARCH=x86_64 VERSION=$VERSION SIGN_IDENTITY="$SIGN_IDENTITY" make dmg | |
| - run: xcrun notarytool submit Ludo-OSX-x86_64-${VERSION}.dmg --apple-id ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} --team-id $APPLE_TEAM_ID --wait | |
| - run: xcrun stapler staple Ludo-OSX-x86_64-${VERSION}.dmg | |
| - run: xcrun stapler validate Ludo-OSX-x86_64-${VERSION}.dmg | |
| - run: shasum -a 256 Ludo-OSX-x86_64-${VERSION}.dmg > Ludo-OSX-x86_64-${VERSION}.dmg.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.dmg*"]' | |
| build_osx_arm64: | |
| runs-on: macos-15 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: echo "/Users/runner/go/bin" >> $GITHUB_PATH | |
| - run: go install honnef.co/go/tools/cmd/staticcheck@latest | |
| - run: brew install openal-soft | |
| - run: | | |
| printf '%s' '${{ secrets.OSXCERT }}' | base64 --decode > dev.p12 | |
| - run: security create-keychain -p github build.keychain | |
| - run: security default-keychain -s build.keychain | |
| - run: security unlock-keychain -p github build.keychain | |
| - run: security import dev.p12 -f pkcs12 -k build.keychain -P ${{ secrets.OSXCERTPASS }} -A -T /usr/bin/codesign && rm dev.p12 | |
| - run: security set-keychain-settings -lut 21600 build.keychain | |
| - run: security set-key-partition-list -S "apple-tool:,apple:,codesign:" -s -k github build.keychain | |
| - run: security list-keychains -d user -s build.keychain | |
| - run: | | |
| SIGN_IDENTITY="$(security find-identity -v -p codesigning build.keychain | awk -F '"' '/Developer ID Application:/ { print $2; exit }')" | |
| if [[ -z "$SIGN_IDENTITY" ]]; then | |
| security find-identity -v -p codesigning build.keychain | |
| security find-certificate -a -Z build.keychain | |
| exit 1 | |
| fi | |
| echo "SIGN_IDENTITY=$SIGN_IDENTITY" >> $GITHUB_ENV | |
| - run: OS=OSX ARCH=arm64 VERSION=$VERSION SIGN_IDENTITY="$SIGN_IDENTITY" make dmg | |
| - run: xcrun notarytool submit Ludo-OSX-arm64-${VERSION}.dmg --apple-id ${{ secrets.APPLEID }} --password ${{ secrets.APPLEIDPASS }} --team-id $APPLE_TEAM_ID --wait | |
| - run: xcrun stapler staple Ludo-OSX-arm64-${VERSION}.dmg | |
| - run: xcrun stapler validate Ludo-OSX-arm64-${VERSION}.dmg | |
| - run: shasum -a 256 Ludo-OSX-arm64-${VERSION}.dmg > Ludo-OSX-arm64-${VERSION}.dmg.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.dmg*"]' | |
| build_windows_x86_64: | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: true | |
| - uses: actions/setup-go@v5 | |
| with: | |
| go-version: '1.25.0' | |
| - run: echo "VERSION=$(echo ${{ github.event.release.tag_name }} | cut -c 2-)" >> $GITHUB_ENV | |
| - run: choco install wget make hashdeep --ignore-checksums | |
| - run: wget --no-check-certificate http://www.openal-soft.org/openal-binaries/openal-soft-1.21.0-bin.zip | |
| - run: wget https://github.com/electron/rcedit/releases/download/v1.1.1/rcedit-x64.exe | |
| - run: curl -L -o mingw64.zip https://github.com/brechtsanders/winlibs_mingw/releases/download/13.2.0posix-17.0.6-11.0.1-ucrt-r5/winlibs-x86_64-posix-seh-gcc-13.2.0-llvm-17.0.6-mingw-w64ucrt-11.0.1-r5.zip | |
| - run: unzip mingw64.zip | |
| - run: 7z x openal-soft-1.21.0-bin.zip -o/c/ | |
| - run: echo "CGO_CFLAGS=-I/c/openal-soft-1.21.0-bin/include/" >> $GITHUB_ENV | |
| - run: echo "CGO_LDFLAGS=-L/c/openal-soft-1.21.0-bin/libs/Win64/" >> $GITHUB_ENV | |
| - run: cp "mingw64/bin/libwinpthread-1.dll" . | |
| - run: cp /c/openal-soft-1.21.0-bin/bin/Win64/soft_oal.dll OpenAL32.dll | |
| - run: cp /c/Windows/System32/VCRUNTIME140.dll . | |
| - run: PATH="/c/mingw64/bin:$PATH" | |
| - run: mkdir -p ./Ludo-Windows-x86_64-${VERSION}/ | |
| - run: cp *.dll ./Ludo-Windows-x86_64-${VERSION}/ | |
| - run: OS=Windows ARCH=x86_64 VERSION=$VERSION make zip | |
| - run: hashdeep -c sha256 Ludo-Windows-x86_64-${VERSION}.zip > Ludo-Windows-x86_64-${VERSION}.zip.sha256 | |
| - name: Upload Release Asset | |
| uses: alexellis/upload-assets@0.2.2 | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| with: | |
| asset_paths: '["./Ludo-*.zip*"]' |