diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000000..7ef7f45390 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,214 @@ +language: shell +dist: xenial +services: +- docker +env: + global: + - UPLOAD=0 + - REPO=nugu-linux + - REPOSLUG=nugu-developers/nugu-linux +addons: + apt: + packages: + - jq + - doxygen + - graphviz + +jobs: + include: + - stage: "Build" + env: + - TARGET=xenial_x64 + script: | + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./check.sh /tmp/check + echo "Script result = $?" + if [ -f /tmp/check ]; then + ./prepare.sh || exit 1 + ./extract.sh files_${TARGET}_${SHORTSHA} + UPLOAD=1 + fi + echo "Upload flag = $UPLOAD" + deploy: + provider: releases + api_key: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + file_glob: true + file: /tmp/result/* + on: + repo: nugulinux/sdk-unstable + condition: $UPLOAD = 1 + all_branches: true + overwrite: true + - + env: + - TARGET=xenial_arm64 + script: | + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./check.sh /tmp/check + echo "Script result = $?" + if [ -f /tmp/check ]; then + ./prepare.sh || exit 1 + ./extract.sh files_${TARGET}_${SHORTSHA} + UPLOAD=1 + fi + echo "Upload flag = $UPLOAD" + deploy: + provider: releases + api_key: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + file_glob: true + file: /tmp/result/* + on: + repo: nugulinux/sdk-unstable + condition: $UPLOAD = 1 + all_branches: true + overwrite: true + - + env: + - TARGET=xenial_armhf + script: | + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./check.sh /tmp/check + echo "Script result = $?" + if [ -f /tmp/check ]; then + ./prepare.sh || exit 1 + ./extract.sh files_${TARGET}_${SHORTSHA} + UPLOAD=1 + fi + echo "Upload flag = $UPLOAD" + deploy: + provider: releases + api_key: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + file_glob: true + file: /tmp/result/* + on: + repo: nugulinux/sdk-unstable + condition: $UPLOAD = 1 + all_branches: true + overwrite: true + - + env: + - TARGET=bionic_x64 + script: | + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./check.sh /tmp/check + echo "Script result = $?" + if [ -f /tmp/check ]; then + ./prepare.sh || exit 1 + ./extract.sh files_${TARGET}_${SHORTSHA} + UPLOAD=1 + fi + echo "Upload flag = $UPLOAD" + deploy: + provider: releases + api_key: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + file_glob: true + file: /tmp/result/* + on: + repo: nugulinux/sdk-unstable + condition: $UPLOAD = 1 + all_branches: true + overwrite: true + - + env: + - TARGET=bionic_arm64 + script: | + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./check.sh /tmp/check + echo "Script result = $?" + if [ -f /tmp/check ]; then + ./prepare.sh || exit 1 + ./extract.sh files_${TARGET}_${SHORTSHA} + UPLOAD=1 + fi + echo "Upload flag = $UPLOAD" + deploy: + provider: releases + api_key: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + file_glob: true + file: /tmp/result/* + on: + repo: nugulinux/sdk-unstable + condition: $UPLOAD = 1 + all_branches: true + overwrite: true + - + env: + - TARGET=bionic_armhf + script: | + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./check.sh /tmp/check + echo "Script result = $?" + if [ -f /tmp/check ]; then + ./prepare.sh || exit 1 + ./extract.sh files_${TARGET}_${SHORTSHA} + UPLOAD=1 + fi + echo "Upload flag = $UPLOAD" + deploy: + provider: releases + api_key: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + file_glob: true + file: /tmp/result/* + on: + repo: nugulinux/sdk-unstable + condition: $UPLOAD = 1 + all_branches: true + overwrite: true + - stage: "Generate DEB package repository" + name: Generate deb package repository using GitHub Pages + script: | + echo "Generate meta info" + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + export TRAVIS_TAG=${SHORTSHA} + ./generate.sh + deploy: + provider: pages + github_token: + secure: n+T33vCZNGTLlISJw/olUQHWXmAL4WvSyeiSKR6iamVb49axHcsBdHtMHnagTWCcwDRhJrKokmgn8pzjXnChANaTwp9ySxCmWhxYt1sOKQwHV3exl+5ilY3EqbEJxNRauckuT5w3kLTa6206Dh+ah+sLm8e42mAWuZJiAUQUKFOuOA7kdsWqCo9vNScd+7gFs/7EnMapsvWD43Jzo568VnyNXZK04GTmaUwoei2YV/aB4fe/stW+adCK7SmWCzeeY5a1fq7bgzJzKR8EpAJMOyoU5GaNdY1bxUsAguYEyS8l9I9t+RaP3OExXKYbxAxeh26cvpGSM1m9bYXK9Tt+AdDU1OmsGNULqzieLixH0BCByMqV7v+gGGqOQISGSWbWDQPoFZRY4YLODkVgL6wt4vMCLhvOevX790mWF8oDCE+aZwqvBOGfmUnZKoX0omTUwLHqLf+p+FZKsh4gzkbtY9QzDhrqyjTVFt5h83sZRe9qR/llxKfsP3k4b4ukAzVrRkqO2mtTjwMd9zmosOFxQH5XZqqqwiTtRf7aGcS92TaZvqHkhcXDpZTjp8/Uk/VfompKHzYkcyfO+WeYI37mLhye4HdMvWvl09D2Fp7do3ZjzYp352hnG4PG+yhiW/NAk2jNh9vYIpzniMVBcNRk0dYDGuY9OOgrJQ6QN4eO2e0= + local_dir: /tmp/www + keep_history: false + on: + repo: nugulinux/sdk-unstable + all_branches: true + - stage: "Generate docker image" + name: Generate unstable docker image for bionic_x64 + script: | + echo "Generate docker image" + export CURL_AUTH="Authorization: token ${GITHUB_TOKEN}" + export SHA=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${REPOSLUG}/commits/master | jq '.sha' -r) + export SHORTSHA=$(echo ${SHA} | cut -c -7) + ./dockerimage.sh + before_deploy: + - docker images + - docker login -u $DOCKER_USERNAME -p $DOCKER_PASSWORD + deploy: + provider: script + script: docker push nugulinux/sdk:unstable + on: + all_branches: true \ No newline at end of file diff --git a/README.md b/README.md index 50e00438e2..0b57df8292 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,27 @@ -# sdk-unstable -SDK Unstable release +[![Build Status](https://travis-ci.org/nugulinux/sdk-unstable.svg?branch=master)](https://travis-ci.org/nugulinux/sdk-unstable) + +# NUGU SDK for Linux unstable repository + +Unstable release page: + +Unstable API document: + +## Usage + +Add NUGU SDK for Linux PPA: + + sudo add-apt-repository ppa:nugulinux/sdk + +Create a `/etc/apt/sources.list.d/nugu-unstable.list` file with following content. + +Ubuntu 16.04: + + deb [trusted=yes] https://nugulinux.github.io/sdk-unstable/ubuntu/ xenial main + +Ubuntu 18.04: + + deb [trusted=yes] https://nugulinux.github.io/sdk-unstable/ubuntu/ bionic main + +Update the package information + + sudo apt-get update diff --git a/check.sh b/check.sh new file mode 100755 index 0000000000..7568429c6c --- /dev/null +++ b/check.sh @@ -0,0 +1,69 @@ +#!/bin/bash +set -e + +if [ $# != 1 ]; then + echo "Usage: $0 {flag-file-name}" + exit 1 +fi + +UBUNTUVER=$(echo $TARGET | cut -d "_" -f 1) +ARCH=$(echo $TARGET | cut -d "_" -f 2) +if [ "$ARCH" == "x64" ]; then + ARCH2="amd64" +else + ARCH2="${ARCH}" +fi + +echo "> output flag file: $1" + +echo "> TARGET = ${TARGET} ($UBUNTUVER, $ARCH($ARCH2))" +echo "> SHA = ${SHA}" +echo "> SHORTSHA = ${SHORTSHA}" +echo "> TRAVIS_REPO_SLUG = ${TRAVIS_REPO_SLUG}" +echo "> CURL_AUTH = ${CURL_AUTH}" + +# Check for releases +ID=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${TRAVIS_REPO_SLUG}/releases/tags/${SHORTSHA} | jq '.id' -r) +echo "> Release ID = ${ID}" +if [[ ${ID} == "null" ]]; then + echo "Release ${ID} not exist." + exit +fi + +# Check for duplicated files +COUNT=0 +MATCH_COUNT=6 +RESULT=$(curl -s -H "$CURL_AUTH" -X GET https://api.github.com/repos/${TRAVIS_REPO_SLUG}/releases/${ID}/assets?per_page=50) +FILES=$(echo $RESULT | jq '.[].name' -r) + +for item in $FILES +do + # Check ARCH or ARCH2 + if [[ $item == *"${ARCH}"* ]]; then + : + elif [[ $item == *"${ARCH2}"* ]]; then + : + else + continue; + fi + + # Check Ubuntu version (bionic / xenial) + if [[ $item == *"${UBUNTUVER}"* ]]; then + : + else + continue; + fi + + declare -i COUNT; COUNT+=1 + echo "> Found build artifacts: [${COUNT}/${MATCH_COUNT}] ${item}" +done + +# Mark to flag file to trigger the build +if [[ $COUNT == $MATCH_COUNT ]]; then + echo "> There is no need to rebuild." +else + echo "> Rebuild required" + echo 1 > $1 +fi + +echo "> Check completed" diff --git a/docker/Dockerfile b/docker/Dockerfile new file mode 100644 index 0000000000..cd6dc0e23b --- /dev/null +++ b/docker/Dockerfile @@ -0,0 +1,27 @@ +FROM ubuntu:bionic +LABEL maintainer="nugulinux@gmail.com" \ + version="0.1" \ + description="nugulinux unstable sdk" + +ARG LAST_COMMIT + +ENV DEBIAN_FRONTEND=noninteractive \ + LC_ALL=C \ + LANG=C \ + LANGUAGE=C \ + SHELL=/bin/bash \ + PULSE_SERVER=host.docker.internal \ + LAST_COMMIT=$LAST_COMMIT + +RUN apt-get update && apt-get install -y software-properties-common ca-certificates --no-install-recommends \ + && add-apt-repository -y ppa:nugulinux/sdk \ + && echo "deb [trusted=yes] https://nugulinux.github.io/sdk-unstable/ubuntu/ bionic main" > /etc/apt/sources.list.d/nugu-unstable.list \ + && apt-get update && apt-get install -y --no-install-recommends \ + gstreamer1.0-pulseaudio \ + libnugu \ + libnugu-plugins-default \ + libnugu-examples \ + pulseaudio \ + && apt-get clean \ + && rm -rf /var/lib/apt/lists/* \ + && mkdir -p /var/lib/nugu diff --git a/dockerimage.sh b/dockerimage.sh new file mode 100755 index 0000000000..1f657eff5c --- /dev/null +++ b/dockerimage.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +echo "OS=$OSTYPE" + +LAST_COMMIT=`docker run -it --rm nugulinux/sdk:unstable printenv | grep LAST_COMMIT` +echo $LAST_COMMIT + +if [[ "$OSTYPE" == "linux-gnu"* ]]; then + COMMIT=$(echo $LAST_COMMIT | sed -r 's/LAST_COMMIT=(.*)/\1/' | tr -d '\r') +elif [[ "$OSTYPE" == "darwin"* ]]; then + COMMIT=$(echo $LAST_COMMIT | gsed -r 's/LAST_COMMIT=(.*)/\1/' | tr -d '\r') +fi + +echo "SHORTSHA='${SHORTSHA}'" +echo "nugulinux/sdk:unstable commit='${COMMIT}'" + +if [[ "${COMMIT}" == "${SHORTSHA}" ]]; then + echo "Same version" + exit 0 +else + echo "not match" + cd docker + docker build --build-arg LAST_COMMIT=${SHORTSHA} . -t nugulinux/sdk:unstable + cd - +fi diff --git a/extract.sh b/extract.sh new file mode 100755 index 0000000000..e1be8af00c --- /dev/null +++ b/extract.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +if [[ ! -z $1 ]]; then + FILENAME=$1 +else + FILENAME=files +fi + +echo "Output name = ${FILENAME}.tgz" + +# Create temporary directory +if [[ ! -d dest ]]; then + mkdir dest +fi + +# Extract all deb packages +FILES=$(ls *.deb) +for item in $FILES +do + echo "Extract ${item}" + ar x ${item} + tar -C dest -xvf data.tar.xz +done + +# Generate files.tgz +cd dest +tar cvfz ../${FILENAME}.tgz . +cd - + +cp ${FILENAME}.tgz /tmp/result/ + +# Remove temporary directory +rm -rf dest + +echo "Cleanup workspace" +git reset --hard +git clean -dfx + diff --git a/generate.sh b/generate.sh new file mode 100755 index 0000000000..adfddcaa0a --- /dev/null +++ b/generate.sh @@ -0,0 +1,135 @@ +#!/bin/bash + +TAG=${SHORTSHA} + +BASEROOT=/tmp/www +POOL_XENIAL=${BASEROOT}/ubuntu/dists/xenial/pool +POOL_BIONIC=${BASEROOT}/ubuntu/dists/bionic/pool + +DIRS=( + ${POOL_XENIAL} + ${POOL_BIONIC} + ${BASEROOT}/ubuntu/dists/xenial/main/binary-amd64 + ${BASEROOT}/ubuntu/dists/xenial/main/binary-arm64 + ${BASEROOT}/ubuntu/dists/xenial/main/binary-armhf + ${BASEROOT}/ubuntu/dists/bionic/main/binary-amd64 + ${BASEROOT}/ubuntu/dists/bionic/main/binary-arm64 + ${BASEROOT}/ubuntu/dists/bionic/main/binary-armhf +) + +for item in "${DIRS[@]}" +do + echo "- Create ${item}" + if [[ ! -d ${item} ]]; then + mkdir -p ${item} + fi +done + +echo "> Get release(${TAG}) information from ${TRAVIS_REPO_SLUG}" + +ID=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X GET https://api.github.com/repos/${TRAVIS_REPO_SLUG}/releases/tags/${TAG} | jq '.id' -r) +echo "ID = ${ID}" + +echo "> Get file list" +RESULT=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X GET https://api.github.com/repos/${TRAVIS_REPO_SLUG}/releases/${ID}/assets?per_page=50) +FILES=$(echo $RESULT | jq '.[].browser_download_url' -r) +for item in $FILES +do + if [[ $item != *.deb ]]; then + echo "- ignore: ${item}" + continue + fi + + if [[ $item == *"xenial"* ]]; then + echo "- 16.04: ${item}" + wget -nv ${item} -P ${POOL_XENIAL} + elif [[ $item == *"bionic"* ]]; then + echo "- 18.04: ${item}" + wget -nv ${item} -P ${POOL_BIONIC} + else + echo "- unknown version: ${item}" + fi +done + +# Generate index.html +DATE=$(date) +cat < ${BASEROOT}/index.html + + +

DEB Package repository for unstable release

+ +

+last unstable commit: ${SHORTSHA} +

+ +

+API Document(doxygen): https://nugulinux.github.io/sdk-unstable/doxygen/ +

+ +
+ +

NUGU SDK for Linux PPA Setup (stable release)

+
+    add-apt-repository ppa:nugulinux/sdk
+    apt-get update
+
+ +
+ +

Unstable package repository setup

+ +

Bionic (18.04)

+
+    echo "deb [trusted=yes] https://nugulinux.github.io/sdk-unstable/ubuntu/ bionic main" > /etc/apt/sources.list.d/nugudev.list
+    apt-get update
+
+ +

Xenial (16.04)

+
+    echo "deb [trusted=yes] https://nugulinux.github.io/sdk-unstable/ubuntu/ xenial main" > /etc/apt/sources.list.d/nugudev.list
+    apt-get update
+
+ +
+ +

Generated at ${DATE}

+ + + +EOF + +function generate { + DIST=$1 + HOST=$2 + PKGSREPO="dists/${DIST}/pool" + PKGS="dists/${DIST}/main/binary-${HOST}/" + + echo "> DEB Repo: ${PKGSREPO}" + echo "> Packages path: ${PKGS}" + + cd ${BASEROOT}/ubuntu + dpkg-scanpackages -m -a $HOST $PKGSREPO > ${PKGS}/Packages + cd - +} + +function generate_doxygen { + git clone https://github.com/${REPOSLUG} + cd ${REPO} + git checkout ${SHA} + git reset --hard + rm -rf .git + + doxygen + mv doc/html ${BASEROOT}/doxygen + cd .. + rm -rf ${REPO} +} + +generate "xenial" "amd64" +generate "xenial" "arm64" +generate "xenial" "armhf" +generate "bionic" "amd64" +generate "bionic" "arm64" +generate "bionic" "armhf" + +generate_doxygen diff --git a/prepare.sh b/prepare.sh new file mode 100755 index 0000000000..4b8e31c9c6 --- /dev/null +++ b/prepare.sh @@ -0,0 +1,52 @@ +#!/bin/bash +set -e + +echo "Repository slug = ${REPOSLUG}" +echo "SHA = ${SHA}" +echo "Short SHA = ${SHORTSHA}" + +# Get date for commit to genereate version +DATETIME=$(curl -s -H "Authorization: token ${GITHUB_TOKEN}" -X GET https://api.github.com/repos/${REPOSLUG}/commits/${SHORTSHA} | jq '.commit.committer.date' -r) +echo "commit.committer.date = ${DATETIME}" + +STAMP=$(date -d ${DATETIME} +%Y%m%d) +VERSION="${STAMP}${SHORTSHA}" +echo "package version = ${VERSION}" + +echo "Clone the sdk repository" +git clone https://github.com/${REPOSLUG} --recursive +cd ${REPO} +git checkout ${SHA} +git reset --hard +rm -rf .git + +echo "Add commit-id(${SHORTSHA}) to package version" +sed -i "1 s/ubuntu[0-9]*~xenial/ubuntu${VERSION}~xenial/" packaging/xenial/changelog +sed -i "1 s/ubuntu[0-9]*~bionic/ubuntu${VERSION}~bionic/" packaging/bionic/changelog +head -1 packaging/xenial/changelog +head -1 packaging/bionic/changelog +cd - + +# Fix permissions for docker +chmod 777 $PWD +chmod 777 $PWD/${REPO} + +echo "Build debian package" +docker run -t --rm --privileged -v $PWD:$PWD -w $PWD/${REPO} \ + -v /var/lib/schroot/chroots \ + nugulinux/buildenv:$TARGET sdkbuild.sh + +ls -l + +if [[ -d /tmp/result ]]; then + echo "/tmp/result exist" + ls -l /tmp/result + rm -rf /tmp/result/* +else + echo "Create /tmp/result" + mkdir /tmp/result +fi + +cp *.deb /tmp/result/ + +echo "Completed"