initial commit
This commit is contained in:
commit
e266f84da7
70
.github/workflows/build-arch-images.yml
vendored
Normal file
70
.github/workflows/build-arch-images.yml
vendored
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
name: Docker Image CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
branches: [ master ]
|
||||||
|
push:
|
||||||
|
branches: [ master ]
|
||||||
|
paths: [ docker/* ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ master ]
|
||||||
|
paths: [ docker/* ]
|
||||||
|
schedule:
|
||||||
|
- cron: '0 5 * * 4'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
|
||||||
|
build_arch_images:
|
||||||
|
name: Build build images
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
timeout-minutes: 20
|
||||||
|
strategy:
|
||||||
|
fail-fast: true
|
||||||
|
matrix:
|
||||||
|
images:
|
||||||
|
[
|
||||||
|
arch,
|
||||||
|
artix
|
||||||
|
]
|
||||||
|
env:
|
||||||
|
DH_REGISTRY: docker.io
|
||||||
|
REPO_ORG: corysanin
|
||||||
|
IMAGE_NAME: archy-build-thing
|
||||||
|
ABSOLUTE_DH_IMAGE: ${{ env.DH_REGISTRY }}/${{ REPO_ORG }}/${{ env.IMAGE_NAME }}
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
packages: write
|
||||||
|
|
||||||
|
steps:
|
||||||
|
# - name: Checkout repository
|
||||||
|
# uses: https://github.com/actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v2
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v2
|
||||||
|
with:
|
||||||
|
install: true
|
||||||
|
|
||||||
|
- name: Build Docker image
|
||||||
|
uses: https://github.com/docker/build-push-action@v5
|
||||||
|
with:
|
||||||
|
push: false
|
||||||
|
pull: true
|
||||||
|
no-cache: true
|
||||||
|
context: ./docker/
|
||||||
|
file: ./docker/Dockerfile.${{ matrix.images }}
|
||||||
|
tags: "${{ env.ABSOLUTE_DH_IMAGE }}:${{ matrix.images }}"
|
||||||
|
|
||||||
|
- name: Log in to the Docker Hub
|
||||||
|
uses: https://github.com/docker/login-action@v3
|
||||||
|
with:
|
||||||
|
registry: ${{ env.DH_REGISTRY }}
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Push to Docker Hub
|
||||||
|
if: github.ref == 'refs/heads/master' && ( gitea.event_name == 'push' || gitea.event_name == 'schedule' )
|
||||||
|
run: docker push "${{ env.ABSOLUTE_DH_IMAGE }}:${{ matrix.images }}"
|
21
LICENSE
Normal file
21
LICENSE
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2019 Cory Sanin
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
17
docker/Dockerfile.arch
Normal file
17
docker/Dockerfile.arch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
FROM archlinux/archlinux:base-devel
|
||||||
|
|
||||||
|
COPY scripts/entrypoint.sh /scripts/entrypoint.sh
|
||||||
|
COPY scripts/testing.arch.sh /scripts/testing.sh
|
||||||
|
|
||||||
|
RUN sed -i '1iServer = https://mirror.sanin.dev/arch-linux/\$repo/os/\$arch' /etc/pacman.d/mirrorlist && \
|
||||||
|
pacman -Syu --noconfirm git clang sudo devtools vim bash-completion && \
|
||||||
|
chmod +x /scripts/* && \
|
||||||
|
useradd -m user && \
|
||||||
|
echo "user:pass-$RANDOM" | chpasswd && \
|
||||||
|
echo 'user ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||||
|
|
||||||
|
USER user
|
||||||
|
|
||||||
|
WORKDIR /home/user/
|
||||||
|
|
||||||
|
CMD [ "/scripts/entrypoint.sh" ]
|
19
docker/Dockerfile.artix
Normal file
19
docker/Dockerfile.artix
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
FROM artixlinux/artixlinux:base-devel
|
||||||
|
|
||||||
|
COPY scripts/entrypoint.sh /scripts/entrypoint.sh
|
||||||
|
COPY scripts/testing.artix.sh /scripts/testing.sh
|
||||||
|
|
||||||
|
ARG MIRROR=https://mirror.sanin.dev/artix-linux/\$repo/os/\$arch
|
||||||
|
|
||||||
|
RUN sed -i '1iServer = $MIRROR' /etc/pacman.d/mirrorlist && \
|
||||||
|
pacman -Syu --noconfirm git clang sudo vim glibc openssh bash-completion && \
|
||||||
|
chmod +x /scripts/* && \
|
||||||
|
useradd -m user && \
|
||||||
|
echo "user:pass-$RANDOM" | chpasswd && \
|
||||||
|
echo 'user ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers
|
||||||
|
|
||||||
|
USER user
|
||||||
|
|
||||||
|
WORKDIR /home/user/
|
||||||
|
|
||||||
|
CMD [ "/bin/bash" ]
|
21
docker/scripts/entrypoint.sh
Executable file
21
docker/scripts/entrypoint.sh
Executable file
@ -0,0 +1,21 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
if [ -n "$DEP" ]
|
||||||
|
then
|
||||||
|
if [ "$DEP" = "testing" ]
|
||||||
|
then
|
||||||
|
/scripts/testing.sh
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$REPO" ]
|
||||||
|
then
|
||||||
|
/bin/bash
|
||||||
|
exit $?;
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Clone the git repo
|
||||||
|
git clone "$REPO" /home/user/pkg
|
||||||
|
cd /home/user/pkg
|
||||||
|
makepkg -smf --noconfirm --noprogressbar --skippgpcheck --noarchive
|
||||||
|
exit $?;
|
13
docker/scripts/testing.arch.sh
Executable file
13
docker/scripts/testing.arch.sh
Executable file
@ -0,0 +1,13 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Enable the [core-testing] repository by uncommenting the relevant lines in the configuration file
|
||||||
|
sudo sed -i 's/^#\[core-testing\]/\[core-testing\]/' /etc/pacman.conf
|
||||||
|
|
||||||
|
# Enable the [extra-testing] repository by uncommenting the relevant lines in the configuration file
|
||||||
|
sudo sed -i 's/^#\[extra-testing\]/\[extra-testing\]/' /etc/pacman.conf
|
||||||
|
|
||||||
|
# Uncomment the 'Include = /etc/pacman.d/mirrorlist' line in the configuration file if necessary
|
||||||
|
sudo sed -i '/testing\]/{n;s/^#//}' /etc/pacman.conf
|
||||||
|
|
||||||
|
# Update the package list and upgrade the system
|
||||||
|
sudo pacman -Syu
|
0
docker/scripts/testing.artix.sh
Executable file
0
docker/scripts/testing.artix.sh
Executable file
Loading…
x
Reference in New Issue
Block a user