ci: update extension docs #27
Workflow file for this run
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: release | |
on: | |
push: | |
tags: '*' | |
env: | |
CARGO_TERM_COLOR: always | |
IS_PRE_RELEASE: ${{ contains(github.ref_name, 'dev') }} | |
jobs: | |
build: | |
strategy: | |
matrix: | |
include: | |
- os: ubuntu-latest | |
target: x86_64-unknown-linux-gnu | |
code_target: linux-x64 | |
- os: windows-latest | |
target: x86_64-pc-windows-msvc | |
code_target: win32-x64 | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Setup npm | |
uses: actions/setup-node@v4 | |
- name: Setup rust | |
uses: actions-rs/toolchain@v1 | |
with: | |
toolchain: stable | |
target: ${{ matrix.target }} | |
override: true | |
- name: Build xtask | |
run: cargo build --package xtask --release | |
- name: Prepare the LSP server executable | |
run: cargo xtask prep-server --target ${{ matrix.target }} --release | |
- name: Download rw3d_cli | |
run: cargo xtask prep-rw3d | |
- name: Package the extension (pre-release) | |
if: ${{ env.IS_PRE_RELEASE == 'true' }} | |
run: cargo xtask package --pre-release -o "witcherscript-ide-${{ github.ref_name }}-${{ matrix.target }}.vsix" --target ${{ matrix.code_target }} | |
- name: Package the extension (main release) | |
if: ${{ env.IS_PRE_RELEASE == 'false' }} | |
run: cargo xtask package -o "witcherscript-ide-${{ github.ref_name }}-${{ matrix.target }}.vsix" --target ${{ matrix.code_target }} | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.target }} | |
path: "*.vsix" | |
if-no-files-found: error | |
publish: | |
runs-on: ubuntu-latest | |
needs: build | |
if: success() | |
steps: | |
- name: Download artifacts | |
uses: actions/download-artifact@v2 | |
- name: Prepare artifact list for release action | |
run: echo "ARTIFACTS=$(echo $(find . -iname "*.vsix") | sed "s/ /,/g")" >> $GITHUB_ENV | |
- name: Create draft release on GitHub | |
uses: ncipollo/release-action@v1 | |
with: | |
artifacts: "${{ env.ARTIFACTS }}" | |
draft: true | |
allowUpdates: true | |
generateReleaseNotes: true | |
prerelease: ${{ env.IS_PRE_RELEASE }} | |
- name: Require manual approval to upload the extension to marketplaces | |
if: ${{ env.IS_PRE_RELEASE == 'false' }} | |
uses: trstringer/manual-approval@v1 | |
with: | |
secret: ${{ github.TOKEN }} | |
approvers: SpontanCombust | |
minimum-approvals: 1 | |
issue-title: "Deploying ${{ github.ref_name }} to marketplaces from staging" | |
issue-body: "Please approve or deny the deployment of version ${{ github.ref_name }}." | |
# The VS Marketplace doesn't yet support pre-release semver versions, sigh.... | |
# https://code.visualstudio.com/api/working-with-extensions/publishing-extension#prerelease-extensions | |
# - name: Upload extension to VSCode Marketplace (pre-release) | |
# if: ${{ env.IS_PRE_RELEASE == 'true' }} | |
# run: npx vsce publish --pre-release --packagePath $(find . -iname *.vsix) | |
# env: | |
# VSCE_PAT: ${{ secrets.VSCE_PAT }} | |
- name: Upload extension to VSCode Marketplace (main release) | |
if: ${{ env.IS_PRE_RELEASE == 'false' }} | |
run: npx vsce publish --packagePath $(find . -iname *.vsix) | |
env: | |
VSCE_PAT: ${{ secrets.VSCE_PAT }} | |
# - name: Upload extension to Open VSX Registry (pre-release) | |
# if: ${{ env.IS_PRE_RELEASE == 'true' }} | |
# run: npx ovsx publish --pre-release --packagePath $(find . -iname *.vsix) | |
# env: | |
# OVSX_PAT: ${{ secrets.OVSX_PAT }} | |
- name: Upload extension to Open VSX Registry (main release) | |
if: ${{ env.IS_PRE_RELEASE == 'false' }} | |
run: npx ovsx publish --packagePath $(find . -iname *.vsix) | |
env: | |
OVSX_PAT: ${{ secrets.OVSX_PAT }} |