From 77fa87d9b7356c72ca5d8e346bce9811552e9328 Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata Date: Mon, 7 Feb 2022 20:57:33 +0100 Subject: [PATCH] Generate dockerfile in GHA --- .github/workflows/generateDockerLayer.yml | 37 +++++++++++++++++++++++ Dockerfile | 31 +++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 .github/workflows/generateDockerLayer.yml create mode 100644 Dockerfile diff --git a/.github/workflows/generateDockerLayer.yml b/.github/workflows/generateDockerLayer.yml new file mode 100644 index 0000000000..91164f5af8 --- /dev/null +++ b/.github/workflows/generateDockerLayer.yml @@ -0,0 +1,37 @@ +name: Generate Docker Layer + +on: + push: + branches: + - master + tags: + - v* + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - name: Extract DOCKER_TAG using tag name + if: startsWith(github.ref, 'refs/tags/') + run: | + echo "DOCKER_TAG=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_ENV + + - name: Use default DOCKER_TAG + if: startsWith(github.ref, 'refs/tags/') != true + run: | + echo "DOCKER_TAG=latest" >> $GITHUB_ENV + + - name: Login to Github registry + uses: docker/login-action@v1 + with: + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + registry: ghcr.io + + - uses: docker/build-push-action@v2 + with: + push: true + tags: ghcr.io/${{ github.repository }}:${{ env.DOCKER_TAG }} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..0d4ae5bc07 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,31 @@ +# First stage +FROM alpine:latest + +COPY . /src + + +RUN apk add build-base wget git bash cmake python3 glu-dev + +# Installing SDL2 from source because current SDL2 package in alpine +# has some tricks that make PPSSPP compilation to fail +ENV SDL_VERSION=2.0.20 +RUN wget https://github.com/libsdl-org/SDL/archive/refs/tags/release-${SDL_VERSION}.tar.gz && \ + tar -xf release-${SDL_VERSION}.tar.gz && cd SDL-release-${SDL_VERSION} && mkdir build && cd build && \ + cmake -DCMAKE_BUILD_TYPE=Release .. && \ + make -j$(getconf _NPROCESSORS_ONLN) clean && \ + make -j$(getconf _NPROCESSORS_ONLN) && \ + make -j$(getconf _NPROCESSORS_ONLN) install + +RUN cd src/ffmpeg && ./linux_x86-64.sh +RUN cd src && ./b.sh --headless + +# Second stage +FROM alpine:latest + +# Install required dependencies to make headless to work +RUN apk add --no-cache sdl2 libstdc++ glu-dev + +# Copy minimal things to make headless to work +COPY --from=0 src/build/PPSSPPHeadless usr/local/bin/ + +RUN PPSSPPHeadless || true \ No newline at end of file