Skip to content

Merge pull request #52 from Dasharo/develop #81

Merge pull request #52 from Dasharo/develop

Merge pull request #52 from Dasharo/develop #81

Workflow file for this run

name: CI on push tag
on:
push:
tags:
- '*'
jobs:
build:
name: Build system image
runs-on: self-hosted
steps:
- name: Checkout meta-dts repo
uses: actions/checkout@v2
with:
path: "meta-dts"
- name: Build DTS image
shell: bash
run: |
kas-container build meta-dts/kas.yml
deploy-images:
name: Deploy DTS artifacts on boot.dasharo.com
if: always()
needs: build
runs-on: self-hosted
steps:
- name: Prepare SSH key
shell: bash
env:
SSH_KEY: ${{secrets.SSH_KEY}}
SSH_KEY_GITEA: ${{secrets.SSH_KEY_GITEA}}
run: |
echo -e ${SSH_KEY} | sed 's/^ *//' > ~/.ssh/dts-ci-key
chmod 600 ~/.ssh/dts-ci-key
echo ${SSH_KEY_GITEA} > ~/.ssh/gitea-key
chmod 600 ~/.ssh/gitea-key
cp ~/.ssh/config ~/.ssh/config-old
echo -e "\n
Host git.3mdeb.com\n
HostName git.3mdeb.com\n
IdentityFile ~/.ssh/gitea-key\n
IdentitiesOnly yes" >> ~/.ssh/config
- name: Get DTS version
id: dts-ver
shell: bash
run: |
DTS_VER=v`cat meta-dts/meta-dts-distro/conf/distro/dts-distro.conf | grep DISTRO_VERSION | tr -d "\" [A-Z]_="`
echo "DTS_VER=${DTS_VER}" >> $GITHUB_OUTPUT
- name: Deploy DTS on boot.dasharo.com
shell: bash
run: |
DTS_VER="${{steps.dts-ver.outputs.DTS_VER}}"
ssh -i ~/.ssh/dts-ci-key [email protected] "mkdir -p boot/dts/${DTS_VER}"
cd build/tmp/deploy/images/genericx86-64/
cp bzImage bzImage-${DTS_VER}
cp dts-base-image-genericx86-64.cpio.gz dts-base-image-${DTS_VER}.cpio.gz
cp dts-base-image-genericx86-64.wic.gz dts-base-image-${DTS_VER}.wic.gz
cp dts-base-image-genericx86-64.iso dts-base-image-${DTS_VER}.iso
scp -i ~/.ssh/dts-ci-key bzImage-${DTS_VER} [email protected]:boot/dts/${DTS_VER}/
scp -i ~/.ssh/dts-ci-key dts-base-image-${DTS_VER}.cpio.gz [email protected]:boot/dts/${DTS_VER}/
scp -i ~/.ssh/dts-ci-key dts-base-image-${DTS_VER}.wic.gz [email protected]:boot/dts/${DTS_VER}/
scp -i ~/.ssh/dts-ci-key dts-base-image-${DTS_VER}.iso [email protected]:boot/dts/${DTS_VER}/
- name: Deploy sha256 on boot.dasharo.com
shell: bash
run: |
DTS_VER="${{steps.dts-ver.outputs.DTS_VER}}"
cd build/tmp/deploy/images/genericx86-64/
sha256sum bzImage-${DTS_VER} > bzImage-${DTS_VER}.sha256
sha256sum dts-base-image-${DTS_VER}.cpio.gz > dts-base-image-${DTS_VER}.cpio.gz.sha256
sha256sum dts-base-image-${DTS_VER}.wic.gz > dts-base-image-${DTS_VER}.wic.gz.sha256
sha256sum dts-base-image-${DTS_VER}.iso > dts-base-image-${DTS_VER}.iso.sha256
scp -i ~/.ssh/dts-ci-key bzImage-${DTS_VER}.sha256 [email protected]:boot/dts/${DTS_VER}/
scp -i ~/.ssh/dts-ci-key dts-base-image-${DTS_VER}.cpio.gz.sha256 [email protected]:boot/dts/${DTS_VER}/
scp -i ~/.ssh/dts-ci-key dts-base-image-${DTS_VER}.wic.gz.sha256 [email protected]:boot/dts/${DTS_VER}/
scp -i ~/.ssh/dts-ci-key dts-base-image-${DTS_VER}.iso.sha256 [email protected]:boot/dts/${DTS_VER}/
- name: Update iPXE menu
shell: bash
run: |
./meta-dts/scripts/generate-ipxe-menu.sh ${{steps.dts-ver.outputs.DTS_VER}}
scp -i ~/.ssh/dts-ci-key dts.ipxe [email protected]:boot/dts/
- name: Trigger signing
shell: bash
run: |
DTS_VER="${{steps.dts-ver.outputs.DTS_VER}}"
git clone ssh://[email protected]:2222/3mdeb/dts-release-cicd-pipeline.git
cd dts-release-cicd-pipeline
echo ${DTS_VER} > LATEST_RELEASE
git add LATEST_RELEASE
git commit -m "Signing release ${DTS_VER}"
git push origin main
git tag ${DTS_VER}
git push origin ${DTS_VER}
cd -
cleanup:
name: Cleanup
if: always()
needs: deploy-images
runs-on: self-hosted
steps:
- name: Cleanup after deployment
shell: bash
run: |
rm -rf ~/.ssh/dts-ci-key
rm -rf dts-release-cicd-pipeline
rm -f ~/.ssh/gitea-key
rm -rf build
rm -f ~/.ssh/config
mv ~/.ssh/config-old ~/.ssh/config