Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
A
ArduinoCore-megaAVR
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Operations
Operations
Metrics
Analytics
Analytics
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Commits
Open sidebar
xpstem
ArduinoCore-megaAVR
Commits
2237a746
Commit
2237a746
authored
Dec 30, 2020
by
Martino Facchin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add github action for core release
parent
268fefd7
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
188 additions
and
4 deletions
+188
-4
.github/workflows/release.yaml
.github/workflows/release.yaml
+107
-0
extras/pack.release.bash
extras/pack.release.bash
+27
-4
extras/package_index.json.NewTag.template
extras/package_index.json.NewTag.template
+54
-0
No files found.
.github/workflows/release.yaml
0 → 100644
View file @
2237a746
name
:
release
on
:
push
:
tags
:
-
"
[0-9]+.[0-9]+.[0-9]+*"
jobs
:
core-pre-release-from-tag
:
runs-on
:
ubuntu-latest
steps
:
-
name
:
Checkout repository
uses
:
actions/checkout@v2
-
name
:
Checkout ArduinoCore-API
uses
:
actions/checkout@v2
with
:
repository
:
arduino/ArduinoCore-API
path
:
extras/ArduinoCore-API
-
name
:
Check if API should be compiled in the core
id
:
checkapi
run
:
|
if [[ $(grep -r api platform.txt) ]]; then echo "::set-output name=IS_API::true"; fi
-
name
:
Checkout latest tag of ArduinoCore-API and add it to the core
run
:
|
cd extras/ArduinoCore-API
git fetch --tags
git checkout $(git describe --tags $(git rev-list --tags --max-count=1))
cd ../..
mv "$GITHUB_WORKSPACE/extras/ArduinoCore-API/api" "$GITHUB_WORKSPACE/cores/arduino"
if
:
steps.checkapi.outputs.IS_API == 'true'
-
name
:
Remove ArduinoCore-API
run
:
rm -r "$GITHUB_WORKSPACE/extras/ArduinoCore-API"
-
name
:
Set env
run
:
echo "TAG_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
name
:
Get repo name
run
:
echo "REPOSITORY_NAME=$(echo ${{ github.repository }} | cut -d "/" -f2-)" >> $GITHUB_ENV
-
name
:
Package the new core
run
:
|
extras/pack.release.bash $TAG_VERSION $REPOSITORY_NAME
cd extras
mkdir staging
echo $PWD
mv ../*.json staging/
mv ../*.tar.bz2 staging/
cd ..
-
name
:
Get architecture name
run
:
|
echo "ARCHITECTURE=$(cat extras/package_index.json.NewTag.template | jq ".packages[0].platforms[0].architecture" | sed 's/\"//g')" >> $GITHUB_ENV
-
name
:
Upload package_*_index.json and *.tar.bz2 file to Arduino downloads servers
env
:
AWS_ACCESS_KEY_ID
:
${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY
:
${{ secrets.AWS_SECRET_ACCESS_KEY }}
run
:
|
aws s3 sync extras/staging/ s3://${{ secrets.ARDUINO_DOWNLOADS_BUCKET }}/packages/staging/ --exclude "*" --include *.json
aws s3 sync extras/staging/ s3://${{ secrets.ARDUINO_DOWNLOADS_BUCKET }}/cores/staging/ --exclude "*" --include *.tar.bz2
-
name
:
Checkout Basic examples
uses
:
actions/checkout@v2
with
:
repository
:
arduino/arduino-examples
path
:
extras/arduino-examples
-
name
:
Install Arduino CLI
uses
:
arduino/setup-arduino-cli@v1.1.1
with
:
version
:
"
0.14.0"
-
name
:
Download and verify new core
run
:
|
export PATH=$PATH:$PWD
arduino-cli version
cp extras/staging/package_${REPOSITORY_NAME}_${TAG_VERSION}_index.json .
export ARDUINO_DIRECTORIES_DATA=$PWD
export ARDUINO_BOARD_MANAGER_ADDITIONAL_URLS=file://$PWD/package_${REPOSITORY_NAME}_${TAG_VERSION}_index.json
arduino-cli config init
arduino-cli config dump -v
arduino-cli core update-index -v
arduino-cli core install arduino:${ARCHITECTURE}@${TAG_VERSION}
INDEX=0
arduino-cli board listall --format=json > boardlist.json
N=$(jq '.boards | length' boardlist.json)
let N=N-1
echo $N
for INDEX in $(seq 0 1 $N); do arduino-cli compile --fqbn $(cat boardlist.json | jq ".boards[$INDEX].FQBN" | sed 's/\"//g') $PWD/extras/arduino-examples/examples/01.Basics/Blink; done
# See: https://github.com/rtCamp/action-slack-notify
-
name
:
Slack notification of core pre-release
uses
:
rtCamp/action-slack-notify@v2.1.0
env
:
SLACK_CHANNEL
:
core_releases
SLACK_COLOR
:
good
SLACK_USERNAME
:
ArduinoBot
SLACK_ICON
:
https://github.com/arduino.png?size=48
SLACK_TITLE
:
Arduino core pre-release
SLACK_MESSAGE
:
'
Version
${{
env.TAG_VERSION
}}
of
core
${{
env.REPOSITORY_NAME
}}
is
now
available'
SLACK_WEBHOOK
:
${{ secrets.SLACK_WEBHOOK }}
MSG_MINIMAL
:
true
\ No newline at end of file
extras/pack.release.bash
View file @
2237a746
#!/bin/bash -ex
#!/bin/bash -ex
# pack.*.bash - Bash script to help packaging
avr
core releases.
# pack.*.bash - Bash script to help packaging
samd
core releases.
# Copyright (c) 2015 Arduino LLC. All right reserved.
# Copyright (c) 2015 Arduino LLC. All right reserved.
#
#
# This library is free software; you can redistribute it and/or
# This library is free software; you can redistribute it and/or
...
@@ -17,17 +17,40 @@
...
@@ -17,17 +17,40 @@
# License along with this library; if not, write to the Free Software
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
# Version check removed because version string passed from jenkins was incorrect
VERSION_FROM_TAG
=
$1
CORE_NAME
=
$2
echo
$VERSION_FROM_TAG
echo
$CORE_NAME
VERSION
=
`
grep
version
=
platform.txt |
sed
's/version=//g'
`
VERSION
=
`
grep
version
=
platform.txt |
sed
's/version=//g'
`
echo
$VERSION
if
[
$VERSION
!=
$VERSION_FROM_TAG
]
;
then
exit
0
fi
PWD
=
`
pwd
`
PWD
=
`
pwd
`
FOLDERNAME
=
`
basename
$PWD
`
FOLDERNAME
=
`
basename
$PWD
`
THIS_SCRIPT_NAME
=
`
basename
$0
`
THIS_SCRIPT_NAME
=
`
basename
$0
`
FILENAME
=
core-
$CORE_NAME
-
$VERSION
.tar.bz2
echo
$FILENAME
rm
-f
avr-
$VERSION
.tar.bz2
rm
-f
*
.tar.bz2
rm
-f
*
.json
cd
..
cd
..
tar
--transform
"s|
$FOLDERNAME
|
$FOLDERNAME
-
$VERSION
|g"
--exclude
=
extras/
**
--exclude
=
.git
*
--exclude
=
.idea
-cjf
avr-
$VERSION
.tar.bz2
$FOLDERNAME
tar
--exclude
=
extras/
**
--exclude
=
.git
*
--exclude
=
.idea
-cjhf
$FILENAME
$FOLDERNAME
cd
-
cd
-
mv
../avr-
$VERSION
.tar.bz2
.
mv
../
$FILENAME
.
CHKSUM
=
`
sha256sum
$FILENAME
|
awk
'{ print $1 }'
`
SIZE
=
`
wc
-c
$FILENAME
|
awk
'{ print $1 }'
`
cat
extras/package_index.json.NewTag.template |
# sed "s/%%BUILD_NUMBER%%/${BUILD_NUMBER}/" |
# sed "s/%%CURR_TIME%%/${CURR_TIME_SED}/" |
sed
"s/%%VERSION%%/
${
VERSION
}
/"
|
sed
"s/%%FILENAME%%/
${
FILENAME
}
/"
|
sed
"s/%%CHECKSUM%%/
${
CHKSUM
}
/"
|
sed
"s/%%SIZE%%/
${
SIZE
}
/"
>
package_
${
CORE_NAME
}
_
${
VERSION
}
_index.json
\ No newline at end of file
extras/package_index.json.NewTag.template
0 → 100644
View file @
2237a746
{
"packages": [
{
"name": "arduino",
"maintainer": "Arduino Betatesting",
"websiteURL": "http://www.arduino.cc/",
"email": "packages@arduino.cc",
"help": {
"online": "http://www.arduino.cc/en/Reference/HomePage"
},
"platforms": [
{
"name": "Arduino megaAVR Boards - Pre-release",
"architecture": "megaavr",
"version": "%%VERSION%%",
"category": "Arduino",
"url": "http://downloads.arduino.cc/cores/staging/%%FILENAME%%",
"archiveFileName": "%%FILENAME%%",
"checksum": "SHA-256:%%CHECKSUM%%",
"size": "%%SIZE%%",
"help": {
"online": "https://github.com/arduino/ArduinoCore-megaavr/issues"
},
"boards": [
{
"name": "Arduino Uno WiFi Rev2"
},
{
"name": "Arduino Nano Every"
}
],
"toolsDependencies": [
{
"packager": "arduino",
"name": "avr-gcc",
"version": "7.3.0-atmel3.6.1-arduino5"
},
{
"packager": "arduino",
"name": "avrdude",
"version": "6.3.0-arduino17"
},
{
"packager": "arduino",
"name": "arduinoOTA",
"version": "1.3.0"
}
]
}
],
"tools": []
}
]
}
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment