Merge #4020 Improve netkan relationship error message #596
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
name: Deploy CKAN + NetKAN | |
on: | |
push: | |
branches: | |
- master | |
workflow_dispatch: | |
repository_dispatch: | |
types: | |
- deploy | |
concurrency: deploy | |
jobs: | |
deploy: | |
runs-on: ubuntu-latest | |
container: | |
image: mono:latest | |
steps: | |
- name: Installing checkout/build dependencies | |
run: | | |
apt-get update | |
apt-get install -y --no-install-recommends \ | |
git make sed gzip fakeroot lintian dpkg-dev gpg gpg-agent createrepo python3-pip | |
- uses: actions/checkout@v3 | |
- name: Check version | |
id: check_version | |
shell: bash | |
run: | | |
VERSION=$(egrep '^\s*\#\#\s+v.*$' CHANGELOG.md | head -1 | sed -e 's/^\s*\#\#\s\+v//' -e 's/-.*$//') | |
if [[ $VERSION =~ [13579]$ ]] | |
then | |
echo 'odd_build=true' >> $GITHUB_OUTPUT | |
fi | |
- name: Setup .NET Core | |
uses: actions/setup-dotnet@v3 | |
with: | |
dotnet-version: '7' | |
- name: Installing runtime dependencies | |
run: apt-get install -y xvfb | |
- name: Restore cache for _build/tools | |
uses: actions/cache@v1 | |
with: | |
path: _build/tools | |
key: build-tools-${{ hashFiles('build', 'build.ps1', 'build.cake') }} | |
- name: Restore cache for _build/cake | |
uses: actions/cache@v1 | |
with: | |
path: _build/cake | |
key: build-cake-${{ hashFiles('build.cake') }} | |
- name: Restore cache for _build/lib/nuget | |
uses: actions/cache@v1 | |
with: | |
path: _build/lib/nuget | |
key: nuget-oldref-modules-${{ hashFiles('**/packages.config') }}-${{ hashFiles('**/*.csproj') }} | |
- name: Restore cache for ~/.nuget/packages | |
uses: actions/cache@v1 | |
with: | |
path: ~/.nuget/packages | |
key: nuget-packref-modules-${{ hashFiles('**/packages.config') }}-${{ hashFiles('**/*.csproj') }} | |
- name: Build ckan.exe and netkan.exe | |
run: ./build --configuration=Release | |
- name: Create a version.json file for S3 | |
shell: bash | |
run: | | |
export PIP_ROOT_USER_ACTION=ignore | |
pip3 install --upgrade pip | |
pip3 install gitpython | |
git config --global --add safe.directory '*' | |
python3 bin/version_info.py > _build/repack/Release/version.json | |
- name: Build deb | |
env: | |
CODENAME: nightly | |
run: ./build deb --configuration=Release --exclusive | |
if: ${{ steps.check_version.outputs.odd_build }} | |
- name: Build rpm | |
run: ./build rpm --configuration=Release --exclusive | |
if: ${{ steps.check_version.outputs.odd_build }} | |
- name: Import GPG key | |
env: | |
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }} | |
run: | | |
echo "$DEBIAN_PRIVATE_KEY" | base64 --decode | gpg --batch --import | |
gpg --list-secret-keys --keyid-format LONG | |
if: ${{ env.DEBIAN_PRIVATE_KEY && steps.check_version.outputs.odd_build }} | |
- name: Sign deb release | |
env: | |
CODENAME: nightly | |
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }} | |
run: ./build deb-sign --configuration=Release --exclusive | |
if: ${{ env.DEBIAN_PRIVATE_KEY && steps.check_version.outputs.odd_build }} | |
- name: Build rpm repository | |
env: | |
CODENAME: nightly | |
DEBIAN_PRIVATE_KEY: ${{ secrets.DEBIAN_PRIVATE_KEY }} | |
run: ./build rpm-repo --configuration=Release --exclusive | |
if: ${{ env.DEBIAN_PRIVATE_KEY && steps.check_version.outputs.odd_build }} | |
- name: Run tests | |
run: xvfb-run ./build test+only --configuration=Release --where="Category!=FlakyNetwork" | |
- name: Install Docker | |
run: | | |
curl -fsSL https://get.docker.com -o get-docker.sh | |
sh get-docker.sh | |
- name: Generate inflator Docker image and publish to Hub | |
env: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_DEFAULT_REGION: us-west-2 | |
if: ${{ env.DOCKERHUB_USERNAME && env.DOCKERHUB_PASSWORD && env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY }} | |
run: | | |
echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin | |
./build docker-inflator --exclusive | |
- name: Generate metadata tester Docker image and publish to Hub | |
env: | |
DOCKERHUB_USERNAME: ${{ secrets.DOCKERHUB_USERNAME }} | |
DOCKERHUB_PASSWORD: ${{ secrets.DOCKERHUB_PASSWORD }} | |
if: ${{ env.DOCKERHUB_USERNAME && env.DOCKERHUB_PASSWORD }} | |
run: | | |
echo "$DOCKERHUB_PASSWORD" | docker login -u "$DOCKERHUB_USERNAME" --password-stdin | |
./build docker-metadata --exclusive | |
- name: Push ckan.exe and netkan.exe to S3 | |
# Send ckan.exe and netkan.exe to https://ksp-ckan.s3-us-west-2.amazonaws.com/ | |
uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --follow-symlinks | |
env: | |
AWS_S3_BUCKET: ksp-ckan | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: us-east-1 | |
SOURCE_DIR: _build/repack/Release | |
if: ${{ env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY }} | |
- name: Push deb to S3 | |
# Send deb file to https://ksp-ckan.s3-us-west-2.amazonaws.com/ | |
uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --follow-symlinks | |
env: | |
AWS_S3_BUCKET: ksp-ckan | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: us-east-1 | |
SOURCE_DIR: _build/deb/apt-repo-root | |
DEST_DIR: deb | |
if: ${{ env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY && steps.check_version.outputs.odd_build }} | |
- name: Push nightly APT repo to S3 | |
uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --follow-symlinks | |
env: | |
AWS_S3_BUCKET: ksp-ckan | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: us-east-1 | |
SOURCE_DIR: _build/deb/apt-repo-dist | |
DEST_DIR: deb/dists/nightly | |
if: ${{ env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY && steps.check_version.outputs.odd_build }} | |
- name: Push nightly RPM repo to S3 | |
uses: jakejarvis/s3-sync-action@master | |
with: | |
args: --follow-symlinks | |
env: | |
AWS_S3_BUCKET: ksp-ckan | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: us-east-1 | |
SOURCE_DIR: _build/rpm/repo | |
DEST_DIR: rpm/nightly | |
if: ${{ env.AWS_ACCESS_KEY_ID && env.AWS_SECRET_ACCESS_KEY && steps.check_version.outputs.odd_build }} | |
- name: Send Discord Notification | |
env: | |
JOB_STATUS: ${{ job.status }} | |
WEBHOOK_URL: ${{ secrets.DISCORD_WEBHOOK }} | |
HOOK_OS_NAME: ${{ runner.os }} | |
WORKFLOW_NAME: ${{ github.workflow }} | |
if: ${{ always() && env.WEBHOOK_URL }} | |
run: | | |
git clone --depth 1 https://github.com/DiscordHooks/github-actions-discord-webhook.git webhook | |
bash webhook/send.sh $JOB_STATUS $WEBHOOK_URL |