diff --git a/docs/internal/Ubuntu.md b/docs/internal/Ubuntu.md index de556410c..9fafe36e5 100644 --- a/docs/internal/Ubuntu.md +++ b/docs/internal/Ubuntu.md @@ -16,6 +16,7 @@ sudo apt update \ libx11-dev \ libxkbfile-dev \ build-essential \ + libsecret-1-dev \ && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash \ && source ~/.bashrc \ && nvm install 16 \ diff --git a/docs/internal/release-procedure.md b/docs/internal/release-procedure.md index 0f62d8ffa..ce4daf2a7 100644 --- a/docs/internal/release-procedure.md +++ b/docs/internal/release-procedure.md @@ -174,3 +174,73 @@ git push origin version- ``` replacing `` with the version you want. Then create a PR and merge it. + +## Manual build + +Creating the release for Ubuntu 18.04 ([arduino/arduino-ide#2018](https://github.com/arduino/arduino-ide/issues/2018)) is a manual procedure: + +- Prerequisites: + - Ask the DevOps team for an EC2 instance with at least 8 GB of RAM. + - Your account must have access to the staging AWS environment. + - You have VPN connection to staging. +- Setup: + + - To install all required dependencies, run the following script: + ```sh + sudo apt update \ + && sudo apt install --no-install-recommends --yes \ + git \ + gcc \ + curl \ + make \ + python \ + pkg-config \ + libx11-dev \ + libxkbfile-dev \ + build-essential \ + libsecret-1-dev \ + && wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash \ + && source ~/.bashrc \ + && nvm install 16 \ + && nvm use 16 \ + && nvm alias default 16 \ + && curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - \ + && echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list \ + && sudo apt update && sudo apt install --no-install-recommends yarn + ``` + +- Clone: + + ```sh + BRANCH="" + git clone --single-branch --branch $BRANCH https://github.com/arduino/arduino-ide.git + ``` + +- Build: + + ```sh + export IS_RELEASE=true \ + && export CI=true \ + && ./scripts/package.sh + ``` + +- Artifacts: + - You have to upload the following artifacts from `./arduino-ide/electron-app/dist` to S3: + - `arduino-ide_${VERSION}_Linux_64bit.AppImage`, + - `arduino-ide_${VERSION}_Linux_64bit.zip`, and + - `stable-linux.yml` + +### FAQ + +- Q: I see no `stable` channel files, only `latest`. +- A: You forgot to set the `CI=true` environment variable. + +--- + +- Q: How to connect to the EC2 instance? +- A: DevOps will give you a temporary link to the private key. Create a file `username_ip.pem` in your cwd, copy the private key into the file, open a shell, and execute `ssh -i "username_ip.pem" username@ip`. DevOps will tell you the `username` and the `ip`. Do not forget the VPN. + +--- + +- Q: How to download the files from the EC2 instance? +- A: `scp -i username_ip.pem username@ip:/path/to/build/artifact /local/dir`. diff --git a/scripts/update-version.js b/scripts/update-version.js index fea65ed27..32b3db5a5 100644 --- a/scripts/update-version.js +++ b/scripts/update-version.js @@ -1,5 +1,7 @@ //@ts-check +// Usage `node ./scripts/update-version.js 2.1.3` + const fs = require('fs'); const path = require('path'); const semver = require('semver');