Skip to content

update target_arch in run.spec #477

update target_arch in run.spec

update target_arch in run.spec #477

Workflow file for this run

name: Publish Extension
on:
push:
branches:
- main
jobs:
pyinstaller:
strategy:
matrix:
os: [windows-latest, ubuntu-20.04, macos-latest]
runs-on: ${{ matrix.os }}
steps:
# Install Python requirements and build+upload binaries for each platform
- 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
run: pyinstaller run.spec
- name: Set permissions
run: |
chmod 777 dist/run
- name: Upload Artifacts
uses: actions/upload-artifact@v3
with:
name: ${{ runner.os }}Build
path: dist/*
test-and-package:
needs: pyinstaller
strategy:
matrix:
os: [macos-latest, ubuntu-20.04, windows-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
# Download corresponding binary artifact for the platform
- name: Create exe directory
run: |
mkdir extension/server/exe
- name: Download Linux build
uses: actions/download-artifact@v2
with:
name: LinuxBuild
path: extension/server/exe
if: matrix.os == 'ubuntu-20.04'
- name: Download macOS build
uses: actions/download-artifact@v2
with:
name: macOSBuild
path: extension/server/exe
if: matrix.os == 'macos-latest'
- name: Download Windows build
uses: actions/download-artifact@v2
with:
name: WindowsBuild
path: extension/server/exe
if: matrix.os == 'windows-latest'
- name: Set permissions
shell: bash
run: |
chmod -R 777 extension/server/exe
# Setup Node.js and install dependencies
- 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: Install extension Dependencies
run: |
cd extension
npm ci
- name: Install react-app Dependencies
run: |
cd extension/react-app
npm ci --legacy-peer-deps
# Run tests
- name: Prepare the extension
run: |
cd extension
npm run prepackage
- name: Install Xvfb for Linux and run tests
run: |
sudo apt-get install -y xvfb # Install Xvfb
Xvfb :99 & # Start Xvfb
export DISPLAY=:99 # Export the display number to the environment
cd extension
npm run test
if: matrix.os == 'ubuntu-20.04'
- name: Run extension tests
run: |
cd extension
npm run test
if: matrix.os != 'ubuntu-20.04'
# Create and upload .vsix artifact
- name: Package the extension
run: |
cd extension
npm run package
- name: Upload .vsix as an artifact
uses: actions/upload-artifact@v2
with:
name: vsix-artifact
path: extension/build/*
if: matrix.os == 'ubuntu-20.04'
publish:
needs: test-and-package
runs-on: ubuntu-20.04
permissions:
contents: write
steps:
# Checkout and download .vsix artifact
- name: Checkout
uses: actions/checkout@v2
- name: Download .vsix artifact
uses: actions/download-artifact@v2
with:
name: vsix-artifact
path: extension/build
# Publish the extension and commit/push the version change
- 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: Install extension Dependencies
run: |
cd extension
npm ci
- name: Publish
run: |
cd extension
npx vsce publish -p ${{ secrets.VSCE_TOKEN }} --packagePath ./build/*.vsix
- name: Update version in package.json
run: |
cd extension
npm version patch
- 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 }}
# Download binaries and upload to S3
- name: Download Linux build
uses: actions/download-artifact@v2
with:
name: LinuxBuild
path: exe/linux
- name: Download macOS build
uses: actions/download-artifact@v2
with:
name: macOSBuild
path: exe/mac
- name: Download Windows build
uses: actions/download-artifact@v2
with:
name: WindowsBuild
path: exe/windows
- 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-1
- 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"