From 35c6a29c61d8070cd1baa36f589c43e5a4d84b85 Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Thu, 12 Jan 2023 12:30:13 +0100 Subject: [PATCH 01/10] Add client-auto-update.yml (#924) --- .github/workflows/client-auto-update.yml | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/workflows/client-auto-update.yml diff --git a/.github/workflows/client-auto-update.yml b/.github/workflows/client-auto-update.yml new file mode 100644 index 000000000..a8d6c3098 --- /dev/null +++ b/.github/workflows/client-auto-update.yml @@ -0,0 +1,27 @@ +name: Deploy +on: + # Triggers this Action on push or pull request events on the "main" branch and when manually requested from the "Actions" tab + workflow_dispatch: + push: + branches: [ main ] + tags: ['*'] + +jobs: + auto-update-client: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Checkout repository + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT + + - name: Run Ansible playbook + env: + RELEASE_VERSION: ${{ steps.vars.outputs.tag }} + uses: dawidd6/action-ansible-playbook@v2.6.1 + with: + playbook: scripts/ansible/client-auto-update.yml + directory: ./ + key: ${{ secrets.ANSIBLE_SSH_PRIVATE_KEY }} + inventory: ${{ secrets.ANSIBLE_INVENTORY }} + From 92e57974fae847f507307890219bf58813934d5c Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Thu, 12 Jan 2023 12:31:14 +0100 Subject: [PATCH 02/10] Add scripts/ansible/client-auto-update-playbook.yml (#924) --- .../ansible/client-auto-update-playbook.yml | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 scripts/ansible/client-auto-update-playbook.yml diff --git a/scripts/ansible/client-auto-update-playbook.yml b/scripts/ansible/client-auto-update-playbook.yml new file mode 100644 index 000000000..96f72bf4b --- /dev/null +++ b/scripts/ansible/client-auto-update-playbook.yml @@ -0,0 +1,65 @@ +- hosts: zeitgeist + gather_facts: no + become: true + environment: + RELEASE_VERSION: "{{ lookup('env', 'RELEASE_VERSION') }}" + + tasks: + - name: Get Zeitgeist services + no_log: true + shell: ls -a /etc/systemd/system/zeitgeist* | xargs -n 1 basename + register: zeitgeist_files + + - name: Stop Zeitgeist services + no_log: true + systemd: + name: "{{ item }}" + state: stopped + with_items: "{{ zeitgeist_files.stdout_lines }}" + + - name: Check if Mount Dir Exists + no_log: true + stat: + path: /mnt/ + register: mnt + + - name: Create Backup from Previous Zeitgeist Client in Mount Dir + no_log: true + shell: | + cd /mnt/*/services/zeitgeist/bin + PREV_VERSION=$(./zeitgeist --version | grep -Eo '([0-9]{1,}\.)+[0-9]{1,}' | tr -d '.') + mv zeitgeist zeitgeist_$PREV_VERSION.bak + when: mnt.stat.exists and mnt.stat.isdir + + - name: Create Backup from Previous Zeitgeist Client + no_log: true + shell: | + cd /services/zeitgeist/bin + PREV_VERSION=$(./zeitgeist --version | grep -Eo '([0-9]{1,}\.)+[0-9]{1,}' | tr -d '.') + mv zeitgeist zeitgeist_$PREV_VERSION.bak + when: not mnt.stat.exists and mnt.stat.isdir + + - name: Download Zeitgeist Client to Mount Dir + no_log: true + shell: | + cd /mnt/*/services/zeitgeist/bin + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain + chmod 0755 zeitgeist + # chown zeitgeist:zeitgeist zeitgeist + when: mnt.stat.exists and mnt.stat.isdir + + - name: Download Zeitgeist Client + no_log: true + shell: | + cd /services/zeitgeist/bin + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain + chmod 0755 zeitgeist + # chown zeitgeist:zeitgeist zeitgeist + when: not mnt.stat.exists and mnt.stat.isdir + + - name: Start Zeitgeist Services + no_log: true + systemd: + name: "{{ item }}" + state: started + with_items: "{{ zeitgeist_files.stdout_lines }}" \ No newline at end of file From ad99403e5e87c5f1d765d920b025f6a6a83f71c1 Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Thu, 12 Jan 2023 14:22:11 +0100 Subject: [PATCH 03/10] Include step to update image version of existing network spec in OnFinality (#924) --- .github/workflows/docker-hub-parachain.yml | 26 ++++++++++++++++------ 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/.github/workflows/docker-hub-parachain.yml b/.github/workflows/docker-hub-parachain.yml index 55a6d55a8..79a5628b9 100644 --- a/.github/workflows/docker-hub-parachain.yml +++ b/.github/workflows/docker-hub-parachain.yml @@ -1,18 +1,20 @@ name: Publish features parachain to Docker Hub on: - push: - tags: - - '*' workflow_dispatch: + push: + branches: [ main ] + tags: [ '*' ] jobs: publish: name: Publish runs-on: ubuntu-latest steps: + - uses: actions/checkout@v3 - name: Checkout repository - uses: actions/checkout@v2 + id: vars + run: echo "tag=${GITHUB_REF#refs/*/}" >> $GITHUB_OUTPUT - name: Docker meta id: meta @@ -23,7 +25,7 @@ jobs: images: | zeitgeistpm/zeitgeist-node-parachain tags: | - type=sha + type=ref - name: Set up QEMU uses: docker/setup-qemu-action@v1 @@ -38,7 +40,7 @@ jobs: password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Build and push - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v3.2.0 with: build-args: | PROFILE=production @@ -46,4 +48,14 @@ jobs: push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - + + - name: Update image version of the existing network spec + uses: "OnFinality-io/action-onf-release@v1" + with: + onf-access-key: ${{ secrets.ONF_ACCESS_KEY }} + onf-secret-key: ${{ secrets.ONF_SECRET_KEY }} + onf-workspace-id: ${{ secrets.ONF_WORKSPACE_ID }} + onf-network-key: ${{ secrets.ONF_NETWORK_KEY }} + onf-sub-command: image + onf-action: add + image-version: ${{ steps.vars.outputs.tag }} From 10f2e2da5eeb082cd4f38c2e37b379f1681b07a4 Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Fri, 13 Jan 2023 11:15:50 +0100 Subject: [PATCH 04/10] Include logic if non-existent (#924) --- scripts/ansible/client-auto-update-playbook.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/scripts/ansible/client-auto-update-playbook.yml b/scripts/ansible/client-auto-update-playbook.yml index 96f72bf4b..7c16459ef 100644 --- a/scripts/ansible/client-auto-update-playbook.yml +++ b/scripts/ansible/client-auto-update-playbook.yml @@ -43,18 +43,26 @@ no_log: true shell: | cd /mnt/*/services/zeitgeist/bin - wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain + if [[ -v RELEASE_VERSION ]]; then + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain + else + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.6/zeitgeist_parachain + fi chmod 0755 zeitgeist - # chown zeitgeist:zeitgeist zeitgeist + chown zeitgeist:zeitgeist zeitgeist when: mnt.stat.exists and mnt.stat.isdir - name: Download Zeitgeist Client no_log: true shell: | cd /services/zeitgeist/bin - wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain + if [[ -v RELEASE_VERSION ]]; then + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain + else + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.6/zeitgeist_parachain + fi chmod 0755 zeitgeist - # chown zeitgeist:zeitgeist zeitgeist + chown zeitgeist:zeitgeist zeitgeist when: not mnt.stat.exists and mnt.stat.isdir - name: Start Zeitgeist Services From c94ab27f3ef01cbff8c76cfb908f884fe04f56c9 Mon Sep 17 00:00:00 2001 From: Samuel Arogbonlo <47984109+samuelarogbonlo@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:02:34 +0100 Subject: [PATCH 05/10] Change backup Zeitgeist_parachain binary Co-authored-by: Harald Heckmann --- scripts/ansible/client-auto-update-playbook.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ansible/client-auto-update-playbook.yml b/scripts/ansible/client-auto-update-playbook.yml index 7c16459ef..d98a53936 100644 --- a/scripts/ansible/client-auto-update-playbook.yml +++ b/scripts/ansible/client-auto-update-playbook.yml @@ -59,7 +59,7 @@ if [[ -v RELEASE_VERSION ]]; then wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain else - wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.6/zeitgeist_parachain + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.4/zeitgeist_parachain fi chmod 0755 zeitgeist chown zeitgeist:zeitgeist zeitgeist From b2f83df9a330c32fe1b6a2935f80abec5df8d759 Mon Sep 17 00:00:00 2001 From: Samuel Arogbonlo <47984109+samuelarogbonlo@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:04:57 +0100 Subject: [PATCH 06/10] Trigger workflow based on tags (#924) Co-authored-by: Harald Heckmann --- .github/workflows/client-auto-update.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/client-auto-update.yml b/.github/workflows/client-auto-update.yml index a8d6c3098..18c41fa66 100644 --- a/.github/workflows/client-auto-update.yml +++ b/.github/workflows/client-auto-update.yml @@ -3,8 +3,8 @@ on: # Triggers this Action on push or pull request events on the "main" branch and when manually requested from the "Actions" tab workflow_dispatch: push: - branches: [ main ] - tags: ['*'] + tags: + - '^v[0-9]+.[0-9]+.[0-9]+$' jobs: auto-update-client: From c21fae5d82561440f9502025223d567d039792f2 Mon Sep 17 00:00:00 2001 From: Samuel Arogbonlo <47984109+samuelarogbonlo@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:05:59 +0100 Subject: [PATCH 07/10] Trigger workflow based on tags (#924) Co-authored-by: Harald Heckmann --- .github/workflows/docker-hub-parachain.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-hub-parachain.yml b/.github/workflows/docker-hub-parachain.yml index 79a5628b9..852de59b0 100644 --- a/.github/workflows/docker-hub-parachain.yml +++ b/.github/workflows/docker-hub-parachain.yml @@ -3,8 +3,8 @@ name: Publish features parachain to Docker Hub on: workflow_dispatch: push: - branches: [ main ] - tags: [ '*' ] + tags: + - '^v[0-9]+.[0-9]+.[0-9]+$' jobs: publish: From ca943a54c9047775ec41c3a20a625e27d6cfc7b4 Mon Sep 17 00:00:00 2001 From: Samuel Arogbonlo <47984109+samuelarogbonlo@users.noreply.github.com> Date: Thu, 2 Feb 2023 13:07:04 +0100 Subject: [PATCH 08/10] Add workflow steps to update Zeitgeist and battery_station image (#924) Co-authored-by: Harald Heckmann --- .github/workflows/docker-hub-parachain.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-hub-parachain.yml b/.github/workflows/docker-hub-parachain.yml index 852de59b0..ec6769c3e 100644 --- a/.github/workflows/docker-hub-parachain.yml +++ b/.github/workflows/docker-hub-parachain.yml @@ -49,13 +49,24 @@ jobs: tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - - name: Update image version of the existing network spec + - name: Update image version of the existing Zeitgeist network spec uses: "OnFinality-io/action-onf-release@v1" with: onf-access-key: ${{ secrets.ONF_ACCESS_KEY }} onf-secret-key: ${{ secrets.ONF_SECRET_KEY }} onf-workspace-id: ${{ secrets.ONF_WORKSPACE_ID }} - onf-network-key: ${{ secrets.ONF_NETWORK_KEY }} + onf-network-key: ${{ secrets.ONF_NETWORK_KEY_ZG }} + onf-sub-command: image + onf-action: add + image-version: ${{ steps.vars.outputs.tag }} + + - name: Update image version of the existing Battery Station network spec + uses: "OnFinality-io/action-onf-release@v1" + with: + onf-access-key: ${{ secrets.ONF_ACCESS_KEY }} + onf-secret-key: ${{ secrets.ONF_SECRET_KEY }} + onf-workspace-id: ${{ secrets.ONF_WORKSPACE_ID }} + onf-network-key: ${{ secrets.ONF_NETWORK_KEY_BS }} onf-sub-command: image onf-action: add image-version: ${{ steps.vars.outputs.tag }} From 4fe0e69d014ee33224f599200c4ca9419368dd49 Mon Sep 17 00:00:00 2001 From: samuelarogbonlo Date: Wed, 8 Feb 2023 10:29:58 +0100 Subject: [PATCH 09/10] Modify client-auto-update-playbook.yml (#924) --- scripts/ansible/client-auto-update-playbook.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/scripts/ansible/client-auto-update-playbook.yml b/scripts/ansible/client-auto-update-playbook.yml index d98a53936..34e15bdda 100644 --- a/scripts/ansible/client-auto-update-playbook.yml +++ b/scripts/ansible/client-auto-update-playbook.yml @@ -23,20 +23,18 @@ path: /mnt/ register: mnt - - name: Create Backup from Previous Zeitgeist Client in Mount Dir + - name: Remove Previous Zeitgeist Client in Mount Dir no_log: true shell: | cd /mnt/*/services/zeitgeist/bin - PREV_VERSION=$(./zeitgeist --version | grep -Eo '([0-9]{1,}\.)+[0-9]{1,}' | tr -d '.') - mv zeitgeist zeitgeist_$PREV_VERSION.bak + rm zeitgeist when: mnt.stat.exists and mnt.stat.isdir - - name: Create Backup from Previous Zeitgeist Client + - name: Remove Previous Zeitgeist Client no_log: true shell: | cd /services/zeitgeist/bin - PREV_VERSION=$(./zeitgeist --version | grep -Eo '([0-9]{1,}\.)+[0-9]{1,}' | tr -d '.') - mv zeitgeist zeitgeist_$PREV_VERSION.bak + rm zeitgeist when: not mnt.stat.exists and mnt.stat.isdir - name: Download Zeitgeist Client to Mount Dir @@ -46,7 +44,7 @@ if [[ -v RELEASE_VERSION ]]; then wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain else - wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.6/zeitgeist_parachain + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.4/zeitgeist_parachain fi chmod 0755 zeitgeist chown zeitgeist:zeitgeist zeitgeist From 6c55af93571c7bdc84ac2b2a6b3bc545ff0368cf Mon Sep 17 00:00:00 2001 From: Samuel Arogbonlo <47984109+samuelarogbonlo@users.noreply.github.com> Date: Wed, 5 Jul 2023 18:26:14 +0100 Subject: [PATCH 10/10] Update v0.3.4 to v0.3.9 --- scripts/ansible/client-auto-update-playbook.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/scripts/ansible/client-auto-update-playbook.yml b/scripts/ansible/client-auto-update-playbook.yml index 34e15bdda..3279ff6fd 100644 --- a/scripts/ansible/client-auto-update-playbook.yml +++ b/scripts/ansible/client-auto-update-playbook.yml @@ -44,7 +44,7 @@ if [[ -v RELEASE_VERSION ]]; then wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain else - wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.4/zeitgeist_parachain + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.9/zeitgeist_parachain fi chmod 0755 zeitgeist chown zeitgeist:zeitgeist zeitgeist @@ -57,7 +57,7 @@ if [[ -v RELEASE_VERSION ]]; then wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/$RELEASE_VERSION/zeitgeist_parachain else - wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.4/zeitgeist_parachain + wget -O zeitgeist https://github.com/zeitgeistpm/zeitgeist/releases/download/v0.3.9/zeitgeist_parachain fi chmod 0755 zeitgeist chown zeitgeist:zeitgeist zeitgeist @@ -68,4 +68,4 @@ systemd: name: "{{ item }}" state: started - with_items: "{{ zeitgeist_files.stdout_lines }}" \ No newline at end of file + with_items: "{{ zeitgeist_files.stdout_lines }}"