summaryrefslogtreecommitdiff
path: root/.github/workflows/main.yaml
diff options
context:
space:
mode:
Diffstat (limited to '.github/workflows/main.yaml')
-rw-r--r--.github/workflows/main.yaml209
1 files changed, 139 insertions, 70 deletions
diff --git a/.github/workflows/main.yaml b/.github/workflows/main.yaml
index 9d9eb186..8610f363 100644
--- a/.github/workflows/main.yaml
+++ b/.github/workflows/main.yaml
@@ -4,79 +4,148 @@ on:
push:
branches:
- main
+ - package-python
jobs:
- do-nothing:
+ pyinstaller:
+ strategy:
+ matrix:
+ os: [macos-latest, ubuntu-latest, windows-latest]
+
+ runs-on: ${{ matrix.os }}
+
+ steps:
+ - name: Check-out repository
+ uses: actions/checkout@v3
+
+ - name: Set up Python
+ uses: actions/setup-python@v4
+ with:
+ python-version: "3.10"
+
+ - name: Install Pyinstaller
+ run: |
+ pip install pyinstaller
+
+ - name: Install Dependencies
+ run: |
+ pip install -r continuedev/requirements.txt
+
+ - name: Build PyInstaller Executable for Windows
+ run: pyinstaller run.py --exclude-module numpy --exclude-module jedi -F --add-data 'continuedev;continuedev' --hidden-import=anthropic --hidden-import=github
+ if: matrix.os == 'windows-latest'
+
+ - name: Build PyInstaller Executable for Mac/Linux
+ run: pyinstaller run.py --exclude-module numpy --exclude-module jedi -F --add-data 'continuedev:continuedev' --hidden-import=anthropic --hidden-import=github
+ if: matrix.os != 'windows-latest'
+
+ - name: Set permissions
+ run: |
+ chmod 777 dist/run
+
+ - name: Upload Artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: ${{ runner.os }} Build
+ path: dist/*
+
+ publish:
+ needs: pyinstaller
runs-on: ubuntu-latest
+ permissions:
+ contents: write
+
steps:
- name: Checkout
uses: actions/checkout@v2
- # publish:
- # runs-on: ubuntu-latest
-
- # steps:
- # - name: Checkout
- # uses: actions/checkout@v2
-
- # - name: Set up Python
- # uses: actions/setup-python@v2
- # with:
- # python-version: "3.8"
-
- # - name: Install Poetry
- # run: |
- # curl -sSL https://install.python-poetry.org | python3 -
-
- # - name: Install Python dependencies
- # run: |
- # cd continuedev
- # poetry install
-
- # - name: Cache extension node_modules
- # uses: actions/cache@v2
- # with:
- # path: extension/node_modules
- # key: ${{ runner.os }}-node-${{ hashFiles('extension/package-lock.json') }}
-
- # - name: Cache react-app node_modules
- # uses: actions/cache@v2
- # with:
- # path: extension/react-app/node_modules
- # key: ${{ runner.os }}-node-${{ hashFiles('extension/react-app/package-lock.json') }}
-
- # - name: Set up Node.js
- # uses: actions/setup-node@v2
- # with:
- # node-version: "14"
-
- # - name: Install extension Dependencies
- # run: |
- # cd extension
- # npm ci --legacy-peer-deps
-
- # - name: Install react-app Dependencies
- # run: |
- # cd extension/react-app
- # npm ci --legacy-peer-deps
-
- # - name: Build and Publish
- # run: |
- # cd extension
- # npm run full-package
-
- # - name: Commit changes
- # run: |
- # git config --local user.email "action@github.com"
- # git config --local user.name "GitHub Action"
- # git commit -am "Update package.json version [skip ci]"
-
- # - name: Push changes
- # uses: ad-m/github-push-action@master
- # with:
- # github_token: ${{ secrets.GITHUB_TOKEN }}
-
- # - name: Upload .vsix artifact
- # uses: actions/upload-artifact@v2
- # with:
- # name: vsix-artifact
- # path: extension/build/*
+
+ - name: Download Linux build
+ uses: actions/download-artifact@v2
+ with:
+ name: Linux Build
+ path: exe/linux
+
+ - name: Download macOS build
+ uses: actions/download-artifact@v2
+ with:
+ name: macOS Build
+ path: exe/mac
+
+ - name: Download Windows build
+ uses: actions/download-artifact@v2
+ with:
+ name: Windows Build
+ path: exe/windows
+
+ - name: Use Node.js 19.0.0
+ uses: actions/setup-node@v3
+ with:
+ node-version: 19.0.0
+
+ - name: Cache extension node_modules
+ uses: actions/cache@v2
+ with:
+ path: extension/node_modules
+ key: ${{ runner.os }}-node-${{ hashFiles('extension/package-lock.json') }}
+
+ - name: Cache react-app node_modules
+ uses: actions/cache@v2
+ with:
+ path: extension/react-app/node_modules
+ key: ${{ runner.os }}-node-${{ hashFiles('extension/react-app/package-lock.json') }}
+
+ - name: Set up Node.js
+ uses: actions/setup-node@v2
+ with:
+ node-version: "14"
+
+ - name: Install extension Dependencies
+ run: |
+ cd extension
+ npm ci
+
+ - name: Install react-app Dependencies
+ run: |
+ cd extension/react-app
+ npm ci --legacy-peer-deps
+
+ - name: Build and Publish
+ run: |
+ cd extension
+ npm run package
+ npx vsce publish patch -p ${{ secrets.VSCE_TOKEN }}
+ - name: Commit changes
+ run: |
+ git config --local user.email "action@github.com"
+ git config --local user.name "GitHub Action"
+ git commit -am "ci: 💚 Update package.json version [skip ci]"
+
+ - name: Push changes
+ uses: ad-m/github-push-action@master
+ with:
+ github_token: ${{ secrets.GITHUB_TOKEN }}
+ branch: ${{ github.ref }}
+
+ - name: Upload .vsix artifact
+ uses: actions/upload-artifact@v2
+ with:
+ name: vsix-artifact
+ path: extension/build/*
+
+ - name: Configure AWS Credentials
+ uses: aws-actions/configure-aws-credentials@v1
+ with:
+ aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ aws-region: us-west-2
+
+ - name: Upload binaries to S3
+ uses: jakejarvis/s3-sync-action@master
+ with:
+ args: --acl public-read --follow-symlinks --delete
+ env:
+ AWS_S3_BUCKET: continue-server-binaries
+ AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
+ AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
+ AWS_REGION: "us-west-1"
+ SOURCE_DIR: "exe"