diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..b960f0a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +*.md +.git +.gitignore +.vscode +docs diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..bf407aa --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,48 @@ +name: Lindbergh Loader CI + +on: + pull_request: + branches: + - master + push: + branches: + - master + # NOTE: Manual releases for now, only currently + # testing with pre-releases and artifacts + # tags: + # - 'v*' + +jobs: + + ci: + runs-on: ubuntu-latest + permissions: + contents: write + steps: + + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Build Docker image and output + uses: docker/build-push-action@v5 + with: + context: . + push: false + outputs: type=local,dest=build + + - name: Create build artifacts + uses: actions/upload-artifact@v3 + if: github.event_name == 'pull_request' + with: + name: lindbergh-loader-${{ github.event.pull_request.head.sha }} + path: build/* + + - name: Create pre-release + uses: "marvinpinto/action-automatic-releases@latest" + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + with: + repo_token: "${{ secrets.GITHUB_TOKEN }}" + automatic_release_tag: "latest" + prerelease: true + title: "Lindbergh Loader" + files: build/* diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2aa55ca --- /dev/null +++ b/Dockerfile @@ -0,0 +1,35 @@ +FROM debian:bullseye AS lindbergh-build + +RUN dpkg --add-architecture i386 \ + && apt-get update \ + && apt-get install -y --no-install-recommends \ + build-essential \ + freeglut3-dev:i386 \ + freeglut3:i386 \ + gcc-multilib \ + libglew-dev \ + libopenal-dev:i386 \ + libopenal1:i386 \ + libstdc++5:i386 \ + libxmu6:i386 \ + wget \ + xorg-dev \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* + +WORKDIR /xenial-libs +RUN wget -q http://launchpadlibrarian.net/534757982/multiarch-support_2.23-0ubuntu11.3_i386.deb \ + && dpkg -i multiarch-support_2.23-0ubuntu11.3_i386.deb +RUN wget -q http://launchpadlibrarian.net/184146495/libalut0_1.1.0-5_i386.deb \ + && dpkg -i libalut0_1.1.0-5_i386.deb +RUN wget -q http://launchpadlibrarian.net/184146496/libalut-dev_1.1.0-5_i386.deb \ + && dpkg -i libalut-dev_1.1.0-5_i386.deb + +WORKDIR /lindbergh-loader +COPY . . + +RUN make + +# Output binaries of build using the --output=PATH argument +FROM scratch AS binaries +COPY --from=lindbergh-build /lindbergh-loader/build/* / diff --git a/README.md b/README.md index c7cc46b..7a9337d 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ sudo apt install freeglut3:i386 sudo apt install freeglut3-dev:i386 sudo apt install libglew-dev sudo apt install xorg-dev -sudo apt install libopenal1 libopenal-dev +sudo apt install libopenal1:i386 libopenal-dev:i386 sudo apt install libalut-dev:i386 // You will need to find libalut-dev:i386, libalut0:i386 and multiarch-support:i386 from Ubuntu Xenial. sudo apt install libxmu6:i386 sudo apt install libstdc++5:i386