Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding initial for deb packaging for amd64 #144

Merged
merged 5 commits into from
Jul 12, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 87 additions & 0 deletions .github/workflows/deb_packager.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
name: deb_packager
# test

on:
push:
branches:
- 'main'
paths:
- '**'
tags:
- 'v*.*.*'
- 'v*.*.*-*'

jobs:
build:
permissions:
id-token: write
contents: write
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@master
with:
go-version: 1.22.x
# Variables
- name: Adding TAG to ENV
run: echo "GIT_TAG=`echo $(git describe --tags --abbrev=0)`" >> $GITHUB_ENV
- name: adding version
run: |
NUMERIC_VERSION=$( echo ${{ env.GIT_TAG }} | sed 's/[^0-9.]//g' )
echo "VERSION=$NUMERIC_VERSION" >> $GITHUB_ENV

- name: make clean for good measure
run: make clean

- name: build the binary
run: make build

- name: making directory structure
run: mkdir -p packaging/deb/cdk-validium-node/usr/bin/
- name: copying necessary binary for amd64
run: cp -rp dist/zkevm-node packaging/deb/cdk-validium-node/usr/bin/cdk-validium-node
- name: create directory for service file
run: mkdir -p packaging/deb/cdk-validium-node/lib/systemd/system
- name: copy the service file
run: cp -rp packaging/systemd/cdk-validium-node.service packaging/deb/cdk-validium-node/lib/systemd/system/


# Control file creation
- name: create control file
run: |
echo "Package: cdk-validium-node" >> packaging/deb/cdk-validium-node/DEBIAN/control
echo "Version: ${{ env.VERSION }}" >> packaging/deb/cdk-validium-node/DEBIAN/control
echo "Section: base" >> packaging/deb/cdk-validium-node/DEBIAN/control
echo "Priority: optional" >> packaging/deb/cdk-validium-node/DEBIAN/control
echo "Architecture: amd64" >> packaging/deb/cdk-validium-node/DEBIAN/control
echo "Maintainer: devops@polygon.technology" >> packaging/deb/cdk-validium-node/DEBIAN/control
echo "Description: cdk-validium-node binary package" >> packaging/deb/cdk-validium-node/DEBIAN/control

- name: Creating package for binary for cdk-validium-node ${{ env.ARCH }}
run: cp -rp packaging/deb/cdk-validium-node packaging/deb/cdk-validium-node-${{ env.GIT_TAG }}-${{ env.ARCH }}
env:
ARCH: amd64

- name: Running package build
run: dpkg-deb --build --root-owner-group packaging/deb/cdk-validium-node-${{ env.GIT_TAG }}-${{ env.ARCH }}
env:
ARCH: amd64

- name: create checksum for the amd64 package
run: cd packaging/deb/ && sha256sum cdk-validium-node-${{ env.GIT_TAG }}-${{ env.ARCH }}.deb > cdk-validium-node-${{ env.GIT_TAG }}-${{ env.ARCH }}.deb.checksum
env:
ARCH: amd64


- name: Release cdk-validium-node Packages
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ env.GIT_TAG }}
prerelease: true
files: |
packaging/deb/cdk-validium-node**.deb
packaging/deb/cdk-validium-node**.deb.checksum
4 changes: 4 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@ check-python:
check-curl:
@which curl > /dev/null || (echo "Error: curl is not installed" && exit 1)

clean:
env GO111MODULE=on go clean -cache
rm -fr build/_workspace/pkg/ $(GOBIN)/*

# Targets that require the checks
build: check-go
lint: check-go
Expand Down
12 changes: 12 additions & 0 deletions packaging/deb/cdk-validium-node/DEBIAN/postinst
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash
# This is a postinstallation script so the service can be configured and started when requested
#
sudo adduser --disabled-password --disabled-login --shell /usr/sbin/nologin --quiet --system --no-create-home --home /nonexistent cdk-validium-node
if [ -d "/opt/cdk-validium-node" ]
then
echo "Directory /opt/cdk-validium-node exists."
else
sudo mkdir -p /opt/cdk-validium-node
sudo chown -R cdk-validium-node /opt/cdk-validium-node
fi
sudo systemctl daemon-reload
8 changes: 8 additions & 0 deletions packaging/deb/cdk-validium-node/DEBIAN/postrm
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#!/bin/bash
#
###############
# Remove cdk-validium-node installs
##############
sudo rm -rf /lib/systemd/system/cdk-validium-node.service
sudo deluser cdk-validium-node
sudo systemctl daemon-reload
16 changes: 16 additions & 0 deletions packaging/systemd/cdk-validium-node.service
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
[Unit]
Description=cdk-validium-node
StartLimitIntervalSec=500
StartLimitBurst=5

[Service]
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/cdk-validium-node
Type=simple
KillSignal=SIGINT
User=cdk-validium-node
TimeoutStopSec=120

[Install]
WantedBy=multi-user.target
Loading