Skip to content

Build rootfs

Build rootfs #900

Workflow file for this run

name: Build rootfs
on:
schedule:
- cron: '0 0 * * 0'
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
container:
image: ghcr.io/kreatolinux/builder:latest #ghcr.io/kreatolinux/builder-aarch64-cross-gnu@sha256:c69a427737f005277a8b3a1aaceea81beb9b1f4aa0e25d51934d9669ba027942
options: --privileged
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Update cache on every commit
uses: actions/cache@v4
with:
path: /var/cache/kpkg/archives
key: binary-cache-${{ github.run_id }}
restore-keys: |
binary-cache
- name: Build nocc rootfs tarball
run: |
IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh init
IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh build nocc
- name: Upload nocc Rootfs
uses: actions/upload-artifact@v4
with:
# Artifact name
name: nocc-rootfs # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: ${{ github.workspace }}/kreato-linux-nocc-*.tar.gz
# The desired behavior if no files are found using the provided path.
if-no-files-found: error
#- name: Build nocc-arm64 rootfs tarball
# run: |
# IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh build nocc arm64
#- name: Upload nocc-arm64 Rootfs
# uses: actions/upload-artifact@v4
# with:
# Artifact name
# name: nocc-arm64 # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
# path: ${{ github.workspace }}/kreato-linux-builder-nocc-*-arm64.tar.gz
# The desired behavior if no files are found using the provided path.
# if-no-files-found: error
- name: Build builder rootfs tarball
run: |
IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh build builder
- name: Upload Builder Rootfs
uses: actions/upload-artifact@v4
with:
# Artifact name
name: builder-rootfs # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: ${{ github.workspace }}/kreato-linux-builder-*.tar.gz
# The desired behavior if no files are found using the provided path.
if-no-files-found: error
- name: Build builder-gnu rootfs tarball
run: |
IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh build builder-gnu
- name: Upload builder-gnu Rootfs
uses: actions/upload-artifact@v4
with:
# Artifact name
name: builder-gnu-rootfs # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: ${{ github.workspace }}/kreato-linux-builder-gnu-*.tar.gz
# The desired behavior if no files are found using the provided path.
if-no-files-found: error
- name: Build builder-systemd rootfs tarball
run: |
IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh build builder-systemd
- name: Upload builder-systemd Rootfs
uses: actions/upload-artifact@v4
with:
# Artifact name
name: builder-systemd-rootfs # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: ${{ github.workspace }}/kreato-linux-builder-systemd-*.tar.gz
# The desired behavior if no files are found using the provided path.
if-no-files-found: error
- name: Build builder-repo rootfs tarball
run: |
IS_ACTIONS=y sh $GITHUB_WORKSPACE/scripts/build-ci.sh build builder-repo
- name: Upload builder-repo Rootfs
uses: actions/upload-artifact@v4
with:
# Artifact name
name: builder-repo-rootfs # optional, default is artifact
# A file, directory or wildcard pattern that describes what to upload
path: ${{ github.workspace }}/kreato-linux-builder-repo-*.tar.gz
# The desired behavior if no files are found using the provided path.
if-no-files-found: error
docker:
runs-on: ubuntu-latest
needs: build
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download artifacts from build job
uses: actions/download-artifact@v4
- name: Prepare for Docker
run: |
mkdir /tmp/docker.tmp /tmp/docker.tmp.nocc /tmp/docker.tmp.builder-gnu /tmp/docker.tmp.builder-repo /tmp/docker.tmp.builder-systemd
cp $GITHUB_WORKSPACE/docker/Dockerfile /tmp/docker.tmp.nocc || exit 1
cp $GITHUB_WORKSPACE/docker/Dockerfile /tmp/docker.tmp/ || exit 1
cp $GITHUB_WORKSPACE/docker/Dockerfile /tmp/docker.tmp.builder-gnu || exit 1
cp $GITHUB_WORKSPACE/docker/Dockerfile /tmp/docker.tmp.builder-systemd || exit 1
cp $GITHUB_WORKSPACE/docker/Dockerfile /tmp/docker.tmp.builder-repo || exit 1
tar -xvpf $GITHUB_WORKSPACE/builder-gnu-rootfs/kreato-linux-builder-gnu-*.tar.gz -C "/tmp/docker.tmp.builder-gnu"
tar -xvpf $GITHUB_WORKSPACE/builder-systemd-rootfs/kreato-linux-builder-systemd-*.tar.gz -C "/tmp/docker.tmp.builder-systemd"
tar -xvpf $GITHUB_WORKSPACE/builder-repo-rootfs/kreato-linux-builder-repo-*.tar.gz -C "/tmp/docker.tmp.builder-repo"
tar -xvpf $GITHUB_WORKSPACE/builder-rootfs/kreato-linux-builder-*.tar.gz -C "/tmp/docker.tmp"
tar -xvpf $GITHUB_WORKSPACE/nocc-rootfs/kreato-linux-nocc-*.tar.gz -C "/tmp/docker.tmp.nocc"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub and Forgejo Packages
run: |
echo $CR_PAT | docker login ghcr.io -u kreatolinux --password-stdin
#echo $FORGEJO_KEY | docker login git.kreato.dev -u kreato --password-stdin
env:
CR_PAT: ${{ secrets.CR_PAT }}
#FORGEJO_KEY: ${{ secrets.FORGEJO_KEY }}
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build and push builder image
uses: docker/build-push-action@v5
with:
context: /tmp/docker.tmp
push: true
tags: kreato/builder:latest ,ghcr.io/kreatolinux/builder:latest #,git.kreato.dev/kreatolinux/builder:latest
- name: Remove builder image
run: |
sudo rm -rf /tmp/docker.tmp
sudo docker rmi ghcr.io/kreatolinux/builder kreato/builder -f
#git.kreato.dev/kreatolinux/builder -f
- name: Build and push nocc image
uses: docker/build-push-action@v5
with:
context: /tmp/docker.tmp.nocc
push: true
tags: kreato/linux:latest,ghcr.io/kreatolinux/nocc:latest #,git.kreato.dev/kreatolinux/nocc:latest
- name: Remove nocc image
run: |
sudo rm -rf /tmp/docker.tmp.nocc
sudo docker rmi ghcr.io/kreatolinux/nocc kreato/linux -f # git.kreato.dev/kreatolinux/nocc -f
- name: Build and push builder-repo image
uses: docker/build-push-action@v5
with:
context: /tmp/docker.tmp.builder-repo
push: true
tags: kreato/builder-repo:latest,ghcr.io/kreatolinux/builder-repo:latest #,git.kreato.dev/kreatolinux/builder-repo:latest
- name: Build and push builder-gnu image
uses: docker/build-push-action@v5
with:
context: /tmp/docker.tmp.builder-gnu
push: true
tags: kreato/builder-gnu:latest,ghcr.io/kreatolinux/builder-gnu:latest #,git.kreato.dev/kreatolinux/builder-gnu:latest
- name: Remove builder-repo image
run: |
sudo rm -rf /tmp/docker.tmp.builder-repo
sudo docker rmi ghcr.io/kreatolinux/builder-repo kreato/builder-repo -f #git.kreato.dev/kreatolinux/builder-repo -f
- name: Remove builder-gnu image
run: |
sudo rm -rf /tmp/docker.tmp.builder-gnu
sudo docker rmi ghcr.io/kreatolinux/builder-gnu kreato/builder-gnu -f #git.kreato.dev/kreatolinux/builder-gnu -f
- name: Build and push builder-systemd image
uses: docker/build-push-action@v5
with:
context: /tmp/docker.tmp.builder-systemd
push: true
tags: kreato/builder-systemd:latest,ghcr.io/kreatolinux/builder-systemd:latest #,git.kreato.dev/kreatolinux/builder-systemd:latest