Skip to content

Commit

Permalink
Attempt .deb package
Browse files Browse the repository at this point in the history
  • Loading branch information
DanielHougaard committed Jul 3, 2024
1 parent 37d51aa commit 32ecec9
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 11 deletions.
33 changes: 22 additions & 11 deletions .github/workflows/build-binaries.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,10 @@ jobs:
runs-on: ubuntu-20.04
strategy:
matrix:
arch: [x64, arm64]
os: [linux, alphine, win]
# arch: [x64, arm64]
# os: [linux, alphine, win]
arch: [x64]
os: [linux]
include:
- os: linux
target: node18-linux
Expand Down Expand Up @@ -76,20 +78,29 @@ jobs:
- name: List files
run: ls -la ./binary

- name: Create .deb package
id: build-deb
if: matrix.os == 'linux'
uses: ./.github/workflows/build-deb.yml
with:
executable_path: ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }}
arch: ${{ matrix.arch }}
version: "3.0.0"

- uses: actions/setup-python@v4
- run: pip install --upgrade cloudsmith-cli

- name: Publish to Cloudsmith (Linux)
working-directory: ./backend
if: matrix.os == 'linux'
run: cloudsmith push deb infisical/infisical-standalone ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}
run: cloudsmith push deb infisical/infisical-standalone/any-distro/any-version ${{ steps.build-deb.outputs.deb_path }} --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}

- name: Publish to Cloudsmith (Windows)
working-directory: ./backend
if: matrix.os == 'win'
run: cloudsmith push raw infisical/infisical-standalone ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }}.exe --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}
# - name: Publish to Cloudsmith (Windows)
# working-directory: ./backend
# if: matrix.os == 'win'
# run: cloudsmith push raw infisical/infisical-standalone ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }}.exe --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}

- name: Publish to Cloudsmith (Alphine)
working-directory: ./backend
if: matrix.os == 'alphine'
run: cloudsmith push alpine infisical/infisical-standalone ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}
# - name: Publish to Cloudsmith (Alphine)
# working-directory: ./backend
# if: matrix.os == 'alphine'
# run: cloudsmith push alpine infisical/infisical-standalone ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}
85 changes: 85 additions & 0 deletions .github/workflows/build-deb.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,85 @@
name: Build Debian Package

on:
workflow_call:
inputs:
os:
required: true
type: string
arch:
required: true
type: string
version:
required: true
type: string
executable_path:
required: true
type: string
outputs:
deb_path:
description: "Path to the generated .deb file"
value: ${{ jobs.build.outputs.deb_path }}

defaults:
run:
working-directory: ./backend

jobs:
build:
runs-on: ubuntu-latest
outputs:
deb_path: ${{ steps.set_deb_path.outputs.deb_path }}

steps:
- uses: actions/checkout@v2

- name: Set up package structure
run: |
mkdir -p infisical-standalone/DEBIAN
mkdir -p infisical-standalone/usr/local/bin
- name: Copy executable
run: |
cp ${{inputs.executable_path}} infisical-standalone/usr/local/bin/
chmod +x infisical-standalone/usr/local/bin/infisical-${{ inputs.os }}-${{ inputs.arch }}
- name: Create control file (x64)
if: inputs.arch == 'x64'
run: |
cat <<EOF > infisical-standalone/DEBIAN/control
Package: infisical-standalone
Version: ${{ inputs.version }}
Section: base
Priority: optional
Architecture: amd64
Maintainer: Infisical <[email protected]>
Description: Infisical standalone executable (app.infisical.com)
EOF
- name: Create control file (other architectures)
if: inputs.arch != 'x64'
run: |
cat <<EOF > infisical-standalone/DEBIAN/control
Package: infisical-standalone-${{ inputs.arch }}
Version: ${{ inputs.version }}
Section: base
Priority: optional
Architecture: ${{ inputs.arch }}
Maintainer: Infisical <[email protected]>
Description: Infisical standalone executable (app.infisical.com)
EOF
- name: Set permissions
run: |
chmod 755 infisical-standalone/DEBIAN
chmod 644 infisical-standalone/DEBIAN/control
- name: Build .deb package
run: dpkg-deb --build infisical-standalone

- name: Rename package
run: mv infisical-standalone.deb infisical-linux-${{ inputs.arch }}.deb

- name: Set deb path output
id: set_deb_path
run: echo "deb_path=$(pwd)/infisical-linux-${{ inputs.arch }}.deb" >> $GITHUB_OUTPUT

0 comments on commit 32ecec9

Please sign in to comment.