diff --git a/.gitea/workflows/build.yaml b/.gitea/workflows/build.yaml new file mode 100644 index 0000000..206346c --- /dev/null +++ b/.gitea/workflows/build.yaml @@ -0,0 +1,59 @@ +name: Build Linux Containers +run-name: ${{ gitea.actor }} is building the global containers 🚀 +on: [push] + +env: + GITEA_DOMAIN: git.tesses.org + GITEA_REGISTRY_USER: tesses50 + RESULT_MINGW_IMAGE_NAME: tesses50/global-containers-mingw + +jobs: + build-and-push-mingw-image: + runs-on: fw13-ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Log in to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.GITEA_DOMAIN }} + username: ${{ env.GITEA_REGISTRY_USER }} + password: ${{ secrets.PACKAGE_AND_BREW }} + - name: Publish mingw image + uses: docker/build-push-action@v6 + with: + context: . + file: ./Dockerfile.mingw + push: true + tags: ${{ env.GITEA_DOMAIN }}/${{ env.RESULT_MINGW_IMAGE_NAME }}:latest + build-and-push-linux-image: + # The 'container' tag replaces the runner OS; the job runs INSIDE this image + strategy: + fail-fast: true + matrix: + include: + - imageName: linux-x64 + - imageName: linux-arm64 + - imageName: linux-riscv64 + + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Log in to registry + uses: docker/login-action@v3 + with: + registry: ${{ env.GITEA_DOMAIN }} + username: ${{ env.GITEA_REGISTRY_USER }} + password: ${{ secrets.PACKAGE_AND_BREW }} + - name: Publish ${{ matrix.imageName }} + uses: docker/build-push-action@v6 + with: + context: ./containers/${{ matrix.imageName }} + file: ./Dockerfile.linux + push: true + tags: ${{ env.GITEA_DOMAIN }}/tesses50/${{ matrix.imageName }}:latest diff --git a/Dockerfile.linux b/Dockerfile.linux index 45be6b6..b45208e 100644 --- a/Dockerfile.linux +++ b/Dockerfile.linux @@ -1,6 +1,30 @@ -FROM archlinux:latest +FROM docker.gitea.com/runner-images:ubuntu-24.04 -RUN pacman --noconfirm -Syu && pacman --noconfirm -Sy wget sudo arch-install-scripts git cmake make mbedtls ncurses rsync bison flex git gperf help2man lzip python unzip base-devel nodejs npm +ENV DEBIAN_FRONTEND=noninteractive +RUN apt-get -y update && apt-get -y install \ + autoconf \ + automake \ + bison \ + build-essential \ + flex \ + gawk \ + gettext \ + g++ \ + git \ + help2man \ + libncurses5-dev \ + libtool-bin \ + python3-dev \ + texinfo \ + unzip \ + wget \ + ninja-build \ + cmake \ + curl \ + zip \ + tar \ + gzip +#RUN pacman --noconfirm -Syu && pacman --noconfirm -Sy wget sudo arch-install-scripts git cmake make mbedtls ncurses rsync bison flex git gperf help2man lzip python unzip base-devel nodejs npm RUN git clone https://github.com/crosstool-ng/crosstool-ng && cd ./crosstool-ng && ./bootstrap && ./configure && make install @@ -15,7 +39,7 @@ USER build WORKDIR /home/build/ct -RUN cp /tmp/config .config && ct-ng build.2 && rm -rf * +RUN cp /tmp/config .config && ct-ng build.6 && rm -rf * USER root