ci/cd - fix linux package generation when arch is ARM

This commit is contained in:
florian 2023-05-07 18:27:45 +02:00
parent f4590749d7
commit 45c90527c4
No known key found for this signature in database
GPG Key ID: 3D80806F12602A7C
2 changed files with 30 additions and 5 deletions

View File

@ -35,7 +35,6 @@ on:
ARM_SSH_CONFIG:
required: false
jobs:
build:
runs-on: ubuntu-latest
@ -48,6 +47,18 @@ jobs:
echo "ARCH=${{ env.PLATFORMS }}" | sed 's/linux//g' | sed 's@/@@g' >> "$GITHUB_ENV"
env:
PLATFORMS: ${{ inputs.PLATFORMS }}
- name: Extract linux arch
if: inputs.PACKAGE == 'rpm'
run : |
echo "LARCH=${{ env.ARCH }}" | sed 's/amd64/x86_64/g' | sed 's/arm64/aarch64/g' >> "$GITHUB_ENV"
env:
ARCH: ${{ env.ARCH }}
- name: Extract linux arch
if: inputs.PACKAGE == 'deb'
run : |
echo "LARCH=${{ env.ARCH }}" >> "$GITHUB_ENV"
env:
ARCH: ${{ env.ARCH }}
- name: Setup SSH for ARM node
if: startsWith(env.ARCH, 'arm') == true
run: |
@ -103,7 +114,16 @@ jobs:
tags: local/bunkerweb-${{ inputs.LINUX }}:latest
# Generate package
- name: Generate package
run: ./src/linux/package.sh ${{ inputs.LINUX }}
if: startsWith(env.ARCH, 'arm') == false
run: ./src/linux/package.sh ${{ inputs.LINUX }} ${{ inputs.LARCH }}
- name: Generate package (ARM)
if: startsWith(env.ARCH, 'arm') == true
run: |
docker save local/bunkerweb-${{ inputs.LINUX }}:latest | ssh -C root@arm docker load
scp ./src/linux/package.sh root@arm:/opt/package.sh
ssh root@arm chmod +x /opt/package.sh
ssh root@arm /opt/packages.sh ${{ inputs.LINUX }} ${{ inputs.LARCH }}
scp -r root@arm:/root/package-${{ inputs.LINUX }} ./package-${{ inputs.LINUX }}
- uses: actions/upload-artifact@v3
with:
name: package-${{ inputs.LINUX }}-${{ env.ARCH }}

View File

@ -15,12 +15,17 @@ function do_and_check_cmd() {
return 0
}
# Check arg
# Check args
if [ "$1" = "" ] ; then
echo "❌ Missing distro arg"
exit 1
fi
linux="$1"
if [ "$2" = "" ] ; then
echo "❌ Missing arch arg"
exit 1
fi
arch="$2"
# Create empty directory
package_dir="${PWD}/package-$linux"
@ -36,9 +41,9 @@ if [ "$linux" = "fedora" ] || [ "$linux" = "centos" ] || [ "$linux" = "rhel" ] ;
type="rpm"
fi
do_and_check_cmd docker run --rm -v "${package_dir}:/data" "local/bunkerweb-${linux}:latest" "$type"
name="bunkerweb_${version}-1_amd64"
name="bunkerweb_${version}-1_${arch}"
if [ "$type" = "rpm" ] ; then
name="bunkerweb-${version}-1.x86_64"
name="bunkerweb-${version}-1.${arch}"
fi
do_and_check_cmd mv "${package_dir}/bunkerweb.$type" "${package_dir}/${name}.${type}"