Draft release #282
Workflow file for this run
This file contains hidden or 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: Draft release | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| version: | |
| type: string | |
| required: true | |
| permissions: | |
| contents: write # For creating releases. | |
| discussions: write # For creating a discussion. | |
| # Cancel in-progress runs for pull requests when developers push | |
| # additional changes | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| jobs: | |
| package-linux: | |
| name: ${{ format('linux-{0}', matrix.vscode_arch) }} | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| matrix: | |
| include: | |
| - npm_arch: x64 | |
| vscode_arch: x64 | |
| package_arch: amd64 | |
| - npm_arch: arm64 | |
| vscode_arch: arm64 | |
| package_arch: arm64 | |
| - npm_arch: arm | |
| vscode_arch: armhf | |
| package_arch: armv7l | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| ELECTRON_SKIP_BINARY_DOWNLOAD: 1 | |
| PLAYWRIGHT_SKIP_BROWSER_DOWNLOAD: 1 | |
| TAG: ${{ inputs.version || github.ref_name }} | |
| VSCODE_ARCH: ${{ matrix.vscode_arch }} | |
| npm_config_arch: ${{ matrix.npm_arch }} | |
| VSCODE_TARGET: ${{ format('linux-{0}', matrix.vscode_arch) }} | |
| steps: | |
| - run: sudo apt update && sudo apt install -y libkrb5-dev | |
| - uses: awalsh128/cache-apt-pkgs-action@2c09a5e66da6c8016428a2172bd76e5e4f14bb17 # latest | |
| with: | |
| packages: quilt | |
| version: 1.0 | |
| - name: Install nfpm | |
| run: | | |
| mkdir -p ~/.local/bin | |
| curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Set version to tag without leading v | |
| run: | | |
| echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - run: quilt push -a | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: .node-version | |
| cache: npm | |
| cache-dependency-path: | | |
| package-lock.json | |
| test/package-lock.json | |
| - name: Build | |
| run: | | |
| cd lib/vscode/build | |
| npm ci | |
| cd .. | |
| source ./build/azure-pipelines/linux/setup-env.sh | |
| # Run preinstall script before root dependencies are installed | |
| # so that v8 headers are patched correctly for native modules. | |
| node build/npm/preinstall.ts | |
| cd ../.. | |
| npm ci | |
| npm run build | |
| npm run build:vscode | |
| # Platform-agnostic NPM package. | |
| - run: npm run release | |
| if: ${{ matrix.vscode_target == 'linux-x64' }} | |
| - run: tar -czf package.tar.gz release | |
| if: ${{ matrix.vscode_target == 'linux-x64' }} | |
| - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 | |
| if: ${{ matrix.vscode_target == 'linux-x64' }} | |
| with: | |
| draft: true | |
| discussion_category_name: "📣 Announcements" | |
| files: package.tar.gz | |
| # Platform-specific release. | |
| - run: KEEP_MODULES=1 npm run release | |
| - run: npm run package | |
| - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 | |
| with: | |
| draft: true | |
| discussion_category_name: "📣 Announcements" | |
| files: ./release-packages/* | |
| package-macos: | |
| name: ${{ matrix.vscode_target }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| include: | |
| - os: macos-15-intel | |
| vscode_target: darwin-x64 | |
| - os: macos-latest | |
| vscode_target: darwin-arm64 | |
| env: | |
| VSCODE_TARGET: ${{ matrix.vscode_target }} | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| TAG: ${{ inputs.version || github.ref_name }} | |
| steps: | |
| # The version of node-gyp we use depends on distutils but it was removed | |
| # in Python 3.12. It seems to be fixed in the latest node-gyp so when we | |
| # next update Node we can probably remove this. For now, install | |
| # setuptools since it contains distutils. | |
| - run: brew install python-setuptools quilt | |
| - name: Install nfpm | |
| run: | | |
| mkdir -p ~/.local/bin | |
| curl -sSfL https://github.com/goreleaser/nfpm/releases/download/v2.3.1/nfpm_2.3.1_`uname -s`_`uname -m`.tar.gz | tar -C ~/.local/bin -zxv nfpm | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH | |
| - name: Set version to tag without leading v | |
| run: | | |
| echo "VERSION=${TAG#v}" >> $GITHUB_ENV | |
| - uses: actions/checkout@v6 | |
| with: | |
| submodules: true | |
| - run: quilt push -a | |
| - uses: actions/setup-node@v6 | |
| with: | |
| node-version-file: .node-version | |
| cache: npm | |
| cache-dependency-path: | | |
| package-lock.json | |
| test/package-lock.json | |
| - run: npm ci | |
| - run: npm run build | |
| - run: npm run build:vscode | |
| - run: KEEP_MODULES=1 npm run release | |
| - run: npm run test:native | |
| - run: npm run package | |
| - uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1 | |
| with: | |
| draft: true | |
| discussion_category_name: "📣 Announcements" | |
| files: ./release-packages/* |