Skip to content

Release extension

Release extension #12

Workflow file for this run

name: Release extension
on:
workflow_dispatch:
env:
FETCH_DEPTH: 0
jobs:
# Build the extension on all platforms.
build:
strategy:
matrix:
include:
- os: windows-latest
target: x86_64-pc-windows-msvc
code-target: win32-x64
# - os: windows-latest
# target: aarch64-pc-windows-msvc
# code-target: win32-arm64
# - os: ubuntu-20.04
# target: x86_64-unknown-linux-gnu
# code-target: linux-x64
# - os: ubuntu-20.04
# target: aarch64-unknown-linux-gnu
# code-target: linux-arm64
arch: aarch64
- os: macos-latest
target: x86_64-apple-darwin
code-target: darwin-x64
- os: macos-latest
target: aarch64-apple-darwin
code-target: darwin-arm64
name: Build (${{ matrix.target }})
runs-on: ${{ matrix.os }}
defaults:
run:
working-directory: ./editors/code
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
fetch-depth: ${{ env.FETCH_DEPTH }}
# macOs or Linux binary
# Download, unpack, move into place, and clean up
- if: ${{ startsWith(matrix.os, 'macos') || startsWith(matrix.os, 'ubuntu') }}
run: |
curl -LsSfO https://github.com/posit-dev/air/releases/latest/download/air-${{ matrix.target }}.tar.gz
tar -xvzf air-${{ matrix.target }}.tar.gz
mkdir -p bundled/bin/
mv air-${{ matrix.target }}/air bundled/bin/air
rm -R air-${{ matrix.target }}
rm -R air-${{ matrix.target }}.tar.gz
ls
# Windows binary
# Download, unpack, move into place, and clean up
- if: ${{ startsWith(matrix.os, 'windows') }}
run: |
Invoke-WebRequest -Uri https://github.com/posit-dev/air/releases/latest/download/air-${{ matrix.target }}.zip -OutFile .\air-${{ matrix.target }}.zip
Expand-Archive -Path .\air-${{ matrix.target }}.zip -DestinationPath .\air-${{ matrix.target }} -Force
New-Item -ItemType Directory -Path .\bundled\bin | Out-Null
Move-Item -Path .\air-${{ matrix.target }}\air.exe -Destination .\bundled\bin\air.exe -Force
Remove-Item -Path .\air-${{ matrix.target }} -Recurse -Force
Remove-Item -Path .\air-${{ matrix.target }}.zip -Force
Get-ChildItem
# Install Node.
- name: Install Node.js
uses: actions/setup-node@v4
with:
node-version: 22
# Install Node dependencies.
- run: npm ci
# Build the extension.
- name: Package Extension (release)
run: npx @vscode/vsce package -o "./dist/air-${{ matrix.code-target }}.vsix" --target ${{ matrix.code-target }}
# Upload the extension.
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: dist-${{ matrix.target }}
path: ./editors/code/dist
# # Publish the built extension to the Code Marketplace.
# publish-code-marketplace:
# name: "Publish (Code Marketplace)"
# needs: ["build"]
# runs-on: ubuntu-latest
# steps:
# - name: Install Nodejs
# uses: actions/setup-node@v4
# with:
# node-version: 22
#
# # Download all built artifacts.
# - uses: actions/download-artifact@v4
# with:
# name: dist-aarch64-apple-darwin
# path: dist
# - uses: actions/download-artifact@v4
# with:
# name: dist-x86_64-apple-darwin
# path: dist
# # - uses: actions/download-artifact@v4
# # with:
# # name: dist-x86_64-unknown-linux-gnu
# # path: dist
# # - uses: actions/download-artifact@v4
# # with:
# # name: dist-aarch64-unknown-linux-gnu
# # path: dist
# - uses: actions/download-artifact@v4
# with:
# name: dist-x86_64-pc-windows-msvc
# path: dist
# # - uses: actions/download-artifact@v4
# # with:
# # name: dist-aarch64-pc-windows-msvc
# # path: dist
# - run: ls -al ./dist
#
# # Publish to the Code Marketplace.
# - name: Publish Extension (Code Marketplace, release)
# run: npx @vscode/vsce publish --pat ${{ secrets.VSCE_PAT }} --packagePath ./dist/air-*.vsix
#
# # Publish the built extension to OpenVSX
# publish-openvsx:
# name: "Publish (OpenVSX)"
# needs: ["build"]
# runs-on: ubuntu-latest
# environment: release
# steps:
# - name: Install Nodejs
# uses: actions/setup-node@v4
# with:
# node-version: 22
#
# # Download all built artifacts.
# - uses: actions/download-artifact@v4
# with:
# name: dist-aarch64-apple-darwin
# path: dist
# - uses: actions/download-artifact@v4
# with:
# name: dist-x86_64-apple-darwin
# path: dist
# # - uses: actions/download-artifact@v4
# # with:
# # name: dist-x86_64-unknown-linux-gnu
# # path: dist
# # - uses: actions/download-artifact@v4
# # with:
# # name: dist-aarch64-unknown-linux-gnu
# # path: dist
# - uses: actions/download-artifact@v4
# with:
# name: dist-x86_64-pc-windows-msvc
# path: dist
# # - uses: actions/download-artifact@v4
# # with:
# # name: dist-aarch64-pc-windows-msvc
# # path: dist
# - run: ls -al ./dist
#
# # Publish to OpenVSX.
# - name: Publish Extension (OpenVSX, release)
# run: npx ovsx publish --pat ${{ secrets.OPEN_VSX_TOKEN }} --packagePath ./dist/air-*.vsix