mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
93 lines
3.4 KiB
YAML
93 lines
3.4 KiB
YAML
name: Build Binaries and Deploy
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- daniel/infisical-binary
|
|
tags:
|
|
- "infisical-standalone/v*.*.*"
|
|
|
|
defaults:
|
|
run:
|
|
working-directory: ./backend
|
|
|
|
jobs:
|
|
build-and-deploy:
|
|
runs-on: ubuntu-20.04
|
|
strategy:
|
|
matrix:
|
|
arch: [x64]
|
|
os: [linux]
|
|
include:
|
|
- os: linux
|
|
target: node18-linux
|
|
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v3
|
|
|
|
- name: Extract version from tag
|
|
id: extract_version
|
|
run: |
|
|
if [[ $GITHUB_REF == refs/tags/* ]]; then
|
|
VERSION=${GITHUB_REF#refs/tags/infisical-standalone/v}
|
|
else
|
|
VERSION=$(git rev-parse --short HEAD)
|
|
fi
|
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
|
|
- name: Set up Node.js
|
|
uses: actions/setup-node@v3
|
|
with:
|
|
node-version: 20
|
|
|
|
- name: Install pkg
|
|
run: npm install -g @yao-pkg/pkg
|
|
|
|
- name: Install dependencies (backend)
|
|
run: npm install
|
|
|
|
- name: Install dependencies (frontend)
|
|
run: npm install --prefix ../frontend
|
|
|
|
- name: Prerequisites for pkg
|
|
run: npm run binary:build
|
|
|
|
- name: Package into node binary
|
|
run: pkg --no-bytecode --public-packages "*" --public --target ${{ matrix.target }}-${{ matrix.arch }} --output ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} .
|
|
|
|
- name: Set up .deb package structure
|
|
if: matrix.os == 'linux'
|
|
run: |
|
|
mkdir -p infisical-standalone/DEBIAN
|
|
mkdir -p infisical-standalone/usr/local/bin
|
|
cp ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} infisical-standalone/usr/local/bin/
|
|
chmod +x infisical-standalone/usr/local/bin/infisical-${{ matrix.os }}-${{ matrix.arch }}
|
|
|
|
- name: Create control file
|
|
if: matrix.os == 'linux'
|
|
run: | # Version: Is hardcoded to 3.0.0 (should be steps.extract_version.outputs.versio)
|
|
cat <<EOF > infisical-standalone/DEBIAN/control
|
|
Package: infisical-standalone
|
|
Version: 3.0.0
|
|
Section: base
|
|
Priority: optional
|
|
Architecture: ${{ matrix.arch == 'x64' && 'amd64' || matrix.arch }}
|
|
Maintainer: Infisical <daniel@infisical.com>
|
|
Description: Infisical standalone executable (app.infisical.com)
|
|
EOF
|
|
|
|
- name: Build .deb package
|
|
if: matrix.os == 'linux'
|
|
run: |
|
|
dpkg-deb --build infisical-standalone
|
|
mv infisical-standalone.deb infisical-linux-${{ matrix.arch }}.deb
|
|
|
|
- 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/any-distro/any-version infisical-linux-${{ matrix.arch }}.deb --republish --no-wait-for-sync --version 3.0.0 --api-key ${{ secrets.CLOUDSMITH_API_KEY }}
|