diff --git a/.forgejo/workflows/build-fedora-41.yml b/.forgejo/workflows/build-fedora-41.yml new file mode 100644 index 0000000..212d68a --- /dev/null +++ b/.forgejo/workflows/build-fedora-41.yml @@ -0,0 +1,40 @@ + +$schema: https://github.com/SchemaStore/schemastore/raw/master/src/schemas/json/github-workflow.json + +on: + push: + branches: ['master'] + paths: + - "fedora-41/**" + - "fedora-41-minimal/**" + - "shared/**" + - ".forgejo/workflows/build-fedora-41.yml" + schedule: + - cron: "0 0 * * 3" # Every Thursday 00:00 + + +jobs: + build: + runs-on: linux-lg + container: + image: code.lightstands.xyz/standcoded/fedora-minimal:40 + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Setup Bun + uses: oven-sh/setup-bun@v2 + with: + bun-version-file: 'package.json' + - name: Fulfill Package Manager Cache + run: dnf makecache -y --releasever 41 + - name: Sign in to Image Index + run: buildah login code.lightstands.xyz --username ${{ env.GITHUB_ACTOR }} --password ${{ secrets.PUBLICATION_TOKEN }} + - name: Build Minimal Images + run: DNF_CACHE_PATH=/var/cache/dnf bun shared/build-image.ts code.lightstands.xyz/standcoded/fedora-minimal:41 fedora-41-minimal + - name: Push Minimal Images + run: buildah manifest push code.lightstands.xyz/standcoded/fedora-minimal:41 --all + - name: Build Complete Images + run: DNF_CACHE_PATH=/var/cache/dnf bun shared/build-image.ts code.lightstands.xyz/standcoded/fedora:41 fedora-41 + - name: Push Complete Images + run: buildah manifest push code.lightstands.xyz/standcoded/fedora:41 --all + diff --git a/README.md b/README.md index cce6f30..0ff98e9 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,10 @@ These images is cached on action runner machines and is able to run most of the | Name | OS and Distro | Description | Note | | - | - | - | - | -| `fedora:40` | Fedora 40 | [Description](./fedora-40/README.md) | | -| `fedora-minimal:40` | Fedora 40 | [Description](./fedora-40-minimal/README.md) | | +| `fedora:41` | Fedora 41 | [Description](./fedora-41/README.md) | | +| `fedora-minimal:41` | Fedora 41 | [Description](./fedora-41-minimal/README.md) | | +| `fedora:40` | Fedora 40 | [Description](./fedora-40/README.md) | Deprecated, will be removed after June 2025 | +| `fedora-minimal:40` | Fedora 40 | [Description](./fedora-40-minimal/README.md) | Deprecated, will be removed after June 2025 | ## FAQ diff --git a/fedora-41-minimal/Containerfile b/fedora-41-minimal/Containerfile new file mode 100644 index 0000000..306e8c3 --- /dev/null +++ b/fedora-41-minimal/Containerfile @@ -0,0 +1,19 @@ +FROM fedora:41 + +RUN sh /imgbuild/fedora/instpkgs-minimal.sh + +# We don't clean up dnf cache since user may want to install packages for their use + +ADD containers.conf /etc/containers/ + +RUN sh /imgbuild/configure-nested-container.sh + +VOLUME /var/lib/containers +VOLUME /home/action/.local/share/containers + +# Set up environment variables to note that this is +# not starting with usernamespace and default to +# isolate the filesystem with chroot. +ENV _BUILDAH_STARTED_IN_USERNS="" BUILDAH_ISOLATION=chroot + +ENTRYPOINT [ "/bin/bash" ] diff --git a/fedora-41-minimal/README.md b/fedora-41-minimal/README.md new file mode 100644 index 0000000..8ab0a5d --- /dev/null +++ b/fedora-41-minimal/README.md @@ -0,0 +1,64 @@ +# fedora-minimal:41 + +```yaml +container: + image: code.lightstands.xyz/standcoded/fedora-minimal:41 +``` + +## Included Softwares + +### General + +- coreutils +- bash +- aria2 +- jq +- yq +- zstd +- brotil +- sqlite + +### Version Control + +- git +- git-lfs +- git-ftp + +### Container Management + +- podman +- buildah +- fuse-overlayfs + +### NodeJS + +- nodejs +- nodejs-npm + +### Python + +- python3 +- python3-devel +- python3-pip +- pipx + +### Perl + +- perl +- perl-CPAN + +### Ruby + +- ruby +- rubygems + +### C + +- clang +- gcc + +## Additional Configuration + +### Building Container Images + +This images configured buildah to be correctly run under a container. You can use [The workflow of this project](../.forgejo/workflows/build-fedora-41.yml) as an example. diff --git a/fedora-41-minimal/containers.conf b/fedora-41-minimal/containers.conf new file mode 100644 index 0000000..0bf45cd --- /dev/null +++ b/fedora-41-minimal/containers.conf @@ -0,0 +1,2 @@ +[engine] +cgroup_manager = "cgroupfs" diff --git a/fedora-41/Containerfile b/fedora-41/Containerfile new file mode 100644 index 0000000..b29ee3b --- /dev/null +++ b/fedora-41/Containerfile @@ -0,0 +1,23 @@ +FROM code.lightstands.xyz/standcoded/fedora-minimal:41 + +RUN dnf install -y --setopt install_weak_deps=False sqlite-devel binutils + +RUN dnf install -y --setopt install_weak_deps=False nodejs-devel poetry perl-devel ruby-devel + +RUN dnf install -y --setopt install_weak_deps=False php php-devel composer + +RUN dnf install -y --setopt install_weak_deps=False java-1.8.0-openjdk java-1.8.0-openjdk-devel + +RUN dnf install -y --setopt install_weak_deps=False java-11-openjdk java-11-openjdk-devel + +RUN dnf install -y --setopt install_weak_deps=False java-17-openjdk java-17-openjdk-devel + +RUN dnf install -y --setopt install_weak_deps=False java-21-openjdk java-21-openjdk-devel + +RUN dnf install -y --setopt install_weak_deps=False qemu-user-static qemu-user-binfmt + +RUN dnf install -y --setopt install_weak_deps=False bison flex vcpkg + +RUN dnf group install -y --setopt install_weak_deps=False "C Development Tools and Libraries" + +RUN npm -g install corepack diff --git a/fedora-41/README.md b/fedora-41/README.md new file mode 100644 index 0000000..8440282 --- /dev/null +++ b/fedora-41/README.md @@ -0,0 +1,91 @@ +# fedora:41 + +```yaml +container: + image: code.lightstands.xyz/standcoded/fedora:40 +``` + +## Included Softwares + +### General + +- coreutils +- bash +- aria2 +- jq +- yq +- zstd +- brotil +- sqlite +- sqlite-devel +- binutils + +### Version Control + +- git +- git-lfs +- git-ftp + +### Container Management + +- podman +- buildah +- fuse-overlayfs +- qemu-user-static +- qemu-user-binfmt + +### NodeJS + +- nodejs +- nodejs-npm +- nodejs-devel +- corepack + +### Python + +- python3-devel +- python3-pip +- pipx +- poetry + +### Perl + +- perl +- perl-CPAN +- perl-devel + +### Ruby + +- ruby +- rubygems +- ruby-devel + +### C/C++ + +- clang +- gcc +- bison +- flex +- "C Development Tools and Libraries" +- vcpkg + +### PHP + +- php +- php-devel +- composer + +### Java + +| Version | Packages | +| - | - | +| 1.8.0 | java-1.8.0-openjdk, java-1.8.0-openjdk-devel | +| 11 | java-11-openjdk, java-11-openjdk-devel | +| 17 | java-17-openjdk, java-17-openjdk-devel | +| 21 | java-21-openjdk, java-21-openjdk-devel | + +## Additional Configuration + +### Building Container Images + +This images configured buildah to be correctly run under a container. You can use [The workflow of this project](../.forgejo/workflows/build-fedora-41.yml) as an example. diff --git a/shared/install-vcpkg.sh b/shared/install-vcpkg.sh deleted file mode 100644 index bf1ea59..0000000 --- a/shared/install-vcpkg.sh +++ /dev/null @@ -1,4 +0,0 @@ -# https://learn.microsoft.com/zh-cn/vcpkg/get_started/get-started?pivots=shell-cmd - -echo TODO -exit 1 \ No newline at end of file