Adjust text to match demo length #3
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: Build and Release | |
| on: | |
| push: | |
| branches: | |
| - main | |
| env: | |
| REGISTRY: ghcr.io | |
| IMAGE_NAME: ${{ github.repository }} | |
| jobs: | |
| build-appimage: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| arch: [x86_64, aarch64] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up QEMU | |
| if: matrix.arch == 'aarch64' | |
| uses: docker/setup-qemu-action@v3 | |
| with: | |
| platforms: arm64 | |
| - name: Build AppImage (${{ matrix.arch }}) | |
| run: | | |
| if [ "${{ matrix.arch }}" = "aarch64" ]; then | |
| docker run --rm --platform linux/arm64 \ | |
| -v $PWD:/workspace -w /workspace \ | |
| --entrypoint /bin/bash \ | |
| ubuntu:22.04 -c ' | |
| apt-get update && \ | |
| apt-get install -y wget file libfuse2 xxd libsdl2-dev libsdl2-ttf-dev \ | |
| libsdl2-image-dev libsdl2-mixer-dev build-essential && \ | |
| make clean && make && \ | |
| ARCH=aarch64 make appimage | |
| ' | |
| else | |
| sudo apt-get update | |
| sudo apt-get install -y libfuse2 libsdl2-dev libsdl2-ttf-dev \ | |
| libsdl2-image-dev libsdl2-mixer-dev | |
| make clean && make | |
| # Extract and run appimagetool without FUSE | |
| make appimage || ( | |
| wget -q -c https://github.com/AppImage/AppImageKit/releases/download/continuous/appimagetool-x86_64.AppImage -O appimagetool && | |
| chmod +x appimagetool && | |
| ./appimagetool --appimage-extract && | |
| mkdir -p AppDir/usr/bin AppDir/usr/share/applications AppDir/usr/share/icons/hicolor/256x256/apps && | |
| cp demo AppDir/usr/bin/ && | |
| printf '[Desktop Entry]\nType=Application\nName=Infix Demo\nExec=usr/bin/demo\nIcon=demo\nCategories=Game;\n' > AppDir/usr/share/applications/demo.desktop && | |
| cp jack.png AppDir/usr/share/icons/hicolor/256x256/apps/demo.png && | |
| ln -sf usr/share/applications/demo.desktop AppDir/demo.desktop && | |
| ln -sf usr/share/icons/hicolor/256x256/apps/demo.png AppDir/demo.png && | |
| ln -sf usr/bin/demo AppDir/AppRun && | |
| ARCH=x86_64 squashfs-root/AppRun AppDir InfixDemo-x86_64.AppImage && | |
| rm -rf AppDir squashfs-root appimagetool | |
| ) | |
| fi | |
| - name: Rename AppImage | |
| run: | | |
| mv InfixDemo-x86_64.AppImage InfixDemo-${{ matrix.arch }}.AppImage || true | |
| - name: Upload AppImage artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: appimage-${{ matrix.arch }} | |
| path: InfixDemo-${{ matrix.arch }}.AppImage | |
| build-docker: | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| packages: write | |
| strategy: | |
| matrix: | |
| platform: [linux/amd64, linux/arm64] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up QEMU | |
| uses: docker/setup-qemu-action@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v3 | |
| - name: Log in to Container Registry | |
| uses: docker/login-action@v3 | |
| with: | |
| registry: ${{ env.REGISTRY }} | |
| username: ${{ github.actor }} | |
| password: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Extract metadata | |
| id: meta | |
| uses: docker/metadata-action@v5 | |
| with: | |
| images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} | |
| tags: | | |
| type=raw,value=latest | |
| type=sha,prefix={{branch}}- | |
| - name: Build and push Docker image | |
| uses: docker/build-push-action@v5 | |
| with: | |
| context: . | |
| platforms: ${{ matrix.platform }} | |
| push: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| cache-from: type=gha | |
| cache-to: type=gha,mode=max | |
| release: | |
| needs: [build-appimage] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Download all artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| path: artifacts | |
| - name: Display structure of downloaded files | |
| run: ls -R artifacts | |
| - name: Create/Update Release | |
| uses: ncipollo/release-action@v1 | |
| with: | |
| tag: latest | |
| name: Latest Build | |
| body: | | |
| Automated build of Infix Demo | |
| **AppImages:** | |
| - `InfixDemo-x86_64.AppImage` - x86_64 build | |
| - `InfixDemo-aarch64.AppImage` - ARM64 build | |
| **Docker images:** | |
| - `ghcr.io/${{ github.repository }}:latest` | |
| Built from commit: ${{ github.sha }} | |
| artifacts: "artifacts/**/*.AppImage" | |
| allowUpdates: true | |
| removeArtifacts: true | |
| makeLatest: true | |
| token: ${{ secrets.GITHUB_TOKEN }} |