-
-
Notifications
You must be signed in to change notification settings - Fork 16
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
migrate to github actions + configure jenkins
- Loading branch information
1 parent
c5eeccb
commit 2f5a568
Showing
7 changed files
with
105 additions
and
100 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,45 +8,27 @@ on: | |
|
||
env: | ||
BASE_VERSION: "1.1" | ||
DEBEMAIL: "[email protected]" | ||
DEBFULLNAME: "r2cloud" | ||
|
||
jobs: | ||
build: | ||
name: Build and analyze | ||
runs-on: ubuntu-latest | ||
env: | ||
SONAR_SCANNER_VERSION: 4.7.0.2747 # Find the latest version in the "Linux" link on this page: | ||
# https://docs.sonarqube.org/latest/analysis/scan/sonarscanner/ | ||
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }} # Value stored in a Github secret | ||
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed | ||
steps: | ||
- uses: actions/checkout@v3 | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | ||
- name: Set up JDK 11 | ||
uses: actions/setup-java@v1 | ||
with: | ||
java-version: 11 | ||
- name: Cache SonarQube packages | ||
uses: actions/cache@v1 | ||
with: | ||
path: ~/.sonar/cache | ||
key: ${{ runner.os }}-sonar | ||
restore-keys: ${{ runner.os }}-sonar | ||
- name: Download and set up sonar-scanner | ||
env: | ||
SONAR_SCANNER_DOWNLOAD_URL: https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-${{ env.SONAR_SCANNER_VERSION }}-linux.zip | ||
run: | | ||
mkdir -p $HOME/.sonar | ||
curl -sSLo $HOME/.sonar/sonar-scanner.zip ${{ env.SONAR_SCANNER_DOWNLOAD_URL }} | ||
unzip -o $HOME/.sonar/sonar-scanner.zip -d $HOME/.sonar/ | ||
echo "$HOME/.sonar/sonar-scanner-${{ env.SONAR_SCANNER_VERSION }}-linux/bin" >> $GITHUB_PATH | ||
- name: Download and set up build-wrapper | ||
env: | ||
BUILD_WRAPPER_DOWNLOAD_URL: ${{ env.SONAR_HOST_URL }}/static/cpp/build-wrapper-linux-x86.zip | ||
run: | | ||
curl -sSLo $HOME/.sonar/build-wrapper-linux-x86.zip ${{ env.BUILD_WRAPPER_DOWNLOAD_URL }} | ||
unzip -o $HOME/.sonar/build-wrapper-linux-x86.zip -d $HOME/.sonar/ | ||
echo "$HOME/.sonar/build-wrapper-linux-x86" >> $GITHUB_PATH | ||
- name: Install sonar-scanner and build-wrapper | ||
uses: SonarSource/sonarcloud-github-c-cpp@v2 | ||
- name: install dependencies | ||
run: | | ||
sudo apt-get update | ||
|
@@ -77,59 +59,30 @@ jobs: | |
deploy: | ||
name: Build, package and deploy | ||
needs: build | ||
env: | ||
APT_CLI_VERSION: "apt-cli-1.4" | ||
GPG_KEYNAME: "F2DCBFDCA5A70917" | ||
strategy: | ||
matrix: | ||
hosts: [[self-hosted, bullseye], [self-hosted, buster], [self-hosted, stretch2], ubuntu-18.04] | ||
hosts: [ubuntu-20.04, ubuntu-22.04] | ||
cpu: ["nocpuspecific"] | ||
runs-on: ${{ matrix.hosts }} | ||
steps: | ||
- name: Set env | ||
run: echo "OS_CODENAME=$(lsb_release --codename --short)" >> $GITHUB_ENV | ||
- uses: actions/checkout@v3 | ||
with: | ||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | ||
ref: '${{ env.OS_CODENAME }}' | ||
- name: install dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install -y dirmngr lsb-release | ||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A5A70917 | ||
sudo bash -c "echo \"deb http://apt.leosatdata.com $(lsb_release --codename --short) main\" > /etc/apt/sources.list.d/r2cloud.list" | ||
sudo bash -c "echo \"deb http://apt.leosatdata.com/cpu-generic $(lsb_release --codename --short) main\" > /etc/apt/sources.list.d/r2cloud-generic.list" | ||
sudo apt-get update | ||
sudo apt-get install -y debhelper git-buildpackage libconfig-dev zlib1g-dev valgrind check cmake pkg-config libvolk2-dev librtlsdr-dev | ||
- name: Import GPG key | ||
uses: crazy-max/ghaction-import-gpg@v5 | ||
with: | ||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} | ||
passphrase: ${{ secrets.PASSPHRASE }} | ||
- name: merge from upstream | ||
run: | | ||
git config user.email "[email protected]" | ||
git config user.name "r2cloud" | ||
git merge origin/main --no-edit | ||
- name: Set compilation flags | ||
run: bash ./configure_flags.sh ${{ matrix.cpu }} | ||
- name: build debian package | ||
run: | | ||
gbp dch --auto --debian-branch=${{ env.OS_CODENAME }} --upstream-branch=main --new-version=${{ env.BASE_VERSION }}.${{ github.run_number }}-${{ github.run_number }}~${{ env.OS_CODENAME }} --git-author --distribution=unstable --commit | ||
git push origin | ||
rm -f ../${GITHUB_REPOSITORY#*/}*deb | ||
gbp buildpackage --git-ignore-new --git-upstream-tag=${{ env.BASE_VERSION }}.${{ github.run_number }} --git-keyid=${{ env.GPG_KEYNAME }} | ||
- name: Configure AWS Credentials | ||
uses: aws-actions/configure-aws-credentials@v1 | ||
uses: aws-actions/configure-aws-credentials@v4 | ||
with: | ||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | ||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | ||
aws-region: us-east-1 | ||
- name: Deploy | ||
run: | | ||
cd .. | ||
if [ ! -f ${{ env.APT_CLI_VERSION }}.jar ]; then | ||
wget -O ${{ env.APT_CLI_VERSION }}.jar.temp https://github.com/dernasherbrezon/apt-cli/releases/download/${{ env.APT_CLI_VERSION }}/apt-cli.jar | ||
mv ${{ env.APT_CLI_VERSION }}.jar.temp ${{ env.APT_CLI_VERSION }}.jar | ||
fi | ||
java -jar ${{ env.APT_CLI_VERSION }}.jar --url s3://${{ env.BUCKET }} --component main --codename ${{ env.OS_CODENAME }} --gpg-keyname ${{ env.GPG_KEYNAME }} --gpg-arguments "--pinentry-mode,loopback" save --patterns ./*.deb,./*.ddeb | ||
- name: Set env | ||
run: echo "OS_CODENAME=$(lsb_release --codename --short)" >> $GITHUB_ENV | ||
- uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis | ||
ref: '${{ env.OS_CODENAME }}' | ||
- name: Configure agent | ||
run: bash ./configure_agent.sh | ||
- name: Build and deploy | ||
run: bash ./build_and_deploy.sh ${{ matrix.cpu }} ${{ env.OS_CODENAME }} ${{ env.BASE_VERSION }} ${{ github.run_number }} F2DCBFDCA5A70917 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
pipeline { | ||
agent none | ||
parameters { | ||
string(name: 'BASE_VERSION', defaultValue: '1.1', description: 'From https://github.com/dernasherbrezon/sdr-server/actions') | ||
string(name: 'BUILD_NUMBER', defaultValue: '77', description: 'From https://github.com/dernasherbrezon/sdr-server/actions') | ||
} | ||
environment { | ||
GPG = credentials("GPG") | ||
DEBEMAIL = '[email protected]' | ||
DEBFULLNAME = 'r2cloud' | ||
} | ||
stages { | ||
stage('Package and deploy') { | ||
matrix { | ||
axes { | ||
axis { | ||
name 'OS_CODENAME' | ||
values 'bullseye', 'stretch', 'buster', 'bookworm' | ||
} | ||
axis { | ||
name 'CPU' | ||
values 'nocpuspecific' | ||
} | ||
} | ||
agent { | ||
label "${OS_CODENAME}" | ||
} | ||
stages { | ||
stage('Checkout') { | ||
steps { | ||
git(url: '[email protected]:dernasherbrezon/sdr-server.git', branch: "${OS_CODENAME}", credentialsId: '5c8b3e93-0551-475c-9e54-1266242c8ff5', changelog: false) | ||
} | ||
} | ||
stage('build and deploy') { | ||
steps { | ||
sh 'echo $GPG_PSW | /usr/lib/gnupg2/gpg-preset-passphrase -c C4646FB23638AE9010EB1F7F37A0505CF4C5B746' | ||
sh 'echo $GPG_PSW | /usr/lib/gnupg2/gpg-preset-passphrase -c 9B66E29FF6DDAD62FA3F2570E02775B6EFAF6609' | ||
sh "bash ./build_and_deploy.sh ${CPU} ${OS_CODENAME} ${params.BASE_VERSION} ${params.BUILD_NUMBER} ${GPG_USR}" | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
#!/bin/bash | ||
|
||
set -e | ||
|
||
CPU=$1 | ||
OS_CODENAME=$2 | ||
BASE_VERSION=$3 | ||
BUILD_NUMBER=$4 | ||
GPG_KEYNAME=$5 | ||
APT_CLI_VERSION="apt-cli-1.8" | ||
|
||
. ./configure_flags.sh ${CPU} | ||
|
||
git config user.email "[email protected]" | ||
git config user.name "r2cloud" | ||
git merge origin/main --no-edit | ||
|
||
rm -f ../sdr-server_* | ||
rm -f ../sdr-server-* | ||
gbp dch --auto --debian-branch=${OS_CODENAME} --upstream-branch=main --new-version=${BASE_VERSION}.${BUILD_NUMBER}-${BUILD_NUMBER}~${OS_CODENAME} --git-author --distribution=unstable --commit < /dev/null | ||
git push --set-upstream origin ${OS_CODENAME} | ||
gbp buildpackage --git-ignore-new --git-upstream-tag=${BASE_VERSION}.${BUILD_NUMBER} --git-keyid=${GPG_KEYNAME} | ||
|
||
cd .. | ||
java -jar ${HOME}/${APT_CLI_VERSION}.jar --url s3://${BUCKET} --component main --codename ${OS_CODENAME} --gpg-keyname ${GPG_KEYNAME} --gpg-arguments "--pinentry-mode,loopback" save --patterns ./*.deb,./*.ddeb |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/bin/bash | ||
|
||
set -e | ||
|
||
sudo apt-get update | ||
sudo apt-get install -y dirmngr lsb-release | ||
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A5A70917 | ||
sudo bash -c "echo \"deb http://r2cloud.s3.amazonaws.com $(lsb_release --codename --short) main\" > /etc/apt/sources.list.d/r2cloud.list" | ||
sudo bash -c "echo \"deb http://r2cloud.s3.amazonaws.com/cpu-generic $(lsb_release --codename --short) main\" > /etc/apt/sources.list.d/r2cloud-generic.list" | ||
sudo apt-get update | ||
sudo apt-get install -y debhelper git-buildpackage cmake libvolk2-dev libprotobuf-c-dev libconfig-dev check libiio-dev | ||
|
||
APT_CLI_VERSION="apt-cli-1.8" | ||
if [ ! -f ${HOME}/${APT_CLI_VERSION}.jar ]; then | ||
wget -O ${APT_CLI_VERSION}.jar.temp https://github.com/dernasherbrezon/apt-cli/releases/download/${APT_CLI_VERSION}/apt-cli.jar | ||
mv ${APT_CLI_VERSION}.jar.temp ${HOME}/${APT_CLI_VERSION}.jar | ||
fi |