From 1fcde7be27889b37346bcbd1bb48f3fcd3f24e8f Mon Sep 17 00:00:00 2001 From: lukstep Date: Sun, 25 Jun 2023 12:16:06 +0200 Subject: [PATCH] Add Github CI configuration --- .github/workflows/sdk-ci.yml | 47 ++++++++++++++++++++++++++++++++++++ README.md | 2 ++ test_sdk.sh | 7 ++++-- 3 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 .github/workflows/sdk-ci.yml diff --git a/.github/workflows/sdk-ci.yml b/.github/workflows/sdk-ci.yml new file mode 100644 index 0000000..e6e3f94 --- /dev/null +++ b/.github/workflows/sdk-ci.yml @@ -0,0 +1,47 @@ +name: Raspberry PI Pico Docker SDK CI + +on: + push: + branches: + - main + pull_request: + branches: + - main + release: + types: [published] + +env: + TEST_TAG: pico_test_sdk + +jobs: + sdk_container: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v3 + - name: Build SDK + uses: docker/build-push-action@v4 + with: + context: . + load: true + tags: ${{ env.TEST_TAG }} + - name: Test SDK + run: bash ./test_sdk.sh ${{ env.TEST_TAG }} + - name: Log into Docker Hub + uses: docker/login-action@v2 + with: + username: ${{ github.actor }} + password: ${{ secrets.DOCKER_HUB_TOKEN }} + - name: Extract SDK metadata + id: meta + uses: docker/metadata-action@v4 + with: + images: lukstep/raspberry-pi-pico-sdk + - name: Push SDK image + if: github.event_name == 'release' && github.event.action == 'published' + uses: docker/build-push-action@v4 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/README.md b/README.md index 8235610..ac9e969 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,5 @@ +[![Raspberry PI Pico Docker SDK CI](https://github.com/lukstep/raspberry-pi-pico-docker-sdk/actions/workflows/sdk-ci.yml/badge.svg?branch=main)](https://github.com/lukstep/raspberry-pi-pico-docker-sdk/actions/workflows/sdk-ci.yml) + # Raspberry Pi Pico Docker SDK Lightweight Raspberry Pi Pico C++ SDK container. diff --git a/test_sdk.sh b/test_sdk.sh index a8d4da4..c3c9856 100644 --- a/test_sdk.sh +++ b/test_sdk.sh @@ -1,5 +1,8 @@ -docker build . --tag lukstep/raspberry-pi-pico-sdk:latest -docker run -d -it --name pico-sdk --mount type=bind,source=${PWD}/test_poject,target=/home/dev lukstep/raspberry-pi-pico-sdk:latest +if [[ -z $1 ]]; then + echo "Please provide an SDK image you want to test" +fi + +docker run -d -it --name pico-sdk --mount type=bind,source=${PWD}/test_poject,target=/home/dev $1 docker exec pico-sdk /bin/sh -c "cd /home/dev && mkdir build && cd build && cmake .. && make -j4" docker exec pico-sdk /bin/sh -c "picotool" docker container kill pico-sdk