From 9dd369d5e4c43446862b2e79d92ecd3cac92bc3f Mon Sep 17 00:00:00 2001 From: Taimoor Ahmad Mirza Date: Fri, 16 Aug 2024 01:32:50 +0500 Subject: [PATCH] test(devcontainer): Add a GH Action for testing dev-container build. --- .github/workflows/test-devcontainer.yaml | 65 ++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 .github/workflows/test-devcontainer.yaml diff --git a/.github/workflows/test-devcontainer.yaml b/.github/workflows/test-devcontainer.yaml new file mode 100644 index 00000000000..4af39884bb6 --- /dev/null +++ b/.github/workflows/test-devcontainer.yaml @@ -0,0 +1,65 @@ +name: Test DevContainer Image + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + test-devcontainer: + runs-on: ubuntu-latest + steps: + - name: Checkout repository + uses: actions/checkout@v3 + + - name: Setup Go 1.22.x + uses: actions/setup-go@v5 + with: + go-version: "1.22.x" + + # required for installing devcontainer CLI + - name: Setup NodeJS 20.x + uses: actions/setup-node@v4 + with: + node-version: "20.x" + + - name: Setup Devcontainer CLI + run: | + npm install -g @devcontainers/cli + + - name: Generate sample Kubebuilder project + run: | + make install + mkdir test-project + cd test-project + ../bin/kubebuilder init --domain tutorial.kubebuilder.io --repo tutorial.kubebuilder.io/project + + # - name: Build and Validate DevContainer + # run: | + # ls -altr + # cd test-project/.devcontainer + # docker build -t kubebuilder-dc:latest . + + # if docker image inspect kubebuilder-dc:latest > /dev/null 2>&1; then + # echo "Docker image was built successfully." + # else + # echo "Docker image build failed." + # exit 1 + # fi + + - name: Build and Validate DevContainer + run: | + ls -altr + + OUTPUT=$(devcontainer up --workspace-folder=./test-project/) + STATUS=$(echo "$OUTPUT" | jq -r '.outcome') + + if [[ "$STATUS" == "success" ]]; then + echo "Devcontainer setup was successful." + else + echo "Devcontainer setup failed." + exit 1 + fi