From 28576e4fa28baea0fbcaa37bec74a96ed730a2e6 Mon Sep 17 00:00:00 2001 From: Eshan Roy Date: Fri, 29 Nov 2024 07:14:43 +0530 Subject: [PATCH] test(docker): push test image --- .github/workflows/snigdhaos-docker.yml | 36 +++++++++ Dockerfile | 22 ++++++ pacman.conf | 101 +++++++++++++++++++++++++ 3 files changed, 159 insertions(+) create mode 100644 .github/workflows/snigdhaos-docker.yml create mode 100644 Dockerfile create mode 100644 pacman.conf diff --git a/.github/workflows/snigdhaos-docker.yml b/.github/workflows/snigdhaos-docker.yml new file mode 100644 index 0000000..4dd5889 --- /dev/null +++ b/.github/workflows/snigdhaos-docker.yml @@ -0,0 +1,36 @@ +name: Snigdha OS Docker Image + +on: + workflow_dispatch: + schedule: + - cron: '30 05 * * *' + push: + branches: + - 'master' + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - + name: Checkout + 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: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - + name: Build and push + uses: docker/build-push-action@v6 + with: + context: . + push: true + tags: snigdhaos/snigdhaos:latest \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..84b5d87 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,22 @@ +FROM archlinux:base-devel AS rootfs + +RUN pacman -Syu --noconfirm && \ + pacman -S --needed --noconfirm pacman-contrib git openssh sudo curl +COPY pacman.conf /etc/pacman.conf +RUN curl https://raw.githubusercontent.com/Snigdha-OS/snigdhaos-pkgbuilds/refs/heads/master/snigdhaos-mirrorlist/snigdhaos-mirrorlist -o /etc/pacman.d/snigdhaos-mirrorlist + + +## include to pacman own keyring to install signed packages +RUN pacman-key --init && \ + pacman-key --recv-keys E1415F19F21171F2 --keyserver keyserver.ubuntu.com && \ + pacman-key --lsign-key E1415F19F21171F2 && \ + pacman -Sy && \ + pacman -S --needed --noconfirm snigdhaos-keyring snigdhaos-mirrorlist && \ + pacman -Syu --noconfirm && \ + rm -rf /var/lib/pacman/sync/* && \ + find /var/cache/pacman/ -type f -delete + +FROM scratch +LABEL org.opencontainers.image.description="Snigdha OS - Arch-based distribution offering an easy installation, several customizations, and unique performance optimization." +COPY --from=rootfs / / +CMD ["/usr/bin/bash"] \ No newline at end of file diff --git a/pacman.conf b/pacman.conf new file mode 100644 index 0000000..062e75f --- /dev/null +++ b/pacman.conf @@ -0,0 +1,101 @@ +# +# /etc/pacman.conf +# +# See the pacman.conf(5) manpage for option and repository directives + +# +# GENERAL OPTIONS +# +[options] +# The following paths are commented out with their default values listed. +# If you wish to use different paths, uncomment and update the paths. +#RootDir = / +#DBPath = /var/lib/pacman/ +#CacheDir = /var/cache/pacman/pkg/ +#LogFile = /var/log/pacman.log +#GPGDir = /etc/pacman.d/gnupg/ +#HookDir = /etc/pacman.d/hooks/ +HoldPkg = pacman glibc +#XferCommand = /usr/bin/curl -L -C - -f -o %o %u +#XferCommand = /usr/bin/wget --passive-ftp -c -O %o %u +#CleanMethod = KeepInstalled +#UseDelta = 0.7 +Architecture = auto + +#IgnorePkg = +#IgnorePkg = +#IgnoreGroup = + +#NoUpgrade = +#NoExtract = + +# Misc options +#UseSyslog +Color +ILoveCandy +#NoProgressBar +#CheckSpace +VerbosePkgLists +DisableDownloadTimeout +ParallelDownloads = 10 + +# By default, pacman accepts packages signed by keys that its local keyring +# trusts (see pacman-key and its man page), as well as unsigned packages. +SigLevel = Required DatabaseOptional +LocalFileSigLevel = Optional +#RemoteFileSigLevel = Required + +# NOTE: You must run `pacman-key --init` before first using pacman; the local +# keyring can then be populated with the keys of all official Arch Linux +# packagers with `pacman-key --populate archlinux`. + +# +# REPOSITORIES +# - can be defined here or included from another file +# - pacman will search repositories in the order defined here +# - local/custom mirrors can be added here or in separate files +# - repositories listed first will take precedence when packages +# have identical names, regardless of version number +# - URLs will have $repo replaced by the name of the current repo +# - URLs will have $arch replaced by the name of the architecture +# +# Repository entries are of the format: +# [repo-name] +# Server = ServerName +# Include = IncludePath +# +# The header [repo-name] is crucial - it must be present and +# uncommented to enable the repo. +# + +# The testing repositories are disabled by default. To enable, uncomment the +# repo name header and Include lines. You can add preferred servers immediately +# after the header, and they will be used before the default mirrors. + +#[testing] +#Include = /etc/pacman.d/mirrorlist + +[snigdhaos] +Include = /etc/pacman.d/snigdhaos-mirrorlist + +[core] +Include = /etc/pacman.d/mirrorlist + +[extra] +Include = /etc/pacman.d/mirrorlist + + +# If you want to run 32 bit applications on your x86_64 system, +# enable the multilib repositories as required here. + +#[multilib-testing] +#Include = /etc/pacman.d/mirrorlist + +[multilib] +Include = /etc/pacman.d/mirrorlist + +# An example of a custom package repository. See the pacman manpage for +# tips on creating your own repositories. +#[custom] +#SigLevel = Optional TrustAll +#Server = file:///home/custompkgs \ No newline at end of file