diff --git a/.github/workflows/_insider-linux.yml b/.github/workflows/_insider-linux.yml deleted file mode 100644 index a9e9cc95..00000000 --- a/.github/workflows/_insider-linux.yml +++ /dev/null @@ -1,543 +0,0 @@ -name: insider-linux - -on: - workflow_dispatch: - inputs: - force_version: - type: boolean - description: Force update version - generate_assets: - type: boolean - description: Generate assets - checkout_pr: - type: string - description: Checkout PR - repository_dispatch: - types: [insider] - push: - branches: [ insider ] - paths-ignore: - - '**/*.md' - - 'upstream/*.json' - pull_request: - branches: [ insider ] - paths-ignore: - - '**/*.md' - -env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }}-insiders - BINARY_NAME: codium-insiders - DISABLE_UPDATE: 'yes' - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: linux - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_QUALITY: insider - -jobs: - check: - runs-on: ubuntu-latest - outputs: - MS_COMMIT: ${{ env.MS_COMMIT }} - MS_TAG: ${{ env.MS_TAG }} - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_BUILD: ${{ env.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Clone VSCode repo - run: ./get_repo.sh - - - name: Check PR or cron - env: - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - run: ./check_cron_or_pr.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ALL: 'yes' - run: ./check_tags.sh - - compile: - needs: - - check - runs-on: ubuntu-20.04 - env: - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - VSCODE_ARCH: 'x64' - outputs: - BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.SHOULD_BUILD == 'yes' - - - name: Install Yarn - run: npm install -g yarn - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.SHOULD_BUILD == 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.SHOULD_BUILD == 'yes' - - - name: Clone VSCode repo - run: ./get_repo.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Build - env: - SHOULD_BUILD_REH: 'no' - SHOULD_BUILD_REH_WEB: 'no' - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Compress vscode artifact - run: | - find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt - echo "vscode/.build/extensions/node_modules" >> vscode.txt - echo "vscode/.git" >> vscode.txt - tar -czf vscode.tar.gz -T vscode.txt - if: env.SHOULD_BUILD == 'yes' - - - name: Upload vscode artifact - uses: actions/upload-artifact@v4 - with: - name: vscode - path: ./vscode.tar.gz - retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }} - if: env.SHOULD_BUILD == 'yes' - - build: - needs: - - check - - compile - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - slug: X64 - vscode_arch: x64 - npm_arch: x64 - image: vscodium/vscodium-linux-build-agent:focal-x64 - - slug: ARM64 - vscode_arch: arm64 - npm_arch: arm64 - image: vscodium/vscodium-linux-build-agent:focal-arm64 - - slug: ARM32 - vscode_arch: armhf - npm_arch: arm - image: vscodium/vscodium-linux-build-agent:focal-armhf - - slug: RISCV64 - vscode_arch: riscv64 - npm_arch: riscv64 - image: vscodium/vscodium-linux-build-agent:focal-riscv64 - - slug: LOONG64 - vscode_arch: loong64 - npm_arch: loong64 - image: vscodium/vscodium-linux-build-agent:beige-loong64 - - slug: PPC64 - vscode_arch: ppc64le - npm_arch: ppc64 - image: vscodium/vscodium-linux-build-agent:focal-ppc64le - container: - image: ${{ matrix.image }} - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_APP_{0}', matrix.slug)] }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - outputs: - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_BUILD: ${{ env.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Install GH - run: ./install_gh.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Check existing VSCodium tags/releases - env: - CHECK_REH: 'no' - DISABLE_APPIMAGE: ${{ vars.DISABLE_INSIDER_APPIMAGE }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./check_tags.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.npm_arch }} - run: ./build/linux/package_bin.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Prepare assets - env: - SHOULD_BUILD_REH: 'no' - SHOULD_BUILD_REH_WEB: 'no' - run: ./prepare_assets.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Update versions repo - env: - FORCE_UPDATE: ${{ github.event.inputs.force_version }} - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./update_version.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: bin-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - reh_linux: - needs: - - check - - compile - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - include: - - slug: X64 - vscode_arch: x64 - npm_arch: x64 - - slug: ARM64 - vscode_arch: arm64 - npm_arch: arm64 - - slug: ARM32 - vscode_arch: armhf - npm_arch: arm - - slug: PPC64 - vscode_arch: ppc64le - npm_arch: ppc64 - - slug: RISCV64 - vscode_arch: riscv64 - npm_arch: riscv64 - - slug: LOONG64 - vscode_arch: loong64 - npm_arch: loong64 - - slug: S390X - vscode_arch: s390x - npm_arch: s390x - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - DISABLED: ${{ vars[format('DISABLE_INSIDER_LINUX_REH_{0}', matrix.slug)] }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.DISABLED != 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.DISABLED != 'yes' - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - if: env.DISABLED != 'yes' - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.DISABLED != 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.DISABLED != 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.DISABLED != 'yes' - - - name: Install GH - run: ./install_gh.sh - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ONLY_REH: 'yes' - run: ./check_tags.sh - if: env.DISABLED != 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.npm_arch }} - run: ./build/linux/package_reh.sh - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no') - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: reh-linux-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - reh_alpine: - needs: - - check - - compile - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - include: - - slug: X64 - vscode_arch: x64 - npm_arch: x64 - - slug: ARM64 - vscode_arch: arm64 - npm_arch: arm64 - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - DISABLED: ${{ vars[format('DISABLE_INSIDER_ALPINE_REH_{0}', matrix.slug)] }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - OS_NAME: alpine - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - - - name: Install GH - run: ./install_gh.sh - if: env.SHOULD_DEPLOY == 'yes' - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ONLY_REH: 'yes' - run: ./check_tags.sh - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.SHOULD_BUILD == 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.npm_arch }} - run: ./build/alpine/package_reh.sh - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no') - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: reh-alpine-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - aur: - needs: - - check - - build - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - package_name: vscodium-insiders-bin - - package_name: vscodium-insiders - if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && github.event.inputs.generate_assets != 'true' - - steps: - - name: Get version - env: - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - run: echo "PACKAGE_VERSION=${RELEASE_VERSION/-*/}" >> "${GITHUB_ENV}" - - - name: Publish ${{ matrix.package_name }} - uses: zokugun/github-actions-aur-releaser@v1 - with: - package_name: ${{ matrix.package_name }} - package_version: ${{ env.PACKAGE_VERSION }} - aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }} - aur_username: ${{ secrets.AUR_USERNAME }} - aur_email: ${{ secrets.AUR_EMAIL }} - - snap: - needs: - - check - - build - runs-on: ubuntu-latest - env: - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SNAP_NAME: codium-insiders - strategy: - fail-fast: false - matrix: - platform: - - amd64 - - arm64 - if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_INSIDER_SNAP != 'yes' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - uses: docker/setup-qemu-action@v3 - - - uses: diddlesnaps/snapcraft-multiarch-action@v1 - with: - path: stores/snapcraft/insider - architecture: ${{ matrix.platform }} - id: build - - - uses: diddlesnaps/snapcraft-review-action@v1 - with: - snap: ${{ steps.build.outputs.snap }} - isClassic: 'true' - - - uses: svenstaro/upload-release-action@v2 - with: - repo_name: ${{ env.ASSETS_REPOSITORY }} - repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }} - file: ${{ steps.build.outputs.snap }} - tag: ${{ env.RELEASE_VERSION }} diff --git a/.github/workflows/_insider-macos.yml b/.github/workflows/_insider-macos.yml deleted file mode 100644 index e8751c77..00000000 --- a/.github/workflows/_insider-macos.yml +++ /dev/null @@ -1,134 +0,0 @@ -name: insider-macos - -on: - workflow_dispatch: - inputs: - force_version: - type: boolean - description: Force update version - generate_assets: - type: boolean - description: Generate assets - checkout_pr: - type: string - description: Checkout PR - repository_dispatch: - types: [insider] - push: - branches: [ insider ] - paths-ignore: - - '**/*.md' - - 'upstream/*.json' - pull_request: - branches: [ insider ] - paths-ignore: - - '**/*.md' - -env: - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }}-insiders - BINARY_NAME: codium-insiders - GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }} - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: osx - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_QUALITY: insider - -jobs: - build: - runs-on: ${{ matrix.runner }} - env: - VSCODE_ARCH: ${{ matrix.vscode_arch }} - strategy: - fail-fast: false - matrix: - include: - - runner: macos-13 - vscode_arch: x64 - - runner: [self-hosted, macOS, ARM64] - vscode_arch: arm64 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: . get_pr.sh - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.VSCODE_ARCH == 'x64' - - - name: Clone VSCode repo - run: . get_repo.sh - - - name: Check PR or cron - env: - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - run: . check_cron_or_pr.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: . check_tags.sh - if: env.SHOULD_DEPLOY == 'yes' - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Prepare assets - env: - CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }} - CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }} - CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }} - CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }} - CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }} - run: ./prepare_assets.sh - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Update versions repo - env: - FORCE_UPDATE: ${{ github.event.inputs.force_version }} - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./update_version.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: bin-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - - name: Clean up keychain - if: always() - run: | - KEYCHAIN=$RUNNER_TEMP/build.keychain - - if [ -f "$KEYCHAIN" ]; - then - security delete-keychain $KEYCHAIN - fi diff --git a/.github/workflows/_insider-spearhead.yml b/.github/workflows/_insider-spearhead.yml deleted file mode 100644 index 726acae2..00000000 --- a/.github/workflows/_insider-spearhead.yml +++ /dev/null @@ -1,90 +0,0 @@ -name: insider-spearhead - -on: - workflow_dispatch: - inputs: - new_release: - type: boolean - description: Force new Release - force_dispatch: - type: boolean - description: Force dispatch - dont_update: - type: boolean - description: Don't update VSCode - dont_dispatch: - type: boolean - description: Disable dispatch - schedule: - - cron: '0 7 * * *' - -jobs: - build: - runs-on: macos-14 - env: - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }}-insiders - BINARY_NAME: codium-insiders - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: osx - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_ARCH: arm64 - VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }} - VSCODE_QUALITY: insider - - steps: - - uses: actions/checkout@v4 - with: - ref: insider - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - - - name: Clone VSCode repo - run: . get_repo.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NEW_RELEASE: ${{ github.event.inputs.new_release }} - IS_SPEARHEAD: 'yes' - run: . check_tags.sh - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@v6 - with: - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - passphrase: ${{ secrets.GPG_PASSPHRASE }} - git_user_signingkey: true - git_commit_gpgsign: true - if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true' - - - name: Update upstream version - run: ./update_upstream.sh - if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true' - - - name: Prepare source - run: ./prepare_src.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Release source - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Dispatch builds - uses: peter-evans/repository-dispatch@v3 - with: - event-type: 'insider' - if: github.event.inputs.dont_dispatch != 'true' && (env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true') diff --git a/.github/workflows/_insider-windows.yml b/.github/workflows/_insider-windows.yml deleted file mode 100644 index dac313a8..00000000 --- a/.github/workflows/_insider-windows.yml +++ /dev/null @@ -1,311 +0,0 @@ -name: insider-windows - -on: - workflow_dispatch: - inputs: - force_version: - type: boolean - description: Force update version - generate_assets: - type: boolean - description: Generate assets - checkout_pr: - type: string - description: Checkout PR - repository_dispatch: - types: [insider] - push: - branches: [ insider ] - paths-ignore: - - '**/*.md' - - 'upstream/*.json' - pull_request: - branches: [ insider ] - paths-ignore: - - '**/*.md' - -env: - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }}-insiders - BINARY_NAME: codium-insiders - GITHUB_BRANCH: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.sha || 'insider' }} - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: windows - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_QUALITY: insider - -jobs: - check: - runs-on: ubuntu-latest - outputs: - MS_COMMIT: ${{ env.MS_COMMIT }} - MS_TAG: ${{ env.MS_TAG }} - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_BUILD: ${{ env.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Clone VSCode repo - run: ./get_repo.sh - - - name: Check PR or cron - env: - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - run: ./check_cron_or_pr.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ALL: 'yes' - run: ./check_tags.sh - - compile: - needs: - - check - runs-on: ubuntu-20.04 - env: - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - VSCODE_ARCH: 'x64' - outputs: - BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.SHOULD_BUILD == 'yes' - - - name: Install Yarn - run: npm install -g yarn - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.SHOULD_BUILD == 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.SHOULD_BUILD == 'yes' - - - name: Clone VSCode repo - run: ./get_repo.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Build - env: - SHOULD_BUILD_REH: 'no' - SHOULD_BUILD_REH_WEB: 'no' - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Compress vscode artifact - run: | - find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt - echo "vscode/.build/extensions/node_modules" >> vscode.txt - echo "vscode/.git" >> vscode.txt - tar -czf vscode.tar.gz -T vscode.txt - if: env.SHOULD_BUILD == 'yes' - - - name: Upload vscode artifact - uses: actions/upload-artifact@v4 - with: - name: vscode - path: ./vscode.tar.gz - retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }} - if: env.SHOULD_BUILD == 'yes' - - build: - needs: - - check - - compile - runs-on: windows-2019 - strategy: - fail-fast: false - matrix: - vscode_arch: - - x64 - - arm64 - defaults: - run: - shell: bash - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - outputs: - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.SHOULD_BUILD == 'yes' - - - name: Install Yarn - run: npm install -g yarn - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.SHOULD_BUILD == 'yes' - - - name: Check existing VSCodium tags/releases - env: - DISABLE_MSI: ${{ vars.DISABLE_INSIDER_MSI }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./check_tags.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.SHOULD_BUILD == 'yes' - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.vscode_arch }} - npm_config_target_arch: ${{ matrix.vscode_arch }} - run: ./build/windows/package.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Prepare assets - run: ./prepare_assets.sh - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Upload unsigned artifacts - id: upload-unsigned-artifacts - uses: actions/upload-artifact@v4 - with: - name: unsigned-${{ matrix.vscode_arch }} - path: | - assets/*.exe - assets/*.msi - retention-days: 1 - if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Signing - uses: signpath/github-action-submit-signing-request@v1 - with: - api-token: ${{ secrets.SIGNPATH_API_TOKEN }} - organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }} - project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }} - signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }} - github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }} - artifact-configuration-slug: ${{ matrix.vscode_arch }} - wait-for-completion: true - # 3h to manually approve the request - wait-for-completion-timeout-in-seconds: 10800 - output-artifact-directory: assets/ - if: env.SHOULD_BUILD == 'yes' && vars.DISABLE_INSIDER_WINDOWS_SIGNING != 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Prepare checksums - run: ./prepare_checksums.sh - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Update versions repo - env: - FORCE_UPDATE: ${{ github.event.inputs.force_version }} - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./update_version.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: bin-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - winget: - needs: build - runs-on: windows-latest - defaults: - run: - shell: bash - env: - APP_IDENTIFIER: VSCodium.VSCodium.Insiders - ASSETS_REPOSITORY: vscodium-insiders - if: needs.build.outputs.SHOULD_DEPLOY == 'yes' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Check version - run: ./stores/winget/check_version.sh - env: - RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }} - - - name: Release to WinGet - uses: vedantmgoyal9/winget-releaser@main - with: - identifier: ${{ env.APP_IDENTIFIER }} - version: ${{ env.RELEASE_VERSION }} - release-repository: ${{ env.ASSETS_REPOSITORY }} - release-tag: ${{ env.RELEASE_VERSION }}-insider - installers-regex: '\.exe$' # only .exe files - token: ${{ secrets.STRONGER_GITHUB_TOKEN }} - if: env.SHOULD_DEPLOY == 'yes' diff --git a/.github/workflows/_lock.yml b/.github/workflows/_lock.yml deleted file mode 100644 index 7ea85c41..00000000 --- a/.github/workflows/_lock.yml +++ /dev/null @@ -1,16 +0,0 @@ -name: Lock Issues - -on: - schedule: - - cron: '0 2 * * *' - -jobs: - lock: - runs-on: ubuntu-latest - steps: - - uses: dessant/lock-threads@v5 - with: - github-token: ${{ github.token }} - issue-inactive-days: '90' - pr-inactive-days: '90' - log-output: true diff --git a/.github/workflows/_stale.yml b/.github/workflows/_stale.yml deleted file mode 100644 index 28d2f414..00000000 --- a/.github/workflows/_stale.yml +++ /dev/null @@ -1,25 +0,0 @@ -name: Stale Issues - -on: - schedule: - - cron: '0 1 * * *' - -permissions: - issues: write - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9 - with: - days-before-stale: 180 - days-before-close: 30 - stale-issue-label: stale - operations-per-run: 1024 - stale-issue-message: > - This issue has been automatically marked as stale. **If this issue is still affecting you, please leave any comment**, and we'll keep it open. If you have any new additional information, please include it with your comment! - close-issue-message: > - This issue has been closed due to inactivity, and will not be monitored. If this is a bug and you can reproduce this issue, please open a new issue. - exempt-issue-labels: discussion,never-stale - only-pr-labels: needs-information diff --git a/.github/workflows/stable-linux.yml b/.github/workflows/stable-linux.yml deleted file mode 100644 index c191f34a..00000000 --- a/.github/workflows/stable-linux.yml +++ /dev/null @@ -1,574 +0,0 @@ -name: stable-linux - -on: - workflow_dispatch: - inputs: - force_version: - type: boolean - description: Force update version - generate_assets: - type: boolean - description: Generate assets - checkout_pr: - type: string - description: Checkout PR - repository_dispatch: - types: [stable] - push: - branches: [ master, github-workflow ] - paths-ignore: - - '**/*.md' - - 'upstream/*.json' - pull_request: - branches: [ master ] - paths-ignore: - - '**/*.md' - -env: - ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }} - BINARY_NAME: codium - DISABLE_UPDATE: 'yes' - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: linux - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_QUALITY: stable - -jobs: - check: - runs-on: ubuntu-latest - outputs: - MS_COMMIT: ${{ env.MS_COMMIT }} - MS_TAG: ${{ env.MS_TAG }} - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_BUILD: ${{ env.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Clone VSCode repo - run: ./get_repo.sh - - - name: Check PR or cron - env: - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - run: ./check_cron_or_pr.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ALL: 'yes' - run: ./check_tags.sh - - compile: - needs: - - check - runs-on: ubuntu-20.04 - env: - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - VSCODE_ARCH: 'x64' - outputs: - BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.SHOULD_BUILD == 'yes' - - - name: Install Yarn - run: npm install -g yarn - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.SHOULD_BUILD == 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.SHOULD_BUILD == 'yes' - - - name: Clone VSCode repo - run: ./get_repo.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Build - env: - SHOULD_BUILD_REH: 'no' - SHOULD_BUILD_REH_WEB: 'no' - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Compress vscode artifact - run: | - find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt - echo "vscode/.build/extensions/node_modules" >> vscode.txt - echo "vscode/.git" >> vscode.txt - tar -czf vscode.tar.gz -T vscode.txt - if: env.SHOULD_BUILD == 'yes' - - - name: Upload vscode artifact - uses: actions/upload-artifact@v4 - with: - name: vscode - path: ./vscode.tar.gz - retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }} - if: env.SHOULD_BUILD == 'yes' - - build: - needs: - - check - - compile - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - slug: X64 - vscode_arch: x64 - npm_arch: x64 - image: vscodium/vscodium-linux-build-agent:focal-x64 - - slug: ARM64 - vscode_arch: arm64 - npm_arch: arm64 - image: vscodium/vscodium-linux-build-agent:focal-arm64 - - slug: ARM32 - vscode_arch: armhf - npm_arch: arm - image: vscodium/vscodium-linux-build-agent:focal-armhf - - slug: RISCV64 - vscode_arch: riscv64 - npm_arch: riscv64 - image: vscodium/vscodium-linux-build-agent:focal-riscv64 - - slug: LOONG64 - vscode_arch: loong64 - npm_arch: loong64 - image: vscodium/vscodium-linux-build-agent:beige-loong64 - - slug: PPC64 - vscode_arch: ppc64le - npm_arch: ppc64 - image: vscodium/vscodium-linux-build-agent:focal-ppc64le - container: - image: ${{ matrix.image }} - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_APP_{0}', matrix.slug)] }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - outputs: - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_BUILD: ${{ env.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.DISABLED != 'yes' - - - name: Install GH - run: ./install_gh.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Check existing VSCodium tags/releases - env: - CHECK_REH: 'no' - DISABLE_APPIMAGE: ${{ vars.DISABLE_STABLE_APPIMAGE }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./check_tags.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.npm_arch }} - run: ./build/linux/package_bin.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' - - - name: Prepare assets - env: - SHOULD_BUILD_REH: 'no' - SHOULD_BUILD_REH_WEB: 'no' - run: ./prepare_assets.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Update versions repo - env: - FORCE_UPDATE: ${{ github.event.inputs.force_version }} - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./update_version.sh - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: bin-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.DISABLED != 'yes' && env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - reh_linux: - needs: - - check - - compile - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - include: - - slug: X64 - vscode_arch: x64 - npm_arch: x64 - - slug: ARM64 - vscode_arch: arm64 - npm_arch: arm64 - - slug: ARM32 - vscode_arch: armhf - npm_arch: arm - - slug: PPC64 - vscode_arch: ppc64le - npm_arch: ppc64 - - slug: RISCV64 - vscode_arch: riscv64 - npm_arch: riscv64 - - slug: LOONG64 - vscode_arch: loong64 - npm_arch: loong64 - - slug: S390X - vscode_arch: s390x - npm_arch: s390x - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - DISABLED: ${{ vars[format('DISABLE_STABLE_LINUX_REH_{0}', matrix.slug)] }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.DISABLED != 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.DISABLED != 'yes' - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - if: env.DISABLED != 'yes' - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.DISABLED != 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.DISABLED != 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.DISABLED != 'yes' - - - name: Install GH - run: ./install_gh.sh - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ONLY_REH: 'yes' - run: ./check_tags.sh - if: env.DISABLED != 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.npm_arch }} - run: ./build/linux/package_reh.sh - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no') - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: reh-linux-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - reh_alpine: - needs: - - check - - compile - runs-on: ubuntu-20.04 - strategy: - fail-fast: false - matrix: - include: - - slug: X64 - vscode_arch: x64 - npm_arch: x64 - - slug: ARM64 - vscode_arch: arm64 - npm_arch: arm64 - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - DISABLED: ${{ vars[format('DISABLE_STABLE_ALPINE_REH_{0}', matrix.slug)] }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - OS_NAME: alpine - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ needs.check.outputs.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - if: needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - - - name: Install GH - run: ./install_gh.sh - if: env.SHOULD_DEPLOY == 'yes' - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ONLY_REH: 'yes' - run: ./check_tags.sh - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.SHOULD_BUILD == 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.npm_arch }} - run: ./build/alpine/package_reh.sh - if: env.DISABLED != 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'yes' && (env.SHOULD_BUILD_REH != 'no' || env.SHOULD_BUILD_REH_WEB != 'no') - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: reh-alpine-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.DISABLED != 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - aur: - needs: - - check - - build - runs-on: ubuntu-latest - strategy: - fail-fast: false - matrix: - include: - - package_name: vscodium - package_type: stable - # - package_name: vscodium-git - # package_type: rolling - if: needs.check.outputs.SHOULD_DEPLOY == 'yes' - - steps: - - name: Publish ${{ matrix.package_name }} - uses: zokugun/github-actions-aur-releaser@v1 - with: - package_name: ${{ matrix.package_name }} - package_type: ${{ matrix.package_type }} - aur_private_key: ${{ secrets.AUR_PRIVATE_KEY }} - aur_username: ${{ secrets.AUR_USERNAME }} - aur_email: ${{ secrets.AUR_EMAIL }} - - snap: - needs: - - check - - build - runs-on: ubuntu-latest - env: - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SNAP_NAME: codium - strategy: - fail-fast: false - matrix: - platform: - - amd64 - - arm64 - if: needs.check.outputs.SHOULD_DEPLOY == 'yes' && needs.check.outputs.SHOULD_BUILD_SNAP != 'no' && vars.DISABLE_STABLE_SNAP != 'yes' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Check version - env: - ARCHITECTURE: ${{ matrix.platform }} - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - SNAPCRAFT_STORE_CHANNEL: ${{ vars.SNAP_STORE_CHANNEL }} - SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }} - run: ./stores/snapcraft/check_version.sh - - - uses: docker/setup-qemu-action@v3 - if: env.SHOULD_BUILD == 'yes' - - - uses: diddlesnaps/snapcraft-multiarch-action@v1 - with: - path: stores/snapcraft/stable - architecture: ${{ matrix.platform }} - id: build - if: env.SHOULD_BUILD == 'yes' - - - uses: diddlesnaps/snapcraft-review-action@v1 - with: - snap: ${{ steps.build.outputs.snap }} - isClassic: 'true' - if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes' || env.SHOULD_DEPLOY_TO_STORE == 'yes' - - - uses: svenstaro/upload-release-action@v2 - with: - repo_name: ${{ env.ASSETS_REPOSITORY }} - repo_token: ${{ secrets.STRONGER_GITHUB_TOKEN }} - file: ${{ steps.build.outputs.snap }} - tag: ${{ env.RELEASE_VERSION }} - if: env.SHOULD_DEPLOY_TO_RELEASE == 'yes' - - - uses: snapcore/action-publish@master - env: - SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAP_STORE_LOGIN }} - with: - snap: ${{ steps.build.outputs.snap }} - release: ${{ vars.SNAP_STORE_CHANNEL }} - if: env.SHOULD_DEPLOY_TO_STORE == 'yes' - - deb-rpm-repo-hook: - needs: - - check - - build - runs-on: ubuntu-latest - if: needs.check.outputs.SHOULD_DEPLOY == 'yes' - - steps: - - name: Trigger repository rebuild - env: - GL_PAGES_TOKEN: ${{ secrets.GL_PAGES_TOKEN }} - run: curl -X POST --fail -F token="${GL_PAGES_TOKEN}" -F ref=master https://gitlab.com/api/v4/projects/8762263/trigger/pipeline diff --git a/.github/workflows/stable-macos.yml b/.github/workflows/stable-macos.yml deleted file mode 100644 index 1b3563a3..00000000 --- a/.github/workflows/stable-macos.yml +++ /dev/null @@ -1,132 +0,0 @@ -name: stable-macos - -on: - workflow_dispatch: - inputs: - force_version: - type: boolean - description: Force update version - generate_assets: - type: boolean - description: Generate assets - checkout_pr: - type: string - description: Checkout PR - repository_dispatch: - types: [stable] - push: - branches: [ master, github-workflow ] - paths-ignore: - - '**/*.md' - - 'upstream/*.json' - pull_request: - branches: [ master ] - paths-ignore: - - '**/*.md' - -env: - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }} - BINARY_NAME: codium - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: osx - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_QUALITY: stable - -jobs: - build: - runs-on: ${{ matrix.runner }} - env: - VSCODE_ARCH: ${{ matrix.vscode_arch }} - strategy: - fail-fast: false - matrix: - include: - - runner: macos-13 - vscode_arch: x64 - - runner: [self-hosted, macOS, ARM64] - vscode_arch: arm64 - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: . get_pr.sh - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.VSCODE_ARCH == 'x64' - - - name: Clone VSCode repo - run: . get_repo.sh - - - name: Check PR or cron - env: - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - run: . check_cron_or_pr.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: . check_tags.sh - if: env.SHOULD_DEPLOY == 'yes' - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Prepare assets - env: - CERTIFICATE_OSX_APP_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_APP_PASSWORD }} - CERTIFICATE_OSX_ID: ${{ secrets.CERTIFICATE_OSX_NEW_ID }} - CERTIFICATE_OSX_P12_DATA: ${{ secrets.CERTIFICATE_OSX_NEW_P12_DATA }} - CERTIFICATE_OSX_P12_PASSWORD: ${{ secrets.CERTIFICATE_OSX_NEW_P12_PASSWORD }} - CERTIFICATE_OSX_TEAM_ID: ${{ secrets.CERTIFICATE_OSX_NEW_TEAM_ID }} - run: ./prepare_assets.sh - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./release.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Update versions repo - env: - FORCE_UPDATE: ${{ github.event.inputs.force_version }} - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./update_version.sh - if: env.SHOULD_DEPLOY == 'yes' - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: bin-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - - name: Clean up keychain - if: always() - run: | - KEYCHAIN=$RUNNER_TEMP/build.keychain - - if [ -f "$KEYCHAIN" ]; - then - security delete-keychain $KEYCHAIN - fi diff --git a/.github/workflows/stable-spearhead.yml b/.github/workflows/stable-spearhead.yml deleted file mode 100644 index b7d745ee..00000000 --- a/.github/workflows/stable-spearhead.yml +++ /dev/null @@ -1,85 +0,0 @@ -name: stable-spearhead - -on: - workflow_dispatch: - inputs: - new_release: - type: boolean - description: Force new Release - force_dispatch: - type: boolean - description: Force dispatch - dont_update: - type: boolean - description: Don't update VSCode - schedule: - - cron: '0 18 * * *' - -jobs: - build: - runs-on: macos-14 - env: - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }} - BINARY_NAME: codium - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: osx - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_ARCH: arm64 - VSCODE_LATEST: ${{ github.event.inputs.dont_update == 'true' && 'no' || 'yes' }} - VSCODE_QUALITY: stable - - steps: - - uses: actions/checkout@v4 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - - - name: Clone VSCode repo - run: . get_repo.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - NEW_RELEASE: ${{ github.event.inputs.new_release }} - IS_SPEARHEAD: 'yes' - run: . check_tags.sh - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Import GPG key - uses: crazy-max/ghaction-import-gpg@v6 - with: - gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} - passphrase: ${{ secrets.GPG_PASSPHRASE }} - git_user_signingkey: true - git_commit_gpgsign: true - if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true' - - - name: Update upstream version - run: ./update_upstream.sh - if: env.SHOULD_BUILD == 'yes' && github.event.inputs.dont_update != 'true' - - - name: Prepare source - run: ./prepare_src.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Release source - env: - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./release.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Dispatch builds - uses: peter-evans/repository-dispatch@v3 - with: - event-type: 'stable' - if: env.SHOULD_BUILD == 'yes' || github.event.inputs.force_dispatch == 'true' diff --git a/.github/workflows/stable-windows.yml b/.github/workflows/stable-windows.yml deleted file mode 100644 index 28931ec9..00000000 --- a/.github/workflows/stable-windows.yml +++ /dev/null @@ -1,307 +0,0 @@ -name: stable-windows - -on: - workflow_dispatch: - inputs: - force_version: - type: boolean - description: Force update version - generate_assets: - type: boolean - description: Generate assets - checkout_pr: - type: string - description: Checkout PR - repository_dispatch: - types: [stable] - push: - branches: [ master ] - paths-ignore: - - '**/*.md' - - 'upstream/*.json' - pull_request: - branches: [ master ] - paths-ignore: - - '**/*.md' - -env: - APP_NAME: VSCodium - ASSETS_REPOSITORY: ${{ github.repository }} - BINARY_NAME: codium - GH_REPO_PATH: ${{ github.repository_owner }}/${{ github.repository }} - ORG_NAME: ${{ github.repository_owner }} - OS_NAME: windows - VERSIONS_REPOSITORY: ${{ github.repository_owner }}/versions - VSCODE_QUALITY: stable - -jobs: - check: - runs-on: ubuntu-latest - outputs: - MS_COMMIT: ${{ env.MS_COMMIT }} - MS_TAG: ${{ env.MS_TAG }} - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_BUILD: ${{ env.SHOULD_BUILD }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Clone VSCode repo - run: ./get_repo.sh - - - name: Check PR or cron - env: - GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} - run: ./check_cron_or_pr.sh - - - name: Check existing VSCodium tags/releases - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - CHECK_ALL: 'yes' - run: ./check_tags.sh - - compile: - needs: - - check - runs-on: ubuntu-20.04 - env: - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - VSCODE_ARCH: 'x64' - outputs: - BUILD_SOURCEVERSION: ${{ env.BUILD_SOURCEVERSION }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - - - name: Setup GCC - uses: egor-tensin/setup-gcc@v1 - with: - version: 10 - platform: x64 - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.SHOULD_BUILD == 'yes' - - - name: Install Yarn - run: npm install -g yarn - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.SHOULD_BUILD == 'yes' - - - name: Install libkrb5-dev - run: sudo apt-get update -y && sudo apt-get install -y libkrb5-dev - if: env.SHOULD_BUILD == 'yes' - - - name: Clone VSCode repo - run: ./get_repo.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Build - env: - SHOULD_BUILD_REH: 'no' - SHOULD_BUILD_REH_WEB: 'no' - run: ./build.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Compress vscode artifact - run: | - find vscode -type f -not -path "*/node_modules/*" -not -path "vscode/.build/node/*" -not -path "vscode/.git/*" > vscode.txt - echo "vscode/.build/extensions/node_modules" >> vscode.txt - echo "vscode/.git" >> vscode.txt - tar -czf vscode.tar.gz -T vscode.txt - if: env.SHOULD_BUILD == 'yes' - - - name: Upload vscode artifact - uses: actions/upload-artifact@v4 - with: - name: vscode - path: ./vscode.tar.gz - retention-days: ${{ needs.check.outputs.SHOULD_DEPLOY == 'yes' && 30 || 1 }} - if: env.SHOULD_BUILD == 'yes' - - build: - needs: - - check - - compile - runs-on: windows-2019 - strategy: - fail-fast: false - matrix: - vscode_arch: - - x64 - - arm64 - defaults: - run: - shell: bash - env: - BUILD_SOURCEVERSION: ${{ needs.compile.outputs.BUILD_SOURCEVERSION }} - MS_COMMIT: ${{ needs.check.outputs.MS_COMMIT }} - MS_TAG: ${{ needs.check.outputs.MS_TAG }} - RELEASE_VERSION: ${{ needs.check.outputs.RELEASE_VERSION }} - SHOULD_BUILD: ${{ (needs.check.outputs.SHOULD_BUILD == 'yes' || github.event.inputs.generate_assets == 'true') && 'yes' || 'no' }} - SHOULD_DEPLOY: ${{ needs.check.outputs.SHOULD_DEPLOY }} - VSCODE_ARCH: ${{ matrix.vscode_arch }} - outputs: - RELEASE_VERSION: ${{ env.RELEASE_VERSION }} - SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - if: env.SHOULD_BUILD == 'yes' - - - name: Switch to relevant branch - env: - PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} - run: ./get_pr.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Node.js environment - uses: actions/setup-node@v4 - with: - node-version: '20.18.2' - if: env.SHOULD_BUILD == 'yes' - - - name: Install Yarn - run: npm install -g yarn - if: env.SHOULD_BUILD == 'yes' - - - name: Setup Python 3 - uses: actions/setup-python@v5 - with: - python-version: '3.11' - if: env.SHOULD_BUILD == 'yes' - - - name: Check existing VSCodium tags/releases - env: - DISABLE_MSI: ${{ vars.DISABLE_STABLE_MSI }} - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./check_tags.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Download vscode artifact - uses: actions/download-artifact@v4 - with: - name: vscode - if: env.SHOULD_BUILD == 'yes' - - - name: Build - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - npm_config_arch: ${{ matrix.vscode_arch }} - npm_config_target_arch: ${{ matrix.vscode_arch }} - run: ./build/windows/package.sh - if: env.SHOULD_BUILD == 'yes' - - - name: Prepare assets - run: ./prepare_assets.sh - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Upload unsigned artifacts - id: upload-unsigned-artifacts - uses: actions/upload-artifact@v4 - with: - name: unsigned-${{ matrix.vscode_arch }} - path: | - assets/*.exe - assets/*.msi - retention-days: 1 - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Signing - uses: signpath/github-action-submit-signing-request@v1 - with: - api-token: ${{ secrets.SIGNPATH_API_TOKEN }} - organization-id: ${{ secrets.SIGNPATH_ORGANIZATION_ID }} - project-slug: ${{ secrets.SIGNPATH_PROJECT_SLUG }} - signing-policy-slug: ${{ secrets.SIGNPATH_POLICY_SLUG }} - github-artifact-id: ${{ steps.upload-unsigned-artifacts.outputs.artifact-id }} - artifact-configuration-slug: ${{ matrix.vscode_arch }} - wait-for-completion: true - # 3h to manually approve the request - wait-for-completion-timeout-in-seconds: 10800 - output-artifact-directory: assets/ - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Prepare checksums - run: ./prepare_checksums.sh - if: env.SHOULD_BUILD == 'yes' && (env.SHOULD_DEPLOY == 'yes' || github.event.inputs.generate_assets == 'true') - - - name: Release - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./release.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Update versions repo - env: - FORCE_UPDATE: ${{ github.event.inputs.force_version }} - GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} - GITHUB_USERNAME: ${{ github.repository_owner }} - run: ./update_version.sh - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - - - name: Upload assets - uses: actions/upload-artifact@v4 - with: - name: bin-${{ matrix.vscode_arch }} - path: assets/ - retention-days: 3 - if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'no' && github.event.inputs.generate_assets == 'true' - - winget: - needs: build - runs-on: windows-latest - defaults: - run: - shell: bash - env: - APP_IDENTIFIER: VSCodium.VSCodium - if: needs.build.outputs.SHOULD_DEPLOY == 'yes' - - steps: - - uses: actions/checkout@v4 - with: - ref: ${{ env.GITHUB_BRANCH }} - - - name: Check version - run: ./stores/winget/check_version.sh - env: - RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }} - - - name: Release to WinGet - uses: vedantmgoyal9/winget-releaser@main - with: - identifier: ${{ env.APP_IDENTIFIER }} - version: ${{ env.RELEASE_VERSION }} - release-tag: ${{ env.RELEASE_VERSION }} - installers-regex: '\.exe$' # only .exe files - token: ${{ secrets.STRONGER_GITHUB_TOKEN }} - if: env.SHOULD_DEPLOY == 'yes' diff --git a/.github/workflows/void-build.yml b/.github/workflows/void-build.yml deleted file mode 100644 index 379ba257..00000000 --- a/.github/workflows/void-build.yml +++ /dev/null @@ -1,405 +0,0 @@ -name: Build Void - -on: - push: - branches: [ main, release/*, github-workflow ] - pull_request: - branches: [ main ] - workflow_dispatch: - -jobs: - build-linux: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - cache: 'npm' - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y pkg-config libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev - # Set npm config to use GitHub token for authentication to avoid rate limits - npm config set //github.com/:_authToken=${{ github.token }} - npm config set //api.github.com/:_authToken=${{ github.token }} - npm config set //npm.pkg.github.com/:_authToken=${{ github.token }} - # Configure npm to use the GitHub token for all requests to github.com domains - npm config set @microsoft:registry https://npm.pkg.github.com - npm config set @vscode:registry https://npm.pkg.github.com - # Increase network timeout to handle slow connections - npm config set fetch-timeout 300000 - npm config set fetch-retry-mintimeout 20000 - npm config set fetch-retry-maxtimeout 120000 - npm install - npm install -g node-gyp - npm install -g gulp-cli - - - name: Build - run: | - npm run buildreact - npm run gulp vscode-linux-x64-min - - - name: Package - run: | - mkdir -p .build/linux/client - ARCHIVE_PATH=".build/linux/client/void-linux-x64.tar.gz" - tar -czf $ARCHIVE_PATH -C .. VSCode-linux-x64 - - - name: Generate checksum - run: | - cd .build/linux/client - sha256sum void-linux-x64.tar.gz > void-linux-x64.tar.gz.sha256 - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: void-linux-x64 - path: | - .build/linux/client/void-linux-x64.tar.gz - .build/linux/client/void-linux-x64.tar.gz.sha256 - - build-linux-arm64: - runs-on: ubuntu-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - cache: 'npm' - - - name: Install dependencies - run: | - sudo apt-get update - sudo apt-get install -y pkg-config libx11-dev libxkbfile-dev libsecret-1-dev libkrb5-dev - # Set npm config to use GitHub token for authentication to avoid rate limits - npm config set //github.com/:_authToken=${{ github.token }} - npm config set //api.github.com/:_authToken=${{ github.token }} - npm config set //npm.pkg.github.com/:_authToken=${{ github.token }} - # Configure npm to use the GitHub token for all requests to github.com domains - npm config set @microsoft:registry https://npm.pkg.github.com - npm config set @vscode:registry https://npm.pkg.github.com - # Increase network timeout to handle slow connections - npm config set fetch-timeout 300000 - npm config set fetch-retry-mintimeout 20000 - npm config set fetch-retry-maxtimeout 120000 - npm install - npm install -g node-gyp - npm install -g gulp-cli - - - name: Build - run: | - npm run buildreact - npm run gulp vscode-linux-arm64-min - - - name: Package - run: | - mkdir -p .build/linux/client - ARCHIVE_PATH=".build/linux/client/void-linux-arm64.tar.gz" - tar -czf $ARCHIVE_PATH -C .. VSCode-linux-arm64 - - - name: Generate checksum - run: | - cd .build/linux/client - sha256sum void-linux-arm64.tar.gz > void-linux-arm64.tar.gz.sha256 - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: void-linux-arm64 - path: | - .build/linux/client/void-linux-arm64.tar.gz - .build/linux/client/void-linux-arm64.tar.gz.sha256 - - build-windows: - runs-on: windows-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - cache: 'npm' - - - name: Install dependencies - run: | - # Set npm config to use GitHub token for authentication to avoid rate limits - npm config set //github.com/:_authToken=${{ github.token }} - npm config set //api.github.com/:_authToken=${{ github.token }} - npm config set //npm.pkg.github.com/:_authToken=${{ github.token }} - # Configure npm to use the GitHub token for all requests to github.com domains - npm config set @microsoft:registry https://npm.pkg.github.com - npm config set @vscode:registry https://npm.pkg.github.com - # Increase network timeout to handle slow connections - npm config set fetch-timeout 300000 - npm config set fetch-retry-mintimeout 20000 - npm config set fetch-retry-maxtimeout 120000 - npm install - npm install -g node-gyp - npm install -g gulp-cli - - - name: Build - run: | - npm run buildreact - npm run gulp vscode-win32-x64-min - - - name: Package - run: | - mkdir -p .build/win32-x64 - Compress-Archive -Path ..\VSCode-win32-x64\* -DestinationPath .build\win32-x64\void-win32-x64.zip - shell: pwsh - - - name: Generate checksum - run: | - cd .build/win32-x64 - $hash = Get-FileHash -Algorithm SHA256 void-win32-x64.zip - $hash.Hash | Out-File -Encoding ascii void-win32-x64.zip.sha256 - shell: pwsh - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: void-win32-x64 - path: | - .build/win32-x64/void-win32-x64.zip - .build/win32-x64/void-win32-x64.zip.sha256 - - build-windows-arm64: - runs-on: windows-latest - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - cache: 'npm' - - - name: Install dependencies - run: | - # Set npm config to use GitHub token for authentication to avoid rate limits - npm config set //github.com/:_authToken=${{ github.token }} - npm config set //api.github.com/:_authToken=${{ github.token }} - npm config set //npm.pkg.github.com/:_authToken=${{ github.token }} - # Configure npm to use the GitHub token for all requests to github.com domains - npm config set @microsoft:registry https://npm.pkg.github.com - npm config set @vscode:registry https://npm.pkg.github.com - # Increase network timeout to handle slow connections - npm config set fetch-timeout 300000 - npm config set fetch-retry-mintimeout 20000 - npm config set fetch-retry-maxtimeout 120000 - npm install - npm install -g node-gyp - npm install -g gulp-cli - - - name: Build - run: | - npm run buildreact - npm run gulp vscode-win32-arm64-min - - - name: Package - run: | - mkdir -p .build/win32-arm64 - Compress-Archive -Path ..\VSCode-win32-arm64\* -DestinationPath .build\win32-arm64\void-win32-arm64.zip - shell: pwsh - - - name: Generate checksum - run: | - cd .build/win32-arm64 - $hash = Get-FileHash -Algorithm SHA256 void-win32-arm64.zip - $hash.Hash | Out-File -Encoding ascii void-win32-arm64.zip.sha256 - shell: pwsh - - - name: Upload artifacts - uses: actions/upload-artifact@v4 - with: - name: void-win32-arm64 - path: | - .build/win32-arm64/void-win32-arm64.zip - .build/win32-arm64/void-win32-arm64.zip.sha256 - - build-macos: - runs-on: macos-latest-large - strategy: - matrix: - arch: [arm64, x64] - steps: - - name: Checkout - uses: actions/checkout@v3 - - - name: Setup Node.js - uses: actions/setup-node@v3 - with: - node-version-file: '.nvmrc' - cache: 'npm' - - - name: Install dependencies - run: | - # Set npm config to use GitHub token for authentication to avoid rate limits - npm config set //github.com/:_authToken=${{ github.token }} - npm config set //api.github.com/:_authToken=${{ github.token }} - npm config set //npm.pkg.github.com/:_authToken=${{ github.token }} - # Configure npm to use the GitHub token for all requests to github.com domains - npm config set @microsoft:registry https://npm.pkg.github.com - npm config set @vscode:registry https://npm.pkg.github.com - # Increase network timeout to handle slow connections - npm config set fetch-timeout 300000 - npm config set fetch-retry-mintimeout 20000 - npm config set fetch-retry-maxtimeout 120000 - npm install - npm install -g node-gyp - npm install -g gulp-cli - npm install -g create-dmg - - - name: Build - run: | - npm run buildreact - npm run gulp vscode-darwin-${{ matrix.arch }}-min - - - name: Create temporary working directory - run: | - WORKING_DIR="${{ runner.temp }}/VoidSign-${{ matrix.arch }}" - KEYCHAIN_DIR="${WORKING_DIR}/1_Keychain" - SIGN_DIR="${WORKING_DIR}/2_Signed" - mkdir -p "${WORKING_DIR}" "${KEYCHAIN_DIR}" "${SIGN_DIR}" - cp -Rp "$(pwd)/../VSCode-darwin-${{ matrix.arch }}" "${SIGN_DIR}" - echo "WORKING_DIR=${WORKING_DIR}" >> $GITHUB_ENV - echo "KEYCHAIN_DIR=${KEYCHAIN_DIR}" >> $GITHUB_ENV - echo "SIGN_DIR=${SIGN_DIR}" >> $GITHUB_ENV - echo "SIGNED_DOTAPP_DIR=${SIGN_DIR}/VSCode-darwin-${{ matrix.arch }}" >> $GITHUB_ENV - echo "SIGNED_DOTAPP=${SIGN_DIR}/VSCode-darwin-${{ matrix.arch }}/Void.app" >> $GITHUB_ENV - - - name: Import certificate - if: ${{ github.event_name != 'pull_request' && github.repository == 'voideditor/void' }} - env: - P12_BASE64: ${{ secrets.MACOS_CERTIFICATE }} - P12_PASSWORD: ${{ secrets.MACOS_CERTIFICATE_PWD }} - KEYCHAIN_PASSWORD: "temporary-password" - run: | - KEYCHAIN="${KEYCHAIN_DIR}/buildagent.keychain" - echo "KEYCHAIN=${KEYCHAIN}" >> $GITHUB_ENV - - # Create a new keychain - security create-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN}" - security set-keychain-settings -lut 21600 "${KEYCHAIN}" - security unlock-keychain -p "${KEYCHAIN_PASSWORD}" "${KEYCHAIN}" - - # Import certificate - echo "${P12_BASE64}" | base64 --decode > "${KEYCHAIN_DIR}/certificate.p12" - security import "${KEYCHAIN_DIR}/certificate.p12" -k "${KEYCHAIN}" -P "${P12_PASSWORD}" -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "${KEYCHAIN_PASSWORD}" "${KEYCHAIN}" > /dev/null - - # Add to keychain list - security list-keychains -d user -s "${KEYCHAIN}" $(security list-keychains -d user | sed s/\"//g) - - - name: Sign Application - if: ${{ github.event_name != 'pull_request' && github.repository == 'voideditor/void' }} - env: - CODESIGN_IDENTITY: ${{ secrets.MACOS_SIGNING_IDENTITY }} - VSCODE_ARCH: ${{ matrix.arch }} - run: | - export AGENT_TEMPDIRECTORY="${KEYCHAIN_DIR}" - cd $(pwd)/build/darwin - node sign.js "${SIGN_DIR}" - codesign --verify --verbose=4 "${SIGNED_DOTAPP}" - - - name: Create Unsigned App (for PR builds) - if: ${{ github.event_name == 'pull_request' || github.repository != 'voideditor/void' }} - run: | - cp -Rp "$(pwd)/../VSCode-darwin-${{ matrix.arch }}" "${SIGN_DIR}" - echo "SIGNED_DOTAPP_DIR=$(pwd)/../VSCode-darwin-${{ matrix.arch }}" >> $GITHUB_ENV - echo "SIGNED_DOTAPP=$(pwd)/../VSCode-darwin-${{ matrix.arch }}/Void.app" >> $GITHUB_ENV - - - name: Create DMG - run: | - cd "${SIGNED_DOTAPP_DIR}" - npx create-dmg --volname "Void Installer" "${SIGNED_DOTAPP}" . || true - GENERATED_DMG=$(ls *.dmg) - mv "${GENERATED_DMG}" "Void-Installer-darwin-${{ matrix.arch }}.dmg" - - if [[ "${{ github.event_name }}" != "pull_request" && "${{ github.repository }}" == "voideditor/void" ]]; then - codesign --verify --verbose=4 "Void-Installer-darwin-${{ matrix.arch }}.dmg" - fi - - echo "SIGNED_DMG=${SIGNED_DOTAPP_DIR}/Void-Installer-darwin-${{ matrix.arch }}.dmg" >> $GITHUB_ENV - - - name: Notarize - if: ${{ github.event_name != 'pull_request' && github.repository == 'voideditor/void' }} - env: - APPLE_ID: ${{ secrets.APPLE_ID }} - TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} - APP_PASSWORD: ${{ secrets.APPLE_APP_PWD }} - KEYCHAIN_PASSWORD: "temporary-password" - run: | - # Store credentials for notarization - xcrun notarytool store-credentials "Void" \ - --apple-id "${APPLE_ID}" \ - --team-id "${TEAM_ID}" \ - --password "${APP_PASSWORD}" \ - --keychain "${KEYCHAIN}" - - # Submit for notarization with a timeout - xcrun notarytool submit "${SIGNED_DMG}" \ - --keychain-profile "Void" \ - --keychain "${KEYCHAIN}" \ - --wait --timeout 2h - - # Staple the notarization ticket - xcrun stapler staple "${SIGNED_DMG}" - - - name: Create Raw App Archive - run: | - cd "${SIGNED_DOTAPP_DIR}" - VOIDAPP=$(basename "${SIGNED_DOTAPP}") - ditto -c -k --sequesterRsrc --keepParent "${VOIDAPP}" "Void-RawApp-darwin-${{ matrix.arch }}.zip" - - - name: Generate Hash File - run: | - cd "${SIGNED_DOTAPP_DIR}" - SHA1=$(shasum -a 1 "Void-RawApp-darwin-${{ matrix.arch }}.zip" | cut -d' ' -f1) - SHA256=$(shasum -a 256 "Void-RawApp-darwin-${{ matrix.arch }}.zip" | cut -d' ' -f1) - TIMESTAMP=$(date +%s) - - cat > "Void-UpdJSON-darwin-${{ matrix.arch }}.json" << EOF - { - "sha256hash": "${SHA256}", - "hash": "${SHA1}", - "timestamp": ${TIMESTAMP} - } - EOF - - - name: Generate checksum for DMG - run: | - cd "${SIGNED_DOTAPP_DIR}" - shasum -a 256 "Void-Installer-darwin-${{ matrix.arch }}.dmg" > "Void-Installer-darwin-${{ matrix.arch }}.dmg.sha256" - - - name: Upload DMG - uses: actions/upload-artifact@v4 - with: - name: void-darwin-${{ matrix.arch }}-dmg - path: | - ${{ env.SIGNED_DMG }} - ${{ env.SIGNED_DOTAPP_DIR }}/Void-Installer-darwin-${{ matrix.arch }}.dmg.sha256 - - - name: Upload Raw App - uses: actions/upload-artifact@v4 - with: - name: void-darwin-${{ matrix.arch }}-rawapp - path: ${{ env.SIGNED_DOTAPP_DIR }}/Void-RawApp-darwin-${{ matrix.arch }}.zip - - - name: Upload Hash File - uses: actions/upload-artifact@v4 - with: - name: void-darwin-${{ matrix.arch }}-hash - path: ${{ env.SIGNED_DOTAPP_DIR }}/Void-UpdJSON-darwin-${{ matrix.arch }}.json -