diff options
Diffstat (limited to '.github')
-rw-r--r-- | .github/workflows/main.yaml | 209 |
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" |