Fixes #26
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build Binaries | |
on: | |
workflow_dispatch: | |
pull_request: | |
branches: | |
- daniel/infisical-binary | |
push: | |
branches: | |
- daniel/infisical-binary | |
# run for standalone releases | |
tags: | |
- "infisical-standalone/v*.*.*" | |
defaults: | |
run: | |
working-directory: ./backend | |
jobs: | |
build-and-release: | |
runs-on: ubuntu-20.04 | |
strategy: | |
matrix: | |
arch: [x64, arm64] | |
os: [linux, win] | |
include: | |
- os: linux | |
target: node18-linux | |
- os: win | |
target: node18-win | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v3 | |
# - name: Extract version from tag | |
# id: extract_version | |
# run: | | |
# # Get the tag name | |
# TAG_NAME=$(git describe --tags) | |
# # Extract the version part | |
# VERSION=${TAG_NAME#infisical-standalone/v} | |
# echo "Extracted version is $VERSION" | |
# # Set the version as an output | |
# echo "::set-output name=version::$VERSION" | |
# - name: Version extration test | |
# run: | | |
# echo "The extracted version is ${{ steps.extract_version.outputs.version }}" | |
- name: Set up Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Install pkg | |
run: npm install -g @yao-pkg/pkg | |
- name: Install dependencies (backend) | |
run: npm install | |
working-directory: ./backend | |
- name: Install dependencies (frontend) | |
run: npm install --prefix ../frontend | |
working-directory: ./backend | |
- name: Prerequisites for pkg | |
run: npm run binary:build | |
working-directory: ./backend | |
- name: Package into node binary | |
run: pkg --no-bytecode --public-packages "*" --public --compress=Brotli --target ${{ matrix.target }}-${{ matrix.arch }} --output ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} . | |
working-directory: ./backend | |
- name: List files | |
run: ls -la ./binary | |
- uses: actions/setup-python@v4 | |
- run: pip install --upgrade cloudsmith-cli | |
- name: Publish to Cloudsmith (Linux) | |
if: matrix.os == 'linux' | |
run: cloudsmith push raw infisical/infisical-standalone backend/binary/infisical-${{ matrix.os }}-${{ matrix.arch }} --republish --no-wait-for-sync --version 0.0.3 --api-key ${{ secrets.CLOUDSMITH_API_KEY }} | |
env: | |
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} | |
- name: Publish to Cloudsmith (Windows) | |
if: matrix.os == 'win' | |
run: cloudsmith push raw infisical/infisical-standalone backend/binary/infisical-${{ matrix.os }}-${{ matrix.arch }}.exe --republish --no-wait-for-sync --version 0.0.3 --api-key ${{ secrets.CLOUDSMITH_API_KEY }} | |
env: | |
CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} |