Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ubuntu 24 runner support #8326

Open
wants to merge 3 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 34 additions & 12 deletions .github/workflows/release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ concurrency:
jobs:
# shared kong github action for security checking
generate-sbom-and-upload-assets:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
packages: write
contents: write # publish sbom to GH releases/tag assets
Expand Down Expand Up @@ -47,10 +47,10 @@ jobs:
- os: windows-latest
csc_link_secret: ''
csc_key_password_secret: ''
- os: ubuntu-22.04
- os: ubuntu-24.04
csc_link_secret: ''
csc_key_password_secret: ''
- os: ubuntu-22.04-arm
- os: ubuntu-24.04-arm
csc_link_secret: ''
csc_key_password_secret: ''
steps:
Expand All @@ -71,18 +71,40 @@ jobs:
run: |
echo "INSO_VERSION=$(jq .version ./packages/${{ env.INSO_PACKAGE_NAME }}/package.json -rj)" >> $GITHUB_ENV

- name: Package app (Linux ARM64 only)
- name: Install dependencies (Linux only)
if: runner.os == 'Linux'
run: |
# install snapcraft
sudo snap install snapcraft --classic

# install fpm for electron-builder
sudo gem install fpm
fpm --version
Comment on lines +75 to +82
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can this be arm only? I think x64 already works, or was snap removed in Ubuntu 24?


- name: Apply runner system workarounds (ARM64 Linux only)
if: runner.os == 'Linux' && runner.arch == 'ARM64'
shell: bash
run: BUILD_TARGETS='tar.gz' npm run app-package
env:
NODE_OPTIONS: '--max_old_space_size=6144'
run: |
# install LXD for snap building
sudo snap install lxd

- name: Package app (Linux X64 only)
if: runner.os == 'Linux' && runner.arch == 'X64'
# initialize lxd default profile
sudo lxd init --auto

# add runner user to lxd group
sudo gpasswd -a $USER lxd

# workaround network issues when docker is started before lxc
sudo iptables -I DOCKER-USER -i lxdbr0 -j ACCEPT
sudo iptables -I DOCKER-USER -o lxdbr0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

- name: Package app (Linux only)
if: runner.os == 'Linux'
shell: bash
run: npm run app-package
# run with sudo to let the lxd group membership take effect
run: sudo --user $USER --preserve-env -- bash -c 'npm run app-package'
env:
# https://github.com/electron-userland/electron-builder/issues/6116
USE_SYSTEM_FPM: 'true'
NODE_OPTIONS: '--max_old_space_size=6144'

# If this step fails its possible apple has new license terms which need to be accepted by logging into https://developer.apple.com/account
Expand Down Expand Up @@ -250,7 +272,7 @@ jobs:
update-pull-request:
timeout-minutes: ${{ fromJSON(vars.GHA_DEFAULT_TIMEOUT) }}
needs: build-and-upload-release-artifacts
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Get release version
id: release_version
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ env:
jobs:
publish:
timeout-minutes: 15
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
outputs:
NOTARY_REPOSITORY: ${{ env.NOTARY_REPOSITORY }}
INSO_BINARY_ARTIFACTS_SUBJECTS_AS_FILE: ${{ steps.cli_binary_hashes.outputs.handle }}
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/release-recurring.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,9 +30,9 @@ jobs:
build-targets: zip
- os: windows-latest
build-targets: portable
- os: ubuntu-22.04
- os: ubuntu-24.04
build-targets: tar.gz
- os: ubuntu-22.04-arm
- os: ubuntu-24.04-arm
build-targets: tar.gz
steps:
- name: Checkout branch
Expand All @@ -59,7 +59,7 @@ jobs:
# See https://github.com/electron/electron/issues/42510#issuecomment-2171583086
- if: ${{ runner.os == 'Linux' }}
name: Lift unprivileged user namespace restrictions
run: sudo sysctl kernel/apparmor_restrict_unprivileged_userns=0
run: sudo sysctl kernel/unprivileged_userns_clone=1 kernel/apparmor_restrict_unprivileged_userns=0

- name: Test critical path on packaged electron app
run: npm run test:package -w packages/insomnia-smoke-test -- --project=Critical
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/release-start.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ on:
jobs:
setup-release-branch:
timeout-minutes: 5
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout branch
uses: actions/checkout@v4
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/sast.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
semgrep:
timeout-minutes: 5
name: Semgrep SAST
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
permissions:
# required for all workflows
security-events: write
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/test-cli.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ concurrency:
jobs:
Test:
timeout-minutes: 10
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout branch
uses: actions/checkout@v4
Expand Down Expand Up @@ -53,7 +53,7 @@ jobs:
shell: bash
run: |
INSO_VERSION="$(jq .version packages/insomnia-inso/package.json -rj)-run.${{ github.run_number }}"
PKG_NAME="inso-ubuntu-22.04-$INSO_VERSION"
PKG_NAME="inso-ubuntu-24.04-$INSO_VERSION"
echo "pkg-name=$PKG_NAME" >> $GITHUB_OUTPUT
echo "inso-version=$INSO_VERSION" >> $GITHUB_OUTPUT

Expand Down
6 changes: 5 additions & 1 deletion .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ concurrency:
jobs:
Test:
timeout-minutes: 20
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04
steps:
- name: Checkout branch
uses: actions/checkout@v4
Expand All @@ -45,6 +45,10 @@ jobs:
- name: Unit Tests
run: npm test

# See https://github.com/electron/electron/issues/42510#issuecomment-2171583086
- name: Lift unprivileged user namespace restrictions
run: sudo sysctl kernel/unprivileged_userns_clone=1 kernel/apparmor_restrict_unprivileged_userns=0

- name: Build app for smoke tests
run: NODE_OPTIONS='--max_old_space_size=6144' npm run app-build

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/update-changelog.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:

jobs:
update:
runs-on: ubuntu-22.04
runs-on: ubuntu-24.04

permissions:
# Give the default GITHUB_TOKEN write permission to commit and push the
Expand Down
Loading