diff --git a/.github/workflows/wkdev-sdk.yml b/.github/workflows/wkdev-sdk.yml index 94ecdfb..e7876d4 100644 --- a/.github/workflows/wkdev-sdk.yml +++ b/.github/workflows/wkdev-sdk.yml @@ -19,6 +19,7 @@ jobs: echo "WKDEV_SDK_TAG=latest" >> "${GITHUB_ENV}" fi echo "WKDEV_SDK_CONTAINER_REGISTRY_USER_NAME=$(echo ${GITHUB_REPOSITORY_OWNER} | tr '[:upper:]' '[:lower:]')" >> "${GITHUB_ENV}" + echo "REPO=ghcr.io/$(echo ${GITHUB_REPOSITORY_OWNER} | tr '[:upper:]' '[:lower:]')/wkdev-sdk" >> "${GITHUB_ENV}" - name: Install podman run: sudo apt-get update && sudo apt-get -y install podman fuse-overlayfs @@ -26,6 +27,14 @@ jobs: - name: Checkout repo uses: actions/checkout@v4 + - name: Clean previous images + run: | + podman rmi ${REPO}:latest || true + podman manifest rm ${REPO}:latest || true + podman rmi ${REPO}:latest_arm64 || true + podman rmi ${REPO}:latest_amd64 || true + podman rmi ${REPO}:latest_arm || true + - name: Build image run: | source ./register-sdk-on-host.sh @@ -61,6 +70,7 @@ jobs: echo "WKDEV_SDK_TAG=latest" >> "${GITHUB_ENV}" fi echo "WKDEV_SDK_CONTAINER_REGISTRY_USER_NAME=$(echo ${GITHUB_REPOSITORY_OWNER} | tr '[:upper:]' '[:lower:]')" >> "${GITHUB_ENV}" + echo "REPO=ghcr.io/$(echo ${GITHUB_REPOSITORY_OWNER} | tr '[:upper:]' '[:lower:]')/wkdev-sdk" >> "${GITHUB_ENV}" - name: Install podman run: sudo apt-get update && sudo apt-get -y install podman fuse-overlayfs @@ -68,6 +78,14 @@ jobs: - name: Checkout repo uses: actions/checkout@v4 + - name: Clean previous images + run: | + podman rmi ${REPO}:latest || true + podman manifest rm ${REPO}:latest || true + podman rmi ${REPO}:latest_arm64 || true + podman rmi ${REPO}:latest_amd64 || true + podman rmi ${REPO}:latest_arm || true + - name: Build image run: | source ./register-sdk-on-host.sh @@ -94,9 +112,60 @@ jobs: podman rm ${CONTAINER} || true rm -rf ${HOME}/${CONTAINER}-home + build_armv7: + runs-on: arm-bothost-2 + steps: + - name: Set tag name + run: | + if [ "${GITHUB_BASE_REF}" = 'main' ]; then + echo "WKDEV_SDK_TAG=latest" >> "${GITHUB_ENV}" + fi + echo "WKDEV_SDK_CONTAINER_REGISTRY_USER_NAME=$(echo ${GITHUB_REPOSITORY_OWNER} | tr '[:upper:]' '[:lower:]')" >> "${GITHUB_ENV}" + echo "REPO=ghcr.io/$(echo ${GITHUB_REPOSITORY_OWNER} | tr '[:upper:]' '[:lower:]')/wkdev-sdk" >> "${GITHUB_ENV}" + + - name: Install podman + run: sudo apt-get update && sudo apt-get -y install podman fuse-overlayfs + + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Clean previous images + run: | + podman rmi ${REPO}:latest || true + podman manifest rm ${REPO}:latest || true + podman rmi ${REPO}:latest_arm64 || true + podman rmi ${REPO}:latest_amd64 || true + podman rmi ${REPO}:latest_arm || true + + - name: Build image + run: | + source ./register-sdk-on-host.sh + wkdev-sdk-bakery --mode=build --verbose --arch arm + podman image list + wkdev-sdk-bakery --mode=export --verbose --arch arm + + - name: Archive image + uses: actions/upload-artifact@v4 + with: + name: wkdev-sdk-arm.tar + path: wkdev-sdk-arm.tar + retention-days: 7 + + - name: Test image + run: | + CONTAINER="wkdev-$(date +%s)" + source ./register-sdk-on-host.sh + wkdev-create --create-home --home ${HOME}/${CONTAINER}-home --verbose --attach --no-pull --name ${CONTAINER} --arch arm --shell /bin/bash + wkdev-enter -n ${CONTAINER} --exec -- git clone --depth=1 https://github.com/WebKit/WebKit.git + wkdev-enter -n ${CONTAINER} --exec -- ./WebKit/Tools/Scripts/build-webkit --wpe --release --generate-project-only + wkdev-enter -n ${CONTAINER} --exec -- ./WebKit/Tools/Scripts/build-webkit --gtk --release --generate-project-only + podman stop ${CONTAINER} || true + podman rm ${CONTAINER} || true + rm -rf ${HOME}/${CONTAINER}-home + deploy: runs-on: [self-hosted, x64] - needs: [build_amd64, build_arm64] + needs: [build_amd64, build_arm64, build_armv7] if: github.ref_name == 'main' || startsWith(github.ref_name, 'tag/') steps: - name: Set tag name @@ -120,14 +189,19 @@ jobs: merge-multiple: true - run: ls -al + - name: Clean previous images + run: | + podman rmi ${REPO}:latest || true + podman manifest rm ${REPO}:latest || true + podman rmi ${REPO}:latest_arm64 || true + podman rmi ${REPO}:latest_amd64 || true + podman rmi ${REPO}:latest_arm || true + - name: Deploy image run: | - podman rmi -f wkdev-sdk:latest || true - podman manifest rm wkdev-sdk:latest || true - podman rmi -f wkdev-sdk:latest_amd64 || true - podman rmi -f wkdev-sdk:latest_arm64 || true podman load < ./wkdev-sdk-amd64.tar podman load < ./wkdev-sdk-arm64.tar + podman load < ./wkdev-sdk-arm.tar podman image list echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io --username=${GITHUB_REPOSITORY_OWNER} --password-stdin source ./register-sdk-on-host.sh