Skip to content

Manage the HTTPS certificate from the menu and ask Safari users to install it at startup #1517

Manage the HTTPS certificate from the menu and ask Safari users to install it at startup

Manage the HTTPS certificate from the menu and ask Safari users to install it at startup #1517

# 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:
GO_VERSION: "1.21"
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
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
if: runner.os == 'macOS'
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: arduino-create-agent-${{ matrix.os }}${{ matrix.arch }}
path: |
arduino-create-agent*
if-no-files-found: error