mirror of
https://github.com/cdr/code-server.git
synced 2026-03-31 10:33:09 +02:00
168 lines
5.3 KiB
YAML
168 lines
5.3 KiB
YAML
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 }}
|
|
# Set release package name.
|
|
ARCH: ${{ matrix.package_arch }}
|
|
# Cross-compile target.
|
|
VSCODE_ARCH: ${{ matrix.vscode_arch }}
|
|
npm_config_arch: ${{ matrix.npm_arch }}
|
|
# Gulp target name.
|
|
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_arch == 'x64' }}
|
|
- run: tar -czf package.tar.gz release
|
|
if: ${{ matrix.vscode_arch == 'x64' }}
|
|
- uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
|
|
if: ${{ matrix.vscode_arch == '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/*
|