summaryrefslogtreecommitdiffstats
path: root/.github/workflows/build.yml
diff options
context:
space:
mode:
authorJan Holthuis <jan.holthuis@ruhr-uni-bochum.de>2021-04-27 13:57:51 +0200
committerJan Holthuis <jan.holthuis@ruhr-uni-bochum.de>2021-04-29 02:07:40 +0200
commita9739a8e78b3b6aa711f25a885faba9474d28b13 (patch)
treec4fe81f8c849050984e188dd45209f8a85c64c1c /.github/workflows/build.yml
parente35a5e30ee67944b9b1cbb478a7dbe776ef40ca1 (diff)
CI: Use SSH Agent to deploy to download server
Diffstat (limited to '.github/workflows/build.yml')
-rw-r--r--.github/workflows/build.yml46
1 files changed, 36 insertions, 10 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 333d6e282f..843ae3eecb 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -391,15 +391,28 @@ jobs:
--dest-url 'https://downloads.mixxx.org'
${{ matrix.artifacts_path }}
+ - name: "Set up SSH Agent"
+ if: github.event_name == 'push' && env.SSH_PRIVATE_KEY != null
+ shell: bash
+ env:
+ SSH_AUTH_SOCK: /tmp/ssh_agent.sock
+ SSH_PRIVATE_KEY: ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY }}
+ SSH_HOST: downloads-hostgator.mixxx.org
+ run: |
+ ssh-agent -a $SSH_AUTH_SOCK > /dev/null
+ ssh-add - <<< "${SSH_PRIVATE_KEY}"
+ mkdir -p "${HOME}/.ssh"
+ ssh-keyscan "${SSH_HOST}" >> "${HOME}/.ssh/known_hosts"
+ echo "SSH_AUTH_SOCK=${SSH_AUTH_SOCK}" >> "${GITHUB_ENV}"
+
- name: "[macOS/Windows] Upload build to downloads.mixxx.org"
# skip deploying Ubuntu builds to downloads.mixxx.org because these are deployed to the PPA
- if: runner.os != 'Linux' && github.event_name == 'push' && env.SSH_PASSWORD != null
- run: bash tools/deploy.sh deploy/
+ if: runner.os != 'Linux' && github.event_name == 'push' && env.SSH_AUTH_SOCK != null
+ shell: bash --login -eo pipefail "{0}"
+ run: rsync --verbose --recursive --checksum --times --delay-updates "deploy/" "${SSH_USER}@${SSH_HOST}:${DESTDIR}/"
env:
- DESTDIR: public_html/downloads/
+ DESTDIR: public_html/downloads
SSH_HOST: downloads-hostgator.mixxx.org
- SSH_KEY: packaging/certificates/downloads-hostgator.mixxx.org.key
- SSH_PASSWORD: ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY_PASSWORD }}
SSH_USER: mixxx
# Workaround for https://github.com/actions/cache/issues/531
@@ -450,14 +463,27 @@ jobs:
JOB_DATA: ${{ toJSON(needs.build) }}
SSH_PASSWORD: ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY_PASSWORD }}
+ - name: "Set up SSH Agent"
+ if: github.event_name == 'push' && env.SSH_PRIVATE_KEY != null && env.MANIFEST_DIRTY != null && env.MANIFEST_DIRTY != '0'
+ shell: bash
+ env:
+ SSH_AUTH_SOCK: /tmp/ssh_agent.sock
+ SSH_PRIVATE_KEY: ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY }}
+ SSH_HOST: downloads-hostgator.mixxx.org
+ run: |
+ ssh-agent -a $SSH_AUTH_SOCK > /dev/null
+ ssh-add - <<< "${SSH_PRIVATE_KEY}"
+ mkdir -p "${HOME}/.ssh"
+ ssh-keyscan "${SSH_HOST}" >> "${HOME}/.ssh/known_hosts"
+ echo "SSH_AUTH_SOCK=${SSH_AUTH_SOCK}" >> "${GITHUB_ENV}"
+
- name: "Deploy Manifest"
- if: github.event_name == 'push' && env.SSH_PASSWORD != null && env.MANIFEST_DIRTY != null && env.MANIFEST_DIRTY != '0'
- run: bash tools/deploy.sh deploy/
+ if: github.event_name == 'push' && env.SSH_AUTH_SOCK != null
+ shell: bash
+ run: rsync --verbose --recursive --checksum --times --delay-updates "deploy/" "${SSH_USER}@${SSH_HOST}:${DESTDIR}/"
env:
- DESTDIR: public_html/downloads/
+ DESTDIR: public_html/downloads
SSH_HOST: downloads-hostgator.mixxx.org
- SSH_KEY: packaging/certificates/downloads-hostgator.mixxx.org.key
- SSH_PASSWORD: ${{ secrets.DOWNLOADS_HOSTGATOR_DOT_MIXXX_DOT_ORG_KEY_PASSWORD }}
SSH_USER: mixxx
- name: "Trigger Netlify build"