Skip to content

Commit

Permalink
CI - add minimal build job
Browse files Browse the repository at this point in the history
The bare minimum to run the docker stuff.
  • Loading branch information
JanneKiiskila committed Oct 7, 2024
1 parent c22e6b0 commit 6c9a3c6
Showing 1 changed file with 122 additions and 0 deletions.
122 changes: 122 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
name: build

on:
push:
paths-ignore:
- '**/*.md'
workflow_dispatch:
schedule:
# Once in week 3:33 on Sunday (0 and 7 are Sunday)
- cron: '33 3 * * 0'

# This allows a subsequently queued workflow run to interrupt previous runs
concurrency:
group: pep-build-${{ github.event.pull_request.head.label || github.head_ref || github.ref }}
cancel-in-progress: true

jobs:
pep-build:
runs-on: ubuntu-latest
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
steps:
- uses: actions/checkout@v4
- name: Install docker-compose
run: |
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
dver=$(docker-compose version)
echo "$dver"
echo "$dver" >> $GITHUB_STEP_SUMMARY
- name: Configure fcu
run: |
mkdir fcu_config
cd fcu_config
echo "${{ secrets.FCU_KEYS_TAR_GZ_B64 }}" > fcu_keys.tar.gz.b64
base64 -d fcu_keys.tar.gz.b64 > fcu_keys.tar.gz
tar -xzf fcu_keys.tar.gz
- name: Download the factory_configurator_utility.zip (as the repo does not have it)
run: |
cd fcu_config
mkdir config
cp fcu.yml config/fcu.yml
curl -X GET \
https://api.us-east-1.mbedcloud.com/downloads/fcu/factory_configurator_utility.zip \
-H "Authorization: Bearer ${{ secrets.EDGE_EXAMPLES_API_KEY }}" \
-o factory_configurator_utility.zip
- name: Build
run: docker-compose build --build-arg fcu_config=fcu_config
- name: Start the docker
run: |
docker-compose up &
- name: Check the processes
run: |
retries=30
max_attempts=6 # 60 seconds
remaining_checks=${max_attempts}
attempt=1
while [[ "${attempt}" -le "${max_attempts}" ]]; do
procs=$(docker-compose ps --services)
if [[ -n "${procs}" ]]; then
echo "docker-compose up is running with $procs..."
break
fi
if [[ "${attempt}" -eq "${max_attempts}" ]]; then
echo "FAIL: docker-compose up not getting started..."
return 1
fi
attempt=$((attempt + 1))
sleep 10
done
while [ $retries -gt 0 ]; do
procs=$(docker-compose ps --services |grep mongo)
if [ -z "$procs" ]; then
echo "Waiting for docker container to start..."
sleep 10
retries=$((retries-1))
else
break
fi
done
procs=$(docker-compose ps)
echo "# docker-compose ps:"
echo "$procs"
# Check we find mongo in $procs
mongo=$(echo "$procs" | grep mongo)
if [[ -z "$mongo" ]]; then
echo "Failed to start mongoDB"
exit 1
fi
state=$(echo "$mongo" | grep "Up")
if [[ -z "$state" ]]; then
echo "Failed to get mongoDB container up."
exit 1
fi
api=$(echo "$procs" | grep api-server)
if [[ -z "$api" ]]; then
echo "Failed to start api-server"
exit 1
fi
state=$(echo "$api" | grep "Up")
if [[ -z "$state" ]]; then
echo "Failed to get api-server container up."
exit 1
fi
- name: Get the logs
run: |
logs=$(docker-compose logs)
echo "# docker-compose logs:" >> $GITHUB_STEP_SUMMARY
echo $logs >> $GITHUB_STEP_SUMMARY
# MongoDB only creates the database once you inject some data to it
# - name: Inspect mongo db volume
# run: |
# mong=$(docker volume inspect pelion-edge-provisioner_mongo_data)
# echo "# docker volume inspect pelion-edge-provisioner_mongo_data:" >> $GITHUB_STEP_SUMMARY
# echo $mong >> $GITHUB_STEP_SUMMARY
- name: Stop the container
run: docker-compose down

0 comments on commit 6c9a3c6

Please sign in to comment.