Unverified Commit 9c784d80 authored by MatteoPologruto's avatar MatteoPologruto Committed by GitHub

[skip-changelog] Use a matrix to create parallel builds for each OS (#1883)

* Use a matrix create parallel builds for each os

Using a matrix to run each build task greatly improves performances,
since they can all start concurrently. The finishing time of the job
will be equal to the one of the longer task to build, instead of being
the sum of each individual task's finishing time.

* Calculate checksums during release creation

Checksums of the output files where previously calculated during the initial creation of the artifacts, during the notarization process and, finally, at the release creation's step.
The whole process has been simplified and checksums are now computed only during the creation of the release.

* Set condition to create changelog once

The changelog is the same for each OS. It does not make sense to generate it more than once.

* Disable s3 push for testing

* Upload nightly artifacts for testing

* Fix linux_arm_6 typo

* Stop uploading nigthly artifacts

* Enable s3 pushing

* Upload build artifacts separately

Previously, the different builds were firstly uploaded using a single artifact, which was then downloaded to create different ones and eventually deleted.
Now, since builds are created concurrently, the same matrix can be used to directly upload an artifact for each build. It's necessary to use a second job to calculate the checksum related to
each build and save them all in a single .txt file.
parent e404a3ba
...@@ -22,6 +22,19 @@ jobs: ...@@ -22,6 +22,19 @@ jobs:
create-nightly-artifacts: create-nightly-artifacts:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
os:
- Windows_32bit
- Windows_64bit
- Linux_32bit
- Linux_64bit
- Linux_ARMv6
- Linux_ARMv7
- Linux_ARM64
- macOS_64bit
- macOS_ARM64
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
...@@ -35,7 +48,7 @@ jobs: ...@@ -35,7 +48,7 @@ jobs:
- name: Build - name: Build
env: env:
NIGHTLY: true NIGHTLY: true
run: task dist:all run: task dist:${{ matrix.os }}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
...@@ -127,14 +140,10 @@ jobs: ...@@ -127,14 +140,10 @@ jobs:
run: | run: |
gon "${{ env.GON_CONFIG_PATH }}" gon "${{ env.GON_CONFIG_PATH }}"
- name: Re-package binary and output checksum - name: Re-package binary
id: re-package id: re-package
working-directory: ${{ env.DIST_DIR }} working-directory: ${{ env.DIST_DIR }}
# This step performs the following: # Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
# 1. Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
# 2. Recalculate package checksum
# 3. Output the new checksum to include in the nnnnnn-checksums.txt file
# (it cannot be done there because of workflow job parallelization)
run: | run: |
# GitHub's upload/download-artifact@v2 actions don't preserve file permissions, # GitHub's upload/download-artifact@v2 actions don't preserve file permissions,
# so we need to add execution permission back until the action is made to do this. # so we need to add execution permission back until the action is made to do this.
...@@ -144,11 +153,9 @@ jobs: ...@@ -144,11 +153,9 @@ jobs:
tar -czvf "$PACKAGE_FILENAME" \ tar -czvf "$PACKAGE_FILENAME" \
-C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \ -C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
-C ../../ LICENSE.txt -C ../../ LICENSE.txt
CHECKSUM_LINE="$(shasum -a 256 $PACKAGE_FILENAME)"
echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
echo "::set-output name=checksum-${{ matrix.artifact.name }}::$CHECKSUM_LINE"
- name: Upload artifacts - name: Upload artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
if-no-files-found: error if-no-files-found: error
...@@ -166,15 +173,11 @@ jobs: ...@@ -166,15 +173,11 @@ jobs:
name: ${{ env.ARTIFACT_NAME }} name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.DIST_DIR }} path: ${{ env.DIST_DIR }}
- name: Update checksum - name: Output checksum
working-directory: ${{ env.DIST_DIR}}
run: | run: |
declare -a checksum_lines=("${{ needs.notarize-macos.outputs.checksum-darwin_amd64 }}" "${{ needs.notarize-macos.outputs.checksum-darwin_arm64 }}") TAG="nightly-$(date -u +"%Y%m%d")"
for checksum_line in "${checksum_lines[@]}" sha256sum ${{ env.PROJECT_NAME }}_${TAG}* >> ${TAG}-checksums.txt
do
CHECKSUM=$(echo ${checksum_line} | cut -d " " -f 1)
PACKAGE_FILENAME=$(echo ${checksum_line} | cut -d " " -f 2)
perl -pi -w -e "s/.*${PACKAGE_FILENAME}/${CHECKSUM} ${PACKAGE_FILENAME}/g;" ${{ env.DIST_DIR }}/*-checksums.txt
done
- name: Upload release files on Arduino downloads servers - name: Upload release files on Arduino downloads servers
uses: docker://plugins/s3 uses: docker://plugins/s3
......
...@@ -24,6 +24,8 @@ on: ...@@ -24,6 +24,8 @@ on:
repository_dispatch: repository_dispatch:
env: env:
# As defined by the Taskfile's PROJECT_NAME variable
PROJECT_NAME: arduino-cli
# As defined by the Taskfile's DIST_DIR variable # As defined by the Taskfile's DIST_DIR variable
DIST_DIR: dist DIST_DIR: dist
BUILDS_ARTIFACT: build-artifacts BUILDS_ARTIFACT: build-artifacts
...@@ -53,10 +55,42 @@ jobs: ...@@ -53,10 +55,42 @@ jobs:
echo "::set-output name=result::$RESULT" echo "::set-output name=result::$RESULT"
build: build:
name: Build ${{ matrix.os.name }}
needs: run-determination needs: run-determination
if: needs.run-determination.outputs.result == 'true' if: needs.run-determination.outputs.result == 'true'
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
os:
- dist: Windows_32bit
path: "*Windows_32bit.zip"
name: Windows_X86-32
- dist: Windows_64bit
path: "*Windows_64bit.zip"
name: Windows_X86-64
- dist: Linux_32bit
path: "*Linux_32bit.tar.gz"
name: Linux_X86-32
- dist: Linux_64bit
path: "*Linux_64bit.tar.gz"
name: Linux_X86-64
- dist: Linux_ARMv6
path: "*Linux_ARMv6.tar.gz"
name: Linux_ARMv6
- dist: Linux_ARMv7
path: "*Linux_ARMv7.tar.gz"
name: Linux_ARMv7
- dist: Linux_ARM64
path: "*Linux_ARM64.tar.gz"
name: Linux_ARM64
- dist: macOS_64bit
path: "*macOS_64bit.tar.gz"
name: macOS_64
- dist: macOS_ARM64
path: "*macOS_ARM64.tar.gz"
name: macOS_ARM64
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
...@@ -77,63 +111,44 @@ jobs: ...@@ -77,63 +111,44 @@ jobs:
fi fi
PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.sha }}-" PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.sha }}-"
export PACKAGE_NAME_PREFIX export PACKAGE_NAME_PREFIX
task dist:all task dist:${{ matrix.os.dist }}
# Transfer builds to artifacts job - name: Upload build artifact
- name: Upload combined builds artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
path: ${{ env.DIST_DIR }} path: ${{ env.DIST_DIR }}/${{ matrix.os.path }}
name: ${{ env.BUILDS_ARTIFACT }} name: ${{ matrix.os.name }}
artifacts: checksums:
name: ${{ matrix.artifact.name }} artifact
needs: build needs: build
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
artifact:
- path: "*checksums.txt"
name: checksums
- path: "*Linux_32bit.tar.gz"
name: Linux_X86-32
- path: "*Linux_64bit.tar.gz"
name: Linux_X86-64
- path: "*Linux_ARM64.tar.gz"
name: Linux_ARM64
- path: "*Linux_ARMv6.tar.gz"
name: Linux_ARMv6
- path: "*Linux_ARMv7.tar.gz"
name: Linux_ARMv7
- path: "*macOS_64bit.tar.gz"
name: macOS_64
- path: "*macOS_ARM64.tar.gz"
name: macOS_ARM64
- path: "*Windows_32bit.zip"
name: Windows_X86-32
- path: "*Windows_64bit.zip"
name: Windows_X86-64
steps: steps:
- name: Download combined builds artifact - name: Download build artifacts
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: ${{ env.BUILDS_ARTIFACT }}
path: ${{ env.BUILDS_ARTIFACT }} path: ${{ env.BUILDS_ARTIFACT }}
- name: Upload individual build artifact - name: Output checksum
uses: actions/upload-artifact@v3 working-directory: ${{ env.BUILDS_ARTIFACT}}
with: run: |
path: ${{ env.BUILDS_ARTIFACT }}/${{ matrix.artifact.path }} PACKAGE_NAME_PREFIX="test"
name: ${{ matrix.artifact.name }} if [ "${{ github.event_name }}" = "pull_request" ]; then
PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.event.number }}"
clean: fi
needs: artifacts PACKAGE_NAME_PREFIX="$PACKAGE_NAME_PREFIX-${{ github.sha }}-"
runs-on: ubuntu-latest TAG="${PACKAGE_NAME_PREFIX}git-snapshot"
declare -a artifacts=($(ls -d */))
for artifact in ${artifacts[@]}
do
cd $artifact
checksum=$(sha256sum ${{ env.PROJECT_NAME }}_${TAG}*)
cd ..
echo $checksum >> ${TAG}-checksums.txt
done
steps: - name: Upload checksum artifact
- name: Remove unneeded combined builds artifact uses: actions/upload-artifact@v3
uses: geekyeggo/delete-artifact@v1
with: with:
name: ${{ env.BUILDS_ARTIFACT }} path: ${{ env.BUILDS_ARTIFACT }}/*checksums.txt
name: checksums
...@@ -19,6 +19,19 @@ jobs: ...@@ -19,6 +19,19 @@ jobs:
create-release-artifacts: create-release-artifacts:
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy:
matrix:
os:
- Windows_32bit
- Windows_64bit
- Linux_32bit
- Linux_64bit
- Linux_ARMv6
- Linux_ARMv7
- Linux_ARM64
- macOS_64bit
- macOS_ARM64
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v3 uses: actions/checkout@v3
...@@ -26,6 +39,8 @@ jobs: ...@@ -26,6 +39,8 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Create changelog - name: Create changelog
# Avoid creating the same changelog for each os
if: matrix.os == 'Windows_32bit'
uses: arduino/create-changelog@v1 uses: arduino/create-changelog@v1
with: with:
tag-regex: '^[0-9]+\.[0-9]+\.[0-9]+.*$' tag-regex: '^[0-9]+\.[0-9]+\.[0-9]+.*$'
...@@ -40,7 +55,7 @@ jobs: ...@@ -40,7 +55,7 @@ jobs:
version: 3.x version: 3.x
- name: Build - name: Build
run: task dist:all run: task dist:${{ matrix.os }}
- name: Upload artifacts - name: Upload artifacts
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
...@@ -132,14 +147,10 @@ jobs: ...@@ -132,14 +147,10 @@ jobs:
run: | run: |
gon "${{ env.GON_CONFIG_PATH }}" gon "${{ env.GON_CONFIG_PATH }}"
- name: Re-package binary and output checksum - name: Re-package binary
id: re-package id: re-package
working-directory: ${{ env.DIST_DIR }} working-directory: ${{ env.DIST_DIR }}
# This step performs the following: # Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
# 1. Repackage the signed binary replaced in place by Gon (ignoring the output zip file)
# 2. Recalculate package checksum
# 3. Output the new checksum to include in the nnnnnn-checksums.txt file
# (it cannot be done there because of workflow job parallelization)
run: | run: |
# GitHub's upload/download-artifact@v2 actions don't preserve file permissions, # GitHub's upload/download-artifact@v2 actions don't preserve file permissions,
# so we need to add execution permission back until the action is made to do this. # so we need to add execution permission back until the action is made to do this.
...@@ -149,11 +160,9 @@ jobs: ...@@ -149,11 +160,9 @@ jobs:
tar -czvf "$PACKAGE_FILENAME" \ tar -czvf "$PACKAGE_FILENAME" \
-C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \ -C "${{ env.PROJECT_NAME }}_osx_${{ matrix.artifact.name }}/" "${{ env.PROJECT_NAME }}" \
-C ../../ LICENSE.txt -C ../../ LICENSE.txt
CHECKSUM_LINE="$(shasum -a 256 $PACKAGE_FILENAME)"
echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV echo "PACKAGE_FILENAME=$PACKAGE_FILENAME" >> $GITHUB_ENV
echo "::set-output name=checksum-${{ matrix.artifact.name }}::$CHECKSUM_LINE"
- name: Upload artifacts - name: Upload artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v3
with: with:
if-no-files-found: error if-no-files-found: error
...@@ -171,15 +180,11 @@ jobs: ...@@ -171,15 +180,11 @@ jobs:
name: ${{ env.ARTIFACT_NAME }} name: ${{ env.ARTIFACT_NAME }}
path: ${{ env.DIST_DIR }} path: ${{ env.DIST_DIR }}
- name: Update checksum - name: Output checksum
working-directory: ${{ env.DIST_DIR}}
run: | run: |
declare -a checksum_lines=("${{ needs.notarize-macos.outputs.checksum-darwin_amd64 }}" "${{ needs.notarize-macos.outputs.checksum-darwin_arm64 }}") TAG="${GITHUB_REF/refs\/tags\//}"
for checksum_line in "${checksum_lines[@]}" sha256sum ${{ env.PROJECT_NAME }}_${TAG}* >> ${TAG}-checksums.txt
do
CHECKSUM=$(echo ${checksum_line} | cut -d " " -f 1)
PACKAGE_FILENAME=$(echo ${checksum_line} | cut -d " " -f 2)
perl -pi -w -e "s/.*${PACKAGE_FILENAME}/${CHECKSUM} ${PACKAGE_FILENAME}/g;" ${{ env.DIST_DIR }}/*-checksums.txt
done
- name: Identify Prerelease - name: Identify Prerelease
# This is a workaround while waiting for create-release action # This is a workaround while waiting for create-release action
......
...@@ -20,22 +20,8 @@ version: "3" ...@@ -20,22 +20,8 @@ version: "3"
vars: vars:
CONTAINER: "docker.elastic.co/beats-dev/golang-crossbuild" CONTAINER: "docker.elastic.co/beats-dev/golang-crossbuild"
GO_VERSION: "1.17.8" GO_VERSION: "1.17.8"
CHECKSUM_FILE: "{{.VERSION}}-checksums.txt"
tasks: tasks:
all:
desc: Build for distribution for all platforms
cmds:
- task: Windows_32bit
- task: Windows_64bit
- task: Linux_32bit
- task: Linux_64bit
- task: Linux_ARMv6
- task: Linux_ARMv7
- task: Linux_ARM64
- task: macOS_64bit
- task: macOS_ARM64
Windows_32bit: Windows_32bit:
desc: Builds Windows 32 bit binaries desc: Builds Windows 32 bit binaries
dir: "{{.DIST_DIR}}" dir: "{{.DIST_DIR}}"
...@@ -48,7 +34,6 @@ tasks: ...@@ -48,7 +34,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_386" PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_386"
...@@ -70,7 +55,6 @@ tasks: ...@@ -70,7 +55,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j zip {{.PACKAGE_NAME}} {{.PLATFORM_DIR}}/{{.PROJECT_NAME}}.exe ../LICENSE.txt -j
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_amd64" PLATFORM_DIR: "{{.PROJECT_NAME}}_windows_amd64"
...@@ -92,7 +76,6 @@ tasks: ...@@ -92,7 +76,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd32" PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd32"
...@@ -114,7 +97,6 @@ tasks: ...@@ -114,7 +97,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd64" PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_amd64"
...@@ -136,7 +118,6 @@ tasks: ...@@ -136,7 +118,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_7" PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_7"
...@@ -158,7 +139,6 @@ tasks: ...@@ -158,7 +139,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6" PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6"
...@@ -208,10 +188,9 @@ tasks: ...@@ -208,10 +188,9 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_6" PLATFORM_DIR: "{{.PROJECT_NAME}}_linux_arm_64"
BUILD_COMMAND: "go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}" BUILD_COMMAND: "go build -o {{.DIST_DIR}}/{{.PLATFORM_DIR}}/{{.PROJECT_NAME}} {{.LDFLAGS}}"
BUILD_PLATFORM: "linux/arm64" BUILD_PLATFORM: "linux/arm64"
CONTAINER_TAG: "{{.GO_VERSION}}-arm" CONTAINER_TAG: "{{.GO_VERSION}}-arm"
...@@ -230,7 +209,6 @@ tasks: ...@@ -230,7 +209,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_amd64" PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_amd64"
...@@ -265,7 +243,6 @@ tasks: ...@@ -265,7 +243,6 @@ tasks:
-p "{{.BUILD_PLATFORM}}" -p "{{.BUILD_PLATFORM}}"
tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}} tar cz -C {{.PLATFORM_DIR}} {{.PROJECT_NAME}} -C ../.. LICENSE.txt -f {{.PACKAGE_NAME}}
sha256sum {{.PACKAGE_NAME}} >> {{.CHECKSUM_FILE}}
vars: vars:
PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_arm64" PLATFORM_DIR: "{{.PROJECT_NAME}}_osx_darwin_arm64"
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment