diff --git a/.github/workflows/build-binaries.yml b/.github/workflows/build-binaries.yml index ce21dac2d..5ec48a4d7 100644 --- a/.github/workflows/build-binaries.yml +++ b/.github/workflows/build-binaries.yml @@ -1,12 +1,12 @@ name: Build Binaries on: + workflow_dispatch: + push: - branches: - - daniel/infisical-binary - pull_request: - branches: - - daniel/infisical-binary + # run for standalone releases + tags: + - "infisical-standalone/v*.*.*" defaults: run: @@ -29,6 +29,21 @@ jobs: - 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: @@ -50,22 +65,23 @@ jobs: 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 }} . + run: pkg --no-bytecode --public-packages "*" --public --target ${{ matrix.target }}-${{ matrix.arch }} --output ./binary/infisical-${{ matrix.os }}-${{ matrix.arch }} . working-directory: ./backend - name: List files run: ls -la ./binary - - name: Upload artifact (Linux) - if: matrix.os == 'linux' - uses: actions/upload-artifact@v3 - with: - name: infisical-${{ matrix.os }}-${{ matrix.arch }} - path: backend/binary/infisical-${{ matrix.os }}-${{ matrix.arch }} + - uses: actions/setup-python@v4 + - run: pip install --upgrade cloudsmith-cli - - name: Upload artifact (Windows) + - name: Publish to Cloudsmith (Linux) + if: matrix.os == 'linux' + run: cloudsmith push npm infisical/infisical-standalone backend/binary/infisical-${{ matrix.os }}-${{ matrix.arch }} --republish --no-wait-for-sync --version ${{ steps.extract_version.outputs.version }} + env: + CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }} + + - name: Publish to Cloudsmith (Windows) if: matrix.os == 'win' - uses: actions/upload-artifact@v3 - with: - name: infisical-${{ matrix.os }}-${{ matrix.arch }} - path: backend/binary/infisical-${{ matrix.os }}-${{ matrix.arch }}.exe + run: cloudsmith push npm infisical/infisical-standalone backend/binary/infisical-${{ matrix.os }}-${{ matrix.arch }}.exe --republish --no-wait-for-sync --version ${{ steps.extract_version.outputs.version }} + env: + CLOUDSMITH_API_KEY: ${{ secrets.CLOUDSMITH_API_KEY }}