mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-11-10 10:58:33 +00:00
Compare commits
10 Commits
fix/macos-
...
test-arm-c
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2d76e76193 | ||
|
|
10da5e852f | ||
|
|
c30be536b2 | ||
|
|
2c0bcba812 | ||
|
|
27b1cb528e | ||
|
|
c5af77de9c | ||
|
|
d99e577c93 | ||
|
|
937c2746fc | ||
|
|
56b0a2d66d | ||
|
|
4c4e950d3d |
64
.github/workflows/build.yml
vendored
64
.github/workflows/build.yml
vendored
@@ -133,11 +133,22 @@ env:
|
|||||||
name: macOS_arm64_dmg
|
name: macOS_arm64_dmg
|
||||||
- path: '*macOS_arm64.zip'
|
- path: '*macOS_arm64.zip'
|
||||||
name: macOS_arm64_zip
|
name: macOS_arm64_zip
|
||||||
|
- config:
|
||||||
|
name: ARM Ubuntu 22.04
|
||||||
|
runs-on: ubuntu-22.04-arm
|
||||||
|
container: |
|
||||||
|
null
|
||||||
|
job-transfer-artifact-suffix: ARM_64bit
|
||||||
|
mergeable-channel-file: 'true'
|
||||||
|
artifacts:
|
||||||
|
- path: '*Linux_arm64.zip'
|
||||||
|
name: Linux_arm64_zip
|
||||||
|
- path: '*Linux_arm64.AppImage'
|
||||||
|
name: Linux_arm64_app_image
|
||||||
PAID_RUNNER_BUILD_DATA: |
|
PAID_RUNNER_BUILD_DATA: |
|
||||||
# This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
|
# This system was implemented to allow selective use of paid GitHub-hosted runners, due to the Apple Silicon runner
|
||||||
# incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
|
# incurring a charge at that time. Free Apple Silicon runners are now available so the configuration was moved to
|
||||||
# `BASE_BUILD_DATA`, but the system was left in place for future use.
|
# `BASE_BUILD_DATA`, but the system was left in place for future use.
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
run-determination:
|
run-determination:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -160,9 +171,7 @@ jobs:
|
|||||||
# There is no need to run the other jobs.
|
# There is no need to run the other jobs.
|
||||||
RESULT="false"
|
RESULT="false"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "result=$RESULT" >> $GITHUB_OUTPUT
|
echo "result=$RESULT" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
build-type-determination:
|
build-type-determination:
|
||||||
needs: run-determination
|
needs: run-determination
|
||||||
if: needs.run-determination.outputs.result == 'true'
|
if: needs.run-determination.outputs.result == 'true'
|
||||||
@@ -199,13 +208,11 @@ jobs:
|
|||||||
is_nightly="false"
|
is_nightly="false"
|
||||||
channel_name="nightly"
|
channel_name="nightly"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "is-release=$is_release" >> $GITHUB_OUTPUT
|
echo "is-release=$is_release" >> $GITHUB_OUTPUT
|
||||||
echo "is-nightly=$is_nightly" >> $GITHUB_OUTPUT
|
echo "is-nightly=$is_nightly" >> $GITHUB_OUTPUT
|
||||||
echo "channel-name=$channel_name" >> $GITHUB_OUTPUT
|
echo "channel-name=$channel_name" >> $GITHUB_OUTPUT
|
||||||
# Only attempt upload to Amazon S3 if the credentials are available.
|
# Only attempt upload to Amazon S3 if the credentials are available.
|
||||||
echo "publish-to-s3=${{ secrets.AWS_ROLE_ARN != '' }}" >> $GITHUB_OUTPUT
|
echo "publish-to-s3=${{ secrets.AWS_ROLE_ARN != '' }}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
select-targets:
|
select-targets:
|
||||||
needs: build-type-determination
|
needs: build-type-determination
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
@@ -232,7 +239,6 @@ jobs:
|
|||||||
--output-format json \
|
--output-format json \
|
||||||
'[.[].config]'
|
'[.[].config]'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
artifact_matrix="$(
|
artifact_matrix="$(
|
||||||
(
|
(
|
||||||
echo "${{ env.BASE_BUILD_DATA }}";
|
echo "${{ env.BASE_BUILD_DATA }}";
|
||||||
@@ -242,11 +248,9 @@ jobs:
|
|||||||
--output-format json \
|
--output-format json \
|
||||||
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
|
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
# The build matrix produces two macOS jobs (x86 and ARM) so the "channel update info files"
|
# The build matrix produces two macOS jobs (x86 and ARM) so the "channel update info files"
|
||||||
# generated by each must be merged.
|
# generated by each must be merged.
|
||||||
merge_channel_files="true"
|
merge_channel_files="true"
|
||||||
|
|
||||||
else
|
else
|
||||||
build_matrix="$(
|
build_matrix="$(
|
||||||
echo "${{ env.BASE_BUILD_DATA }}" | \
|
echo "${{ env.BASE_BUILD_DATA }}" | \
|
||||||
@@ -254,31 +258,25 @@ jobs:
|
|||||||
--output-format json \
|
--output-format json \
|
||||||
'[.[].config]'
|
'[.[].config]'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
artifact_matrix="$(
|
artifact_matrix="$(
|
||||||
echo "${{ env.BASE_BUILD_DATA }}" | \
|
echo "${{ env.BASE_BUILD_DATA }}" | \
|
||||||
yq \
|
yq \
|
||||||
--output-format json \
|
--output-format json \
|
||||||
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
|
'map(.artifacts[] + (.config | pick(["job-transfer-artifact-suffix"])))'
|
||||||
)"
|
)"
|
||||||
|
|
||||||
merge_channel_files="false"
|
merge_channel_files="false"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set workflow step outputs.
|
# Set workflow step outputs.
|
||||||
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||||
delimiter="$RANDOM"
|
delimiter="$RANDOM"
|
||||||
echo "build-matrix<<$delimiter" >> $GITHUB_OUTPUT
|
echo "build-matrix<<$delimiter" >> $GITHUB_OUTPUT
|
||||||
echo "$build_matrix" >> $GITHUB_OUTPUT
|
echo "$build_matrix" >> $GITHUB_OUTPUT
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
echo "$delimiter" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
delimiter="$RANDOM"
|
delimiter="$RANDOM"
|
||||||
echo "artifact-matrix<<$delimiter" >> $GITHUB_OUTPUT
|
echo "artifact-matrix<<$delimiter" >> $GITHUB_OUTPUT
|
||||||
echo "$artifact_matrix" >> $GITHUB_OUTPUT
|
echo "$artifact_matrix" >> $GITHUB_OUTPUT
|
||||||
echo "$delimiter" >> $GITHUB_OUTPUT
|
echo "$delimiter" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
echo "merge-channel-files=$merge_channel_files" >> $GITHUB_OUTPUT
|
echo "merge-channel-files=$merge_channel_files" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
build:
|
build:
|
||||||
name: build (${{ matrix.config.name }})
|
name: build (${{ matrix.config.name }})
|
||||||
needs:
|
needs:
|
||||||
@@ -290,7 +288,7 @@ jobs:
|
|||||||
# to skip passing signing credentials to electron-builder
|
# to skip passing signing credentials to electron-builder
|
||||||
IS_WINDOWS_CONFIG: ${{ matrix.config.name == 'Windows' }}
|
IS_WINDOWS_CONFIG: ${{ matrix.config.name == 'Windows' }}
|
||||||
INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
|
INSTALLER_CERT_WINDOWS_CER: "/tmp/cert.cer"
|
||||||
# We are hardcoding the path for signtool because is not present on the windows PATH env var by default.
|
# We are hardcoding the path for signtool because it is not present on the Windows PATH env var by default.
|
||||||
# Keep in mind that this path could change when upgrading to a new runner version
|
# Keep in mind that this path could change when upgrading to a new runner version
|
||||||
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
|
SIGNTOOL_PATH: "C:/Program Files (x86)/Windows Kits/10/bin/10.0.19041.0/x86/signtool.exe"
|
||||||
WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
|
WIN_CERT_PASSWORD: ${{ secrets[matrix.config.certificate-password-secret] }}
|
||||||
@@ -310,15 +308,17 @@ jobs:
|
|||||||
timeout-minutes: 90
|
timeout-minutes: 90
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
|
- name: Install Chromium (ARM only)
|
||||||
|
if: matrix.config.name == 'ARM Ubuntu 22.04'
|
||||||
|
run: sudo apt-get update && sudo apt-get install -y chromium-browser
|
||||||
|
|
||||||
- name: Symlink custom working directory
|
- name: Symlink custom working directory
|
||||||
shell: cmd
|
shell: cmd
|
||||||
if: runner.os == 'Windows' && matrix.config.working-directory
|
if: runner.os == 'Windows' && matrix.config.working-directory
|
||||||
run: |
|
run: |
|
||||||
if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
|
if not exist "${{ matrix.config.working-directory }}" mklink /d "${{ matrix.config.working-directory }}" "C:\actions-runner\_work\arduino-ide\arduino-ide"
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
|
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
if: runner.name != 'WINDOWS-SIGN-PC'
|
if: runner.name != 'WINDOWS-SIGN-PC'
|
||||||
@@ -337,7 +337,6 @@ jobs:
|
|||||||
install \
|
install \
|
||||||
--global \
|
--global \
|
||||||
"yarn@${{ env.YARN_VERSION }}"
|
"yarn@${{ env.YARN_VERSION }}"
|
||||||
|
|
||||||
- name: Install Python 3.x
|
- name: Install Python 3.x
|
||||||
if: fromJSON(matrix.config.container) == null && runner.name != 'WINDOWS-SIGN-PC'
|
if: fromJSON(matrix.config.container) == null && runner.name != 'WINDOWS-SIGN-PC'
|
||||||
uses: actions/setup-python@v5
|
uses: actions/setup-python@v5
|
||||||
@@ -377,15 +376,12 @@ jobs:
|
|||||||
export CSC_KEY_PASSWORD="${{ secrets[matrix.config.certificate-password-secret] }}"
|
export CSC_KEY_PASSWORD="${{ secrets[matrix.config.certificate-password-secret] }}"
|
||||||
export CSC_FOR_PULL_REQUEST=true
|
export CSC_FOR_PULL_REQUEST=true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
npx node-gyp install
|
npx node-gyp install
|
||||||
yarn install
|
yarn install
|
||||||
|
|
||||||
yarn --cwd arduino-ide-extension build
|
yarn --cwd arduino-ide-extension build
|
||||||
yarn --cwd electron-app rebuild
|
yarn --cwd electron-app rebuild
|
||||||
yarn --cwd electron-app build
|
yarn --cwd electron-app build
|
||||||
yarn --cwd electron-app package
|
yarn --cwd electron-app package
|
||||||
|
|
||||||
# Both macOS jobs generate a "channel update info file" with same path and name. The second job to complete would
|
# Both macOS jobs generate a "channel update info file" with same path and name. The second job to complete would
|
||||||
# overwrite the file generated by the first in the workflow artifact.
|
# overwrite the file generated by the first in the workflow artifact.
|
||||||
- name: Stage channel file for merge
|
- name: Stage channel file for merge
|
||||||
@@ -399,11 +395,9 @@ jobs:
|
|||||||
mv \
|
mv \
|
||||||
"${{ env.BUILD_ARTIFACTS_PATH }}/${{ needs.build-type-determination.outputs.channel-name }}-mac.yml" \
|
"${{ env.BUILD_ARTIFACTS_PATH }}/${{ needs.build-type-determination.outputs.channel-name }}-mac.yml" \
|
||||||
"${staged_channel_files_path}/${{ needs.build-type-determination.outputs.channel-name }}-mac-${{ runner.arch }}.yml"
|
"${staged_channel_files_path}/${{ needs.build-type-determination.outputs.channel-name }}-mac-${{ runner.arch }}.yml"
|
||||||
|
|
||||||
# Set workflow environment variable for use in other steps.
|
# Set workflow environment variable for use in other steps.
|
||||||
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
|
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
|
||||||
echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
|
echo "STAGED_CHANNEL_FILES_PATH=$staged_channel_files_path" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Upload staged-for-merge channel file artifact
|
- name: Upload staged-for-merge channel file artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
if: >
|
if: >
|
||||||
@@ -425,7 +419,6 @@ jobs:
|
|||||||
shell: cmd
|
shell: cmd
|
||||||
run: |
|
run: |
|
||||||
rmdir /s /q "${{ matrix.config.working-directory }}\${{ env.BUILD_ARTIFACTS_PATH }}"
|
rmdir /s /q "${{ matrix.config.working-directory }}\${{ env.BUILD_ARTIFACTS_PATH }}"
|
||||||
|
|
||||||
merge-channel-files:
|
merge-channel-files:
|
||||||
needs:
|
needs:
|
||||||
- build-type-determination
|
- build-type-determination
|
||||||
@@ -439,12 +432,11 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
|
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#setting-an-environment-variable
|
||||||
echo "CHANNEL_FILES_PATH=${{ runner.temp }}/channel-files" >> "$GITHUB_ENV"
|
echo "CHANNEL_FILES_PATH=${{ runner.temp }}/channel-files" >> "$GITHUB_ENV"
|
||||||
|
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download staged-for-merge channel file artifacts
|
- name: Download staged-for-merge channel file artifacts
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
path: ${{ env.CHANNEL_FILES_PATH }}
|
path: ${{ env.CHANNEL_FILES_PATH }}
|
||||||
@@ -478,7 +470,6 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
|
sudo apt-get install -y libx11-dev libxkbfile-dev libsecret-1-dev
|
||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
run: yarn
|
run: yarn
|
||||||
|
|
||||||
@@ -488,7 +479,6 @@ jobs:
|
|||||||
./scripts/merge-channel-files.js \
|
./scripts/merge-channel-files.js \
|
||||||
--channel "${{ needs.build-type-determination.outputs.channel-name }}" \
|
--channel "${{ needs.build-type-determination.outputs.channel-name }}" \
|
||||||
--input "${{ env.CHANNEL_FILES_PATH }}"
|
--input "${{ env.CHANNEL_FILES_PATH }}"
|
||||||
|
|
||||||
- name: Upload merged channel files job transfer artifact
|
- name: Upload merged channel files job transfer artifact
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
with:
|
with:
|
||||||
@@ -513,7 +503,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download job transfer artifact that contains ${{ matrix.artifact.name }} tester build
|
- name: Download job transfer artifact that contains ${{ matrix.artifact.name }} tester build
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}${{ matrix.artifact.job-transfer-artifact-suffix }}
|
name: ${{ env.JOB_TRANSFER_ARTIFACT_PREFIX }}${{ matrix.artifact.job-transfer-artifact-suffix }}
|
||||||
path: ${{ env.BUILD_ARTIFACTS_FOLDER }}
|
path: ${{ env.BUILD_ARTIFACTS_FOLDER }}
|
||||||
@@ -533,7 +523,7 @@ jobs:
|
|||||||
BODY: ${{ steps.changelog.outputs.BODY }}
|
BODY: ${{ steps.changelog.outputs.BODY }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # To fetch all history for all branches and tags.
|
fetch-depth: 0 # To fetch all history for all branches and tags.
|
||||||
|
|
||||||
@@ -555,16 +545,13 @@ jobs:
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
echo -e "$BODY"
|
echo -e "$BODY"
|
||||||
|
|
||||||
# Set workflow step output
|
# Set workflow step output
|
||||||
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
# See: https://docs.github.com/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings
|
||||||
DELIMITER="$RANDOM"
|
DELIMITER="$RANDOM"
|
||||||
echo "BODY<<$DELIMITER" >> $GITHUB_OUTPUT
|
echo "BODY<<$DELIMITER" >> $GITHUB_OUTPUT
|
||||||
echo "$BODY" >> $GITHUB_OUTPUT
|
echo "$BODY" >> $GITHUB_OUTPUT
|
||||||
echo "$DELIMITER" >> $GITHUB_OUTPUT
|
echo "$DELIMITER" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
echo "$BODY" > CHANGELOG.txt
|
echo "$BODY" > CHANGELOG.txt
|
||||||
|
|
||||||
- name: Upload changelog job transfer artifact
|
- name: Upload changelog job transfer artifact
|
||||||
if: needs.build-type-determination.outputs.is-nightly == 'true'
|
if: needs.build-type-determination.outputs.is-nightly == 'true'
|
||||||
uses: actions/upload-artifact@v4
|
uses: actions/upload-artifact@v4
|
||||||
@@ -600,7 +587,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download all job transfer artifacts
|
- name: Download all job transfer artifacts
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
path: ${{ env.ARTIFACTS_FOLDER }}
|
path: ${{ env.ARTIFACTS_FOLDER }}
|
||||||
@@ -615,7 +602,6 @@ jobs:
|
|||||||
- name: Publish Nightly [S3]
|
- name: Publish Nightly [S3]
|
||||||
run: |
|
run: |
|
||||||
aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide/nightly
|
aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide/nightly
|
||||||
|
|
||||||
release:
|
release:
|
||||||
needs:
|
needs:
|
||||||
- build-type-determination
|
- build-type-determination
|
||||||
@@ -643,7 +629,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Download all job transfer artifacts
|
- name: Download all job transfer artifacts
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
path: ${{ env.ARTIFACTS_FOLDER }}
|
path: ${{ env.ARTIFACTS_FOLDER }}
|
||||||
@@ -653,7 +639,6 @@ jobs:
|
|||||||
id: tag_name
|
id: tag_name
|
||||||
run: |
|
run: |
|
||||||
echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
echo "TAG_NAME=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Publish Release [GitHub]
|
- name: Publish Release [GitHub]
|
||||||
uses: svenstaro/upload-release-action@2.9.0
|
uses: svenstaro/upload-release-action@2.9.0
|
||||||
with:
|
with:
|
||||||
@@ -675,7 +660,6 @@ jobs:
|
|||||||
if: needs.build-type-determination.outputs.publish-to-s3 == 'true'
|
if: needs.build-type-determination.outputs.publish-to-s3 == 'true'
|
||||||
run: |
|
run: |
|
||||||
aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide
|
aws s3 sync ${{ env.ARTIFACTS_FOLDER }} s3://${{ secrets.DOWNLOADS_BUCKET }}/arduino-ide
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
# This job must run after all jobs that use the transfer artifact.
|
# This job must run after all jobs that use the transfer artifact.
|
||||||
needs:
|
needs:
|
||||||
|
|||||||
2
.github/workflows/check-containers.yml
vendored
2
.github/workflows/check-containers.yml
vendored
@@ -40,7 +40,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Build and push to local registry
|
- name: Build and push to local registry
|
||||||
uses: docker/build-push-action@v6
|
uses: docker/build-push-action@v6
|
||||||
|
|||||||
2
.github/workflows/check-i18n-task.yml
vendored
2
.github/workflows/check-i18n-task.yml
vendored
@@ -56,7 +56,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Node.js 18.17
|
- name: Install Node.js 18.17
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/check-javascript.yml
vendored
2
.github/workflows/check-javascript.yml
vendored
@@ -65,7 +65,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/check-yarn.yml
vendored
2
.github/workflows/check-yarn.yml
vendored
@@ -64,7 +64,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/compose-full-changelog.yml
vendored
2
.github/workflows/compose-full-changelog.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/i18n-nightly-push.yml
vendored
2
.github/workflows/i18n-nightly-push.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Node.js 18.17
|
- name: Install Node.js 18.17
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/i18n-weekly-pull.yml
vendored
2
.github/workflows/i18n-weekly-pull.yml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Node.js 18.17
|
- name: Install Node.js 18.17
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/push-container-images.yml
vendored
2
.github/workflows/push-container-images.yml
vendored
@@ -43,7 +43,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Log in to the Container registry
|
- name: Log in to the Container registry
|
||||||
uses: docker/login-action@v3
|
uses: docker/login-action@v3
|
||||||
|
|||||||
6
.github/workflows/sync-labels.yml
vendored
6
.github/workflows/sync-labels.yml
vendored
@@ -27,7 +27,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download JSON schema for labels configuration file
|
- name: Download JSON schema for labels configuration file
|
||||||
id: download-schema
|
id: download-schema
|
||||||
@@ -106,10 +106,10 @@ jobs:
|
|||||||
echo "flag=--dry-run" >> $GITHUB_OUTPUT
|
echo "flag=--dry-run" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Download configuration file artifacts
|
- name: Download configuration file artifacts
|
||||||
uses: actions/download-artifact@v5
|
uses: actions/download-artifact@v4
|
||||||
with:
|
with:
|
||||||
merge-multiple: true
|
merge-multiple: true
|
||||||
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
|
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
|
||||||
|
|||||||
3
.github/workflows/test-javascript.yml
vendored
3
.github/workflows/test-javascript.yml
vendored
@@ -79,10 +79,11 @@ jobs:
|
|||||||
- macos-latest
|
- macos-latest
|
||||||
- ubuntu-latest
|
- ubuntu-latest
|
||||||
- windows-latest
|
- windows-latest
|
||||||
|
- ubuntu-22.04-arm
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Setup Node.js
|
- name: Setup Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
2
.github/workflows/themes-weekly-pull.yml
vendored
2
.github/workflows/themes-weekly-pull.yml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5
|
uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Install Node.js
|
- name: Install Node.js
|
||||||
uses: actions/setup-node@v4
|
uses: actions/setup-node@v4
|
||||||
|
|||||||
@@ -46,9 +46,9 @@ See [**the contributor guide**](docs/CONTRIBUTING.md#contributor-guide) for more
|
|||||||
|
|
||||||
See the [**development guide**](docs/development.md) for a technical overview of the application and instructions for building the code.
|
See the [**development guide**](docs/development.md) for a technical overview of the application and instructions for building the code.
|
||||||
|
|
||||||
### Support the project
|
## Donations
|
||||||
|
|
||||||
This open source code was written by the Arduino team and is maintained on a daily basis with the help of the community. We invest a considerable amount of time in development, testing and optimization. Please consider [buying original Arduino boards](https://store.arduino.cc/) to support our work on the project.
|
This open source code was written by the Arduino team and is maintained on a daily basis with the help of the community. We invest a considerable amount of time in development, testing and optimization. Please consider [donating](https://www.arduino.cc/en/donate/) or [sponsoring](https://github.com/sponsors/arduino) to support our work, as well as [buying original Arduino boards](https://store.arduino.cc/) which is the best way to make sure our effort can continue in the long term.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|||||||
@@ -6,20 +6,22 @@ Thanks for your interest in contributing to this project!
|
|||||||
|
|
||||||
There are several ways you can get involved:
|
There are several ways you can get involved:
|
||||||
|
|
||||||
| Type of contribution | Contribution method |
|
| Type of contribution | Contribution method |
|
||||||
| ----------------------------------------- | ---------------------------------------------------------------- |
|
| ----------------------------------------- | -------------------------------------------------------------------------------- |
|
||||||
| - Support<br/>- Question<br/>- Discussion | Post on the [**Arduino Forum**][forum] |
|
| - Support<br/>- Question<br/>- Discussion | Post on the [**Arduino Forum**][forum] |
|
||||||
| - Bug report<br/>- Feature request | Issue report (see the guide [**here**][issues]) |
|
| - Bug report<br/>- Feature request | Issue report (see the guide [**here**][issues]) |
|
||||||
| Testing | Beta testing, PR review (see the guide [**here**][beta-testing]) |
|
| Testing | Beta testing, PR review (see the guide [**here**][beta-testing]) |
|
||||||
| Translation | See the guide [**here**][translate] |
|
| Translation | See the guide [**here**][translate] |
|
||||||
| - Bug fix<br/>- Enhancement | Pull request (see the guide [**here**][prs]) |
|
| - Bug fix<br/>- Enhancement | Pull request (see the guide [**here**][prs]) |
|
||||||
| Monetary | [Buy official products][store] |
|
| Monetary | - [Donate][donate]<br/>- [Sponsor][sponsor]<br/>- [Buy official products][store] |
|
||||||
|
|
||||||
[forum]: https://forum.arduino.cc
|
[forum]: https://forum.arduino.cc
|
||||||
[issues]: contributor-guide/issues.md#issue-report-guide
|
[issues]: contributor-guide/issues.md#issue-report-guide
|
||||||
[beta-testing]: contributor-guide/beta-testing.md#beta-testing-guide
|
[beta-testing]: contributor-guide/beta-testing.md#beta-testing-guide
|
||||||
[translate]: contributor-guide/translation.md#translator-guide
|
[translate]: contributor-guide/translation.md#translator-guide
|
||||||
[prs]: contributor-guide/pull-requests.md#pull-request-guide
|
[prs]: contributor-guide/pull-requests.md#pull-request-guide
|
||||||
|
[donate]: https://www.arduino.cc/en/donate/
|
||||||
|
[sponsor]: https://github.com/sponsors/arduino
|
||||||
[store]: https://store.arduino.cc
|
[store]: https://store.arduino.cc
|
||||||
|
|
||||||
## Resources
|
## Resources
|
||||||
|
|||||||
@@ -1,41 +1,13 @@
|
|||||||
# Translator Guide
|
# Translator Guide
|
||||||
|
|
||||||
The text of the Arduino IDE user interface is translated into several languages. The language can be selected in the dialog opened via **File > Preferences** in the Arduino IDE menus (**Arduino IDE > Preferences** for macOS users).
|
The text of the Arduino IDE interface is translated into several languages. The language can be selected in the dialog opened via **File > Preferences** in the Arduino IDE menus (**Arduino IDE > Preferences** for macOS users).
|
||||||
|
|
||||||
Translating text and improving on existing translations is a valuable contribution to the project, helping make Arduino accessible to everyone.
|
Translating text and improving on existing translations is a valuable contribution to the project, helping make Arduino accessible to everyone.
|
||||||
|
|
||||||
The translations for the text found in Arduino IDE come from several sources:
|
The translations for the text found in the Arduino IDE come from several sources:
|
||||||
|
|
||||||
## Arduino IDE Text
|
## Arduino IDE Text
|
||||||
|
|
||||||
The text of the Arduino IDE application can be translated to the following languages:
|
|
||||||
|
|
||||||
- čeština (Czech)
|
|
||||||
- Deutsch (German)
|
|
||||||
- Dutch
|
|
||||||
- español (Spanish)
|
|
||||||
- français (French)
|
|
||||||
- italiano (Italian)
|
|
||||||
- magyar (Hungarian)
|
|
||||||
- polski (Polish)
|
|
||||||
- português (Portuguese)
|
|
||||||
- Türkçe (Turkish)
|
|
||||||
- български (Bulgarian)
|
|
||||||
- русский (Russian)
|
|
||||||
- українська (Ukrainian)
|
|
||||||
- 한국어 (Korean)
|
|
||||||
- 中文(简体) (Chinese Simplified)
|
|
||||||
- 中文(繁體) (Chinese Traditional)
|
|
||||||
- 日本語 (Japanese)
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
⚠ Unfortunately the 3rd party localization system used by the Arduino IDE application imposes a technical limitation to that set of languages. For this reason, we are unable to add support to Arduino IDE for additional languages (see [`arduino/arduino-ide#1447`](https://github.com/arduino/arduino-ide/issues/1447) for details).
|
|
||||||
|
|
||||||
There is no technical limitation on the set of languages to which **Arduino CLI** can be translated. If you would like to contribute translations for a language not on the above list, you are welcome to [contribute to the **Arduino CLI** project](#arduino-cli-text).
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
Translations of Arduino IDE's text is done in the "**Arduino IDE 2.0**" project on the **Transifex** localization platform:
|
Translations of Arduino IDE's text is done in the "**Arduino IDE 2.0**" project on the **Transifex** localization platform:
|
||||||
|
|
||||||
https://explore.transifex.com/arduino-1/ide2/
|
https://explore.transifex.com/arduino-1/ide2/
|
||||||
|
|||||||
@@ -8,5 +8,7 @@
|
|||||||
<true/>
|
<true/>
|
||||||
<key>com.apple.security.cs.disable-library-validation</key>
|
<key>com.apple.security.cs.disable-library-validation</key>
|
||||||
<true/>
|
<true/>
|
||||||
|
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||||
|
<true/>
|
||||||
</dict>
|
</dict>
|
||||||
</plist>
|
</plist>
|
||||||
|
|||||||
@@ -1,7 +1,5 @@
|
|||||||
const path = require('node:path');
|
const path = require('node:path');
|
||||||
const fs = require('fs');
|
|
||||||
const webpack = require('webpack');
|
const webpack = require('webpack');
|
||||||
const TheiaNativeWebpackPlugin = require('@theia/native-webpack-plugin');
|
|
||||||
const frontend = require('./gen-webpack.config');
|
const frontend = require('./gen-webpack.config');
|
||||||
const backend = require('./gen-webpack.node.config');
|
const backend = require('./gen-webpack.node.config');
|
||||||
const {
|
const {
|
||||||
@@ -41,27 +39,6 @@ backend.config.entry['parcel-watcher'] = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
// Override Theia native dependency bundler to assign stricter file permissions (chmod 755)
|
|
||||||
// https://github.com/eclipse-theia/theia/blob/9a52544fb4c1ea1d3d0d6bcbe106b97184279030/dev-packages/native-webpack-plugin/src/native-webpack-plugin.ts#L149
|
|
||||||
class NativeWebpackPlugin extends TheiaNativeWebpackPlugin {
|
|
||||||
// Override the method that writes/copies files
|
|
||||||
async copyExecutable(source, target) {
|
|
||||||
const targetDirectory = path.dirname(target);
|
|
||||||
await fs.promises.mkdir(targetDirectory, { recursive: true });
|
|
||||||
await fs.promises.copyFile(source, target);
|
|
||||||
await fs.promises.chmod(target, 0o755);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
backend.config.plugins.push(new NativeWebpackPlugin({
|
|
||||||
out: 'native',
|
|
||||||
trash: true,
|
|
||||||
ripgrep: true,
|
|
||||||
pty: true,
|
|
||||||
nativeBindings: {
|
|
||||||
drivelist: 'drivelist/build/Release/drivelist.node',
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
|
|
||||||
// Use a customized backend main that can enable the file logger in bundled mode.
|
// Use a customized backend main that can enable the file logger in bundled mode.
|
||||||
backend.config.entry['main'] = require.resolve('./arduino-ide-backend-main.js');
|
backend.config.entry['main'] = require.resolve('./arduino-ide-backend-main.js');
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user