Bump golang.org/x/sys from 0.23.0 to 0.26.0 #1779
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
# Source: https://github.com/arduino/tooling-project-assets/blob/main/workflow-templates/publish-go-tester-task.md | |
name: Publish Tester Build | |
# See: https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows | |
on: | |
create: | |
push: | |
paths: | |
- ".github/workflows/publish-go-tester-task.ya?ml" | |
- "go.mod" | |
- "go.sum" | |
- "Taskfile.ya?ml" | |
- "DistTasks.ya?ml" | |
- "**.go" | |
- "icon/**" | |
- "config.ini" | |
- "manifest.xml" | |
pull_request: | |
paths: | |
- ".github/workflows/publish-go-tester-task.ya?ml" | |
- "go.mod" | |
- "go.sum" | |
- "Taskfile.ya?ml" | |
- "DistTasks.ya?ml" | |
- "**.go" | |
- "icon/**" | |
- "config.ini" | |
- "manifest.xml" | |
workflow_dispatch: | |
repository_dispatch: | |
env: | |
PROJECT_NAME: arduino-cloud-agent | |
GO_VERSION: "1.23" | |
jobs: | |
run-determination: | |
runs-on: ubuntu-latest | |
outputs: | |
result: ${{ steps.determination.outputs.result }} | |
steps: | |
- name: Determine if the rest of the workflow should run | |
id: determination | |
run: | | |
RELEASE_BRANCH_REGEX="refs/heads/[0-9]+.[0-9]+.x" | |
# The `create` event trigger doesn't support `branches` filters, so it's necessary to use Bash instead. | |
if [[ \ | |
"${{ github.event_name }}" != "create" || \ | |
"${{ github.ref }}" =~ $RELEASE_BRANCH_REGEX \ | |
]]; then | |
# Run the other jobs. | |
RESULT="true" | |
else | |
# There is no need to run the other jobs. | |
RESULT="false" | |
fi | |
echo "result=$RESULT" >> $GITHUB_OUTPUT | |
#this job is heavily customized because the build is quite a bit different from other tooling team projects | |
build: | |
needs: run-determination | |
if: needs.run-determination.outputs.result == 'true' | |
#use the strategy instead because we still use the native build | |
strategy: | |
matrix: | |
os: [ubuntu-20.04, windows-2019, macos-12] | |
arch: [-amd64] | |
include: | |
- os: windows-2019 | |
arch: -386 | |
defaults: | |
run: | |
shell: bash | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Set env vars | |
run: | | |
echo $(go env GOPATH)/bin >> $GITHUB_PATH | |
- name: Disable EOL conversions | |
run: git config --global core.autocrlf false | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
- name: Install Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Task | |
uses: arduino/setup-task@v2 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
version: 3.x | |
- name: Build the Agent for linux | |
run: task go:build | |
if: runner.os == 'Linux' | |
# the manifest is required by windows GUI apps, otherwise the binary will crash with: "Unable to create main window: TTM_ADDTOOL failed" (for reference https://github.com/lxn/walk/issues/28) | |
# rsrc will produce a *.syso file that should get automatically recognized by go build command and linked into an executable. | |
- name: Download tool to embed manifest in win binary | |
run: go install github.com/akavel/rsrc@latest | |
if: runner.os == 'Windows' | |
# building the agent for win requires a different task because of an extra flag | |
- name: Build the Agent for win32 | |
env: | |
GOARCH: 386 # 32bit architecture (for support) | |
run: task go:build-win | |
if: runner.os == 'Windows' && matrix.arch == '-386' | |
- name: Build the Agent for win64 | |
run: task go:build-win # GOARCH=amd64 by default on the runners | |
if: runner.os == 'Windows' && matrix.arch == '-amd64' | |
- name: Build the Agent for macos amd 64 | |
env: | |
MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac | |
CGO_CFLAGS: -mmacosx-version-min=10.15 | |
CGO_LDFLAGS: -mmacosx-version-min=10.15 | |
run: | | |
task go:build | |
mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_amd64 | |
if: runner.os == 'macOS' | |
- name: Build the Agent for macos amd 64 | |
env: | |
MACOSX_DEPLOYMENT_TARGET: 10.15 # minimum supported version for mac | |
CGO_CFLAGS: -mmacosx-version-min=10.15 | |
CGO_LDFLAGS: -mmacosx-version-min=10.15 | |
GOARCH: arm64 | |
CGO_ENABLED: 1 | |
run: | | |
task go:build | |
mv ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_arm64 | |
if: runner.os == 'macOS' | |
- name: Create universal macos executable | |
run: | | |
lipo -create -output ${{ env.PROJECT_NAME }} ${{ env.PROJECT_NAME}}_amd64 ${{ env.PROJECT_NAME}}_arm64 | |
rm ${{ env.PROJECT_NAME}}_amd64 ${{ env.PROJECT_NAME}}_arm64 | |
if: runner.os == 'macOS' | |
- name: Upload artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.PROJECT_NAME}}-${{ matrix.os }}${{ matrix.arch }} | |
path: | | |
${{ env.PROJECT_NAME}}* | |
if-no-files-found: error |