From a47812d345284d3f5d59ff71854e012f8caf906f Mon Sep 17 00:00:00 2001 From: Radostin Emanuilov Date: Wed, 28 Aug 2024 16:40:20 +0100 Subject: [PATCH] chore: gitea pipeline --- .gitea/actions/build-push-bootc.yaml | 7 ++++ .gitea/actions/build-vm.yaml | 0 .gitea/workflows/build-push.yaml | 57 ++++++++++++++++++++++++++++ 3 files changed, 64 insertions(+) create mode 100644 .gitea/actions/build-push-bootc.yaml create mode 100644 .gitea/actions/build-vm.yaml create mode 100644 .gitea/workflows/build-push.yaml diff --git a/.gitea/actions/build-push-bootc.yaml b/.gitea/actions/build-push-bootc.yaml new file mode 100644 index 0000000..e01392d --- /dev/null +++ b/.gitea/actions/build-push-bootc.yaml @@ -0,0 +1,7 @@ +# action.yml +name: 'Build VM disk' +description: 'Setups a Rocky Linux 9 Cloud based VM disk capable of building the bootc image' +runs: + using: 'docker' + image: 'docker://docker.io/monolithify/gitlab-runner-image:latest' + post-entrypoint: './scripts/setupBuilder/main.sh' \ No newline at end of file diff --git a/.gitea/actions/build-vm.yaml b/.gitea/actions/build-vm.yaml new file mode 100644 index 0000000..e69de29 diff --git a/.gitea/workflows/build-push.yaml b/.gitea/workflows/build-push.yaml new file mode 100644 index 0000000..9def719 --- /dev/null +++ b/.gitea/workflows/build-push.yaml @@ -0,0 +1,57 @@ +env: + VM_DISK_OUTPUT_DIR: "/rockyDisks" + SECURE_FILES_DOWNLOAD_PATH: "/secureFiles" + REPO_DIR: /base-image-build + VM_DISK_FILE_TO_DOWNLOAD: "Rocky-9-GenericCloud-Base-9.4-20240609.0.x86_64.qcow2" + BASE_DISK_FILEPATH: "${{ env.VM_DISK_OUTPUT_DIR }}/${{ env.VM_DISK_FILE_TO_DOWNLOAD }}" + OUTPUT_FILE_PATH: "${{ env.VM_DISK_OUTPUT_DIR }}/${{ env.VM_DISK_FILE_TO_DOWNLOAD }}-${{ env.CI_COMMIT_SHA }}" + ROCKY_VERSION: "9.4" + CONTAINER_REGISTRY_DOMAIN: docker.io + CONTAINER_REGISTRY_ORG: monolithify + CONTAINER_REGISTRY_WITH_ORG: ${{ env.CONTAINER_REGISTRY_DOMAIN }}/${{ env.CONTAINER_REGISTRY_ORG}} + CONTAINER_REGISTRY_RW_USER: ${{ vars.CONTAINER_REGISTRY_RW_USER }} + CONTAINER_REGISTRY_RW_PASS: ${{ secrets.CONTAINER_REGISTRY_RW_PASS }} + CI_COMMIT_SHA: ${{ github.sha }} + BUILDER_PRIVATE_KEY: ${{ secrets.BUILDER_PRIVATE_KEY }} + BUILDER_PUBLIC_KEY: ${{ secrets.BUILDER_PUBLIC_KEY }} + BUILDER_CONTAINER_NAME: bootc-builder + OUTPUT_BOOTC_IMAGE_NAME: "rocky9-bootc:${{ env.CI_COMMIT_SHA }}" + OUTPUT_BOOTC_IMAGE_NAME_LATEST: "rocky9-bootc:latest" + +name: build and push bootc image +on: + push: + branches: + - main +jobs: + build: + runs-on: bootc-runner + container: + image: docker:27.0.3 + services: + docker: + image: docker:27.0.3-dind + steps: + - name: Setup the build environment + run: | + export BUILDER_PRIVATE_KEY=$(echo -ne "$BUILDER_PRIVATE_KEY" | awk '{printf "%s\\n", $0}') + export BUILDER_PUBLIC_KEY=$(echo -ne "$BUILDER_PUBLIC_KEY" | awk '{printf "%s\\n", $0}') + printenv > .env + docker run -d --name $BUILDER_CONTAINER_NAME --privileged \ + --env-file .env \ + docker.io/monolithify/gitlab-runner-image + docker exec $BUILDER_CONTAINER_NAME git clone https://gitlab.com/monolithify/base-image-build.git $REPO_DIR + docker exec $BUILDER_CONTAINER_NAME chmod -R +x $REPO_DIR/scripts + docker exec $BUILDER_CONTAINER_NAME mkdir /rockyDisks + + - name: Setup builder VM + run: | + docker exec $BUILDER_CONTAINER_NAME $REPO_DIR/scripts/setupBuilder/main.sh + + - name: Build-Push the bootc container image + run: + docker exec $BUILDER_CONTAINER_NAME $REPO_DIR/scripts/buildPushBootcContainerImage/main.sh + + - name: Stop the dangling builder container + if: always() + run: docker rm -f $BUILDER_CONTAINER_NAME || true \ No newline at end of file