build: add flag to disable snaps #795
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: 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 ] | ||
paths-ignore: | ||
- '**/*.md' | ||
pull_request: | ||
branches: [ master ] | ||
paths-ignore: | ||
- '**/*.md' | ||
env: | ||
APP_NAME: VSCodium | ||
ASSETS_REPOSITORY: ${{ github.repository }} | ||
BINARY_NAME: codium | ||
DISABLE_UPDATE: 'yes' | ||
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: Clone VSCode repo | ||
env: | ||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} | ||
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: Setup Node.js environment | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18.17' | ||
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 install -y libkrb5-dev | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Clone VSCode repo | ||
env: | ||
PULL_REQUEST_ID: ${{ github.event.inputs.checkout_pr }} | ||
run: ./get_repo.sh | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Build | ||
env: | ||
SHOULD_BUILD_REH: '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@v3 | ||
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: | ||
- vscode_arch: x64 | ||
npm_arch: x64 | ||
image: vscodium/vscodium-linux-build-agent:bionic-x64 | ||
- vscode_arch: arm64 | ||
npm_arch: arm64 | ||
image: vscodium/vscodium-linux-build-agent:bionic-arm64 | ||
- vscode_arch: armhf | ||
npm_arch: arm | ||
image: vscodium/vscodium-linux-build-agent:bionic-armhf | ||
- vscode_arch: riscv64 | ||
npm_arch: riscv64 | ||
image: vscodium/vscodium-linux-build-agent:focal-riscv64 | ||
container: | ||
image: ${{ matrix.image }} | ||
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_BUILD: ${{ env.SHOULD_BUILD }} | ||
SHOULD_DEPLOY: ${{ env.SHOULD_DEPLOY }} | ||
steps: | ||
- uses: actions/checkout@v3 | ||
with: | ||
ref: ${{ env.GITHUB_BRANCH }} | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Install GH | ||
run: ./install_gh.sh | ||
if: env.SHOULD_BUILD == 'yes' && env.SHOULD_DEPLOY == 'yes' | ||
- name: Check existing VSCodium tags/releases | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
CHECK_REH: 'no' | ||
run: ./check_tags.sh | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Install libkrb5-dev | ||
run: sudo apt-get install -y libkrb5-dev | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Download vscode artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: vscode | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Build | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
npm_config_arch: ${{ matrix.npm_arch }} | ||
run: ./package_linux_bin.sh | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Prepare assets | ||
env: | ||
SHOULD_BUILD_REH: 'no' | ||
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@v3 | ||
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' | ||
reh_linux: | ||
needs: | ||
- check | ||
- compile | ||
runs-on: ubuntu-20.04 | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
include: | ||
- vscode_arch: x64 | ||
npm_arch: x64 | ||
- vscode_arch: arm64 | ||
npm_arch: arm64 | ||
- vscode_arch: armhf | ||
npm_arch: arm | ||
- vscode_arch: ppc64le | ||
npm_arch: ppc64 | ||
- vscode_arch: riscv64 | ||
npm_arch: riscv64 | ||
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 }} | ||
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@v3 | ||
with: | ||
ref: ${{ env.GITHUB_BRANCH }} | ||
- name: Setup Node.js environment | ||
uses: actions/setup-node@v4 | ||
with: | ||
node-version: '18.17' | ||
- name: Setup Python 3 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.11' | ||
- name: Install libkrb5-dev | ||
run: sudo apt-get install -y libkrb5-dev | ||
- 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: Download vscode artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: vscode | ||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true' | ||
- name: Build | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
npm_config_arch: ${{ matrix.npm_arch }} | ||
run: ./package_linux_reh.sh | ||
if: env.SHOULD_BUILD_REH != '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.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes' | ||
- name: Upload assets | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: reh-linux-${{ matrix.vscode_arch }} | ||
path: assets/ | ||
retention-days: 3 | ||
if: 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: | ||
- vscode_arch: x64 | ||
npm_arch: x64 | ||
- vscode_arch: arm64 | ||
npm_arch: arm64 | ||
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 }} | ||
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@v3 | ||
with: | ||
ref: ${{ env.GITHUB_BRANCH }} | ||
- 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 install -y libkrb5-dev | ||
if: env.SHOULD_BUILD == 'yes' | ||
- name: Download vscode artifact | ||
uses: actions/download-artifact@v3 | ||
with: | ||
name: vscode | ||
if: env.SHOULD_BUILD_REH != 'no' || github.event.inputs.generate_assets == 'true' | ||
- name: Build | ||
env: | ||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
npm_config_arch: ${{ matrix.npm_arch }} | ||
run: ./package_alpine_reh.sh | ||
if: env.SHOULD_BUILD_REH != '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.SHOULD_BUILD_REH != 'no' && env.SHOULD_DEPLOY == 'yes' | ||
- name: Upload assets | ||
uses: actions/upload-artifact@v4 | ||
with: | ||
name: reh-alpine-${{ matrix.vscode_arch }} | ||
path: assets/ | ||
retention-days: 3 | ||
if: 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: | ||
DISABLE_SNAP: ${{ secrets.DISABLE_SNAP }} | ||
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' && env.DISABLE_SNAP != 'yes' | ||
Check failure on line 427 in .github/workflows/stable-linux.yml GitHub Actions / stable-linuxInvalid workflow file
|
||
steps: | ||
- uses: actions/checkout@v3 | ||
- name: Check version | ||
env: | ||
ARCHITECTURE: ${{ matrix.platform }} | ||
GENERATE_ASSETS: ${{ github.event.inputs.generate_assets }} | ||
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: stable | ||
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 |