Build rootfs #883
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |