update target_arch in run.spec #477
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: 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" |