name: insider-windows on: workflow_dispatch: inputs: release_version: type: string description: Forced release version schedule: - cron: '0 7 * * *' push: branches: [ insider ] paths-ignore: - '**/*.md' pull_request: branches: [ insider ] paths-ignore: - '**/*.md' jobs: build: runs-on: windows-2019 defaults: run: shell: bash env: OS_NAME: 'windows' VSCODE_ARCH: ${{ matrix.vscode_arch }} VSCODE_QUALITY: 'insider' strategy: fail-fast: false matrix: vscode_arch: - x64 - ia32 - arm64 outputs: RELEASE_VERSION: ${{ env.RELEASE_VERSION }} SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} steps: - uses: actions/checkout@v3 with: ref: insider - name: Setup Node.js environment uses: actions/setup-node@v3 with: node-version: 16 - name: Install Yarn run: npm install -g yarn - name: Setup Python 3 uses: actions/setup-python@v3 with: python-version: '3.x' - name: Clone VSCode repo env: RELEASE_VERSION: ${{ github.event.inputs.release_version }} run: ./get_repo.sh - name: Check PR or cron 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: Compute cache key id: yarnCacheKey run: echo "::set-output name=value::$(node build/azure-pipelines/computeYarnCacheKey.js)" if: env.SHOULD_BUILD == 'yes' - name: Get yarn cache directory path id: yarnCacheDirPath run: echo "::set-output name=dir::$(yarn cache dir)" if: env.SHOULD_BUILD == 'yes' - name: Cache yarn directory uses: actions/cache@v3 with: path: ${{ steps.yarnCacheDirPath.outputs.dir }} key: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir-${{ steps.yarnCacheKey.outputs.value }} restore-keys: ${{ env.OS_NAME }}-${{ env.VSCODE_ARCH }}-yarnCacheDir- 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.sh if: env.SHOULD_BUILD == 'yes' - name: Prepare artifacts run: ./prepare_artifacts.sh if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - name: Release env: GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} run: ./release.sh if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' - name: Update versions repo run: ./update_version.sh env: GITHUB_TOKEN: ${{ secrets.STRONGER_GITHUB_TOKEN }} GITHUB_USERNAME: ${{ github.repository_owner }} if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' winget: needs: build runs-on: windows-latest defaults: run: shell: bash env: VSCODE_QUALITY: 'insider' if: needs.build.outputs.SHOULD_DEPLOY == 'yes' steps: - uses: actions/checkout@v3 with: ref: insider - name: Check version run: ./stores/winget/check_version.sh env: RELEASE_VERSION: ${{ needs.build.outputs.RELEASE_VERSION }} - name: Release to WinGet uses: daiyam/winget-releaser@feat-release-repo with: identifier: VSCodium.VSCodium.Insiders release-repository: vscodium-insiders release-tag: ${{ env.RELEASE_VERSION }} installers-regex: '\.exe$' # only .exe files token: ${{ secrets.STRONGER_GITHUB_TOKEN }} if: env.SHOULD_DEPLOY == 'yes'