Skip to content

Release

Release #758

Workflow file for this run

name: "Release"
on:
push:
branches:
- '**'
- actions
pull_request:
branches:
- '*'
schedule:
- cron: '0 0 * * *'
env:
app-name: arturo
defaults:
run:
shell: bash -l {0}
jobs:
unix:
name: "Package *nix"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
version:
- mini
- full
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- name: Install Nim
run: |
wget -qO - https://nim-lang.org/choosenim/init.sh | bash -s -- -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
- name: Install dependencies
if: matrix.version == 'full' && matrix.os == 'ubuntu-latest'
run: |
sudo apt-get update
sudo apt-get install libwebkit2gtk-4.0-dev libmpfr-dev
- name: Verify dependecies
run: |
nim --version
- name: Build Arturo
run: |
export MACOSX_DEPLOYMENT_TARGET=10.10
./build.nims install ${{ matrix.version }} log
echo "$HOME/.arturo/bin" >> $GITHUB_PATH
- name: Create artifact
run: |
install -m 0755 ./bin/${{ env.app-name }} .
tar czf ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.tar.gz ${{ env.app-name }} README.md LICENSE
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.tar.gz
path: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.tar.gz
raspberry:
name: "Package Raspberry"
runs-on: ubuntu-20.04
strategy:
matrix:
os:
- Raspberry
arch:
- arm
- arm64
version:
- mini
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- name: Install Nim
run: |
wget -qO - https://nim-lang.org/choosenim/init.sh | bash -s -- -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install gcc-arm-linux-gnueabihf gcc-aarch64-linux-gnu
- name: Verify dependecies
run: |
nim --version
- name: Build Arturo
run: |
export MACOSX_DEPLOYMENT_TARGET=10.10
./build.nims install ${{ matrix.version }} ${{ matrix.arch }} log
echo "$HOME/.arturo/bin" >> $GITHUB_PATH
file bin/arturo
- name: Create artifact
run: |
install -m 0755 ./bin/${{ env.app-name }} .
tar czf ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{matrix.os}}-${{matrix.arch}}-${{matrix.version}}.tar.gz ${{ env.app-name }} README.md LICENSE
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{matrix.os}}-${{matrix.arch}}-${{matrix.version}}.tar.gz
path: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{matrix.os}}-${{matrix.arch}}-${{matrix.version}}.tar.gz
freebsd:
name: "Package FreeBSD"
runs-on: macos-10.15
strategy:
matrix:
os:
- freebsd-latest
version:
- mini
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- name: Setup environment & Build Arturo
id: test
uses: vmactions/freebsd-vm@v0.1.5
with:
usesh: true
prepare: pkg install -y nim gmp mpfr bash databases/sqlite3
run: |
./build.nims install ${{ matrix.version }} ${{ matrix.arch }} log
export PATH="$HOME/.arturo/bin:$PATH"
- name: Create artifact
run: |
install -m 0755 ./bin/${{ env.app-name }} .
tar czf ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-FreeBSD-${{matrix.version}}.tar.gz ${{ env.app-name }} README.md LICENSE
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-FreeBSD-${{matrix.version}}.tar.gz
path: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-FreeBSD-${{matrix.version}}.tar.gz
windows:
name: "Package Windows"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- windows-latest
version:
- mini
- full
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- uses: msys2/setup-msys2@v2
with:
update: true
install: 'git base-devel'
- name: Install dependencies + Build Arturo (full)
if: matrix.version == 'full'
shell: msys2 {0}
run: |
pacman --noconfirm -S p7zip mingw-w64-x86_64-toolchain
mkdir dist
mkdir nim
curl -L https://nim-lang.org/download/dlls.zip -o dist/dlls.zip
curl -L https://arturo-lang.s3.amazonaws.com/extra-dlls.zip -o dist/extradlls.zip
curl -L https://nim-lang.org/download/nim-1.6.8_x64.zip -o dist/nim.zip
7z x dist/dlls.zip -obin
7z x dist/extradlls.zip -obin
7z x dist/nim.zip -onim
cp src/extras/webview/deps/dlls/x64/*.dll bin
export PATH="${{ github.workspace }}/nim/nim-1.6.8/bin":$PATH
nim --version
./build.nims install ${{ matrix.version }} log
- name: Install dependencies + Build Arturo (mini)
if: matrix.version == 'mini'
shell: msys2 {0}
run: |
pacman --noconfirm -S p7zip mingw-w64-x86_64-toolchain
mkdir dist
mkdir nim
curl -L https://nim-lang.org/download/dlls.zip -o dist/dlls.zip
curl -L https://nim-lang.org/download/nim-1.6.8_x64.zip -o dist/nim.zip
7z x dist/dlls.zip -obin
7z x dist/nim.zip -onim
export PATH="${{ github.workspace }}/nim/nim-1.6.8/bin":$PATH
./build.nims install ${{ matrix.version }} log
- name: Create artifact (full)
if: matrix.version == 'full'
run: |
mkdir arturo-${{matrix.version}}-${{matrix.os}}
curl -L https://arturo-lang.s3.amazonaws.com/libcrypto-1_1-x64.dll -o libcrypto-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libssl-1_1-x64.dll -o libssl-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/pcre64.dll -o pcre64.dll
curl -L https://arturo-lang.s3.amazonaws.com/sqlite3_64.dll -o sqlite3_64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libgmp-10.dll -o libgmp-10.dll
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
cp src/extras/webview/deps/dlls/x64/webview.dll arturo-${{matrix.version}}-${{matrix.os}}
cp src/extras/webview/deps/dlls/x64/WebView2Loader.dll arturo-${{matrix.version}}-${{matrix.os}}
cp bin/arturo.exe arturo-${{matrix.version}}-${{matrix.os}}
cp README.md arturo-${{matrix.version}}-${{matrix.os}}
cp LICENSE arturo-${{matrix.version}}-${{matrix.os}}
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
- name: Create artifact (mini)
if: matrix.version == 'mini'
run: |
mkdir arturo-${{matrix.version}}-${{matrix.os}}
curl -L https://arturo-lang.s3.amazonaws.com/libcrypto-1_1-x64.dll -o libcrypto-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libssl-1_1-x64.dll -o libssl-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/pcre64.dll -o pcre64.dll
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
cp bin/arturo.exe arturo-${{matrix.version}}-${{matrix.os}}
cp README.md arturo-${{matrix.version}}-${{matrix.os}}
cp LICENSE arturo-${{matrix.version}}-${{matrix.os}}
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
- name: Package artifact
run: |
7z a ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.zip arturo-${{matrix.version}}-${{matrix.os}}/*
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.zip
path: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.zip
msys2:
name: "Package Windows' Msys2"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- windows-latest
version:
- mini
- full
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- uses: msys2/setup-msys2@v2
with:
update: true
install: 'git base-devel'
- name: Install dependencies + Build Arturo (full)
if: matrix.version == 'full'
shell: msys2 {0}
run: |
pacman --noconfirm -S p7zip mingw-w64-x86_64-toolchain
mkdir dist
mkdir nim
curl -L https://nim-lang.org/download/dlls.zip -o dist/dlls.zip
curl -L https://arturo-lang.s3.amazonaws.com/extra-dlls.zip -o dist/extradlls.zip
curl -L https://nim-lang.org/download/nim-1.6.8_x64.zip -o dist/nim.zip
7z x dist/dlls.zip -obin
7z x dist/extradlls.zip -obin
7z x dist/nim.zip -onim
cp src/extras/webview/deps/dlls/x64/*.dll bin
export PATH="${{ github.workspace }}/nim/nim-1.6.8/bin":$PATH
nim --version
./build.nims install ${{ matrix.version }} log
- name: Install dependencies + Build Arturo (mini)
if: matrix.version == 'mini'
shell: msys2 {0}
run: |
pacman --noconfirm -S p7zip mingw-w64-x86_64-toolchain
mkdir dist
mkdir nim
curl -L https://nim-lang.org/download/dlls.zip -o dist/dlls.zip
curl -L https://nim-lang.org/download/nim-1.6.8_x64.zip -o dist/nim.zip
7z x dist/dlls.zip -obin
7z x dist/nim.zip -onim
export PATH="${{ github.workspace }}/nim/nim-1.6.8/bin":$PATH
./build.nims install ${{ matrix.version }} log
- name: Create artifact (full)
if: matrix.version == 'full'
run: |
mkdir arturo-${{matrix.version}}-${{matrix.os}}
curl -L https://arturo-lang.s3.amazonaws.com/libcrypto-1_1-x64.dll -o libcrypto-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libssl-1_1-x64.dll -o libssl-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/pcre64.dll -o pcre64.dll
curl -L https://arturo-lang.s3.amazonaws.com/sqlite3_64.dll -o sqlite3_64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libgmp-10.dll -o libgmp-10.dll
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
cp src/extras/webview/deps/dlls/x64/webview.dll arturo-${{matrix.version}}-${{matrix.os}}
cp src/extras/webview/deps/dlls/x64/WebView2Loader.dll arturo-${{matrix.version}}-${{matrix.os}}
cp bin/arturo.exe arturo-${{matrix.version}}-${{matrix.os}}
cp README.md arturo-${{matrix.version}}-${{matrix.os}}
cp LICENSE arturo-${{matrix.version}}-${{matrix.os}}
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
- name: Create artifact (mini)
if: matrix.version == 'mini'
run: |
mkdir arturo-${{matrix.version}}-${{matrix.os}}
curl -L https://arturo-lang.s3.amazonaws.com/libcrypto-1_1-x64.dll -o libcrypto-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libssl-1_1-x64.dll -o libssl-1_1-x64.dll
curl -L https://arturo-lang.s3.amazonaws.com/pcre64.dll -o pcre64.dll
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
cp bin/arturo.exe arturo-${{matrix.version}}-${{matrix.os}}
cp README.md arturo-${{matrix.version}}-${{matrix.os}}
cp LICENSE arturo-${{matrix.version}}-${{matrix.os}}
cp *.dll arturo-${{matrix.version}}-${{matrix.os}}
- name: Package artifact
run: |
tar czf ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-WindowsMsys2-${{matrix.version}}.tar.gz arturo-${{matrix.version}}-${{matrix.os}}/*
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-WindowsMsys2-${{matrix.version}}.tar.gz
path: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-WindowsMsys2-${{matrix.version}}.tar.gz
web:
name: "Package Web"
runs-on: ${{ matrix.os }}
strategy:
matrix:
os:
- ubuntu-latest
version:
- mini
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- name: Install Nim
run: |
wget -qO - https://nim-lang.org/choosenim/init.sh | bash -s -- -y
echo "$HOME/.nimble/bin" >> $GITHUB_PATH
- name: Install dependecies
run: |
sudo apt-get update -y
sudo apt-get install -y uglifyjs
- name: Verify dependecies
run: |
nim --version
- name: Build Arturo
run: |
./build.nims install web
echo "$HOME/.arturo/bin" >> $GITHUB_PATH
- name: Create artifact
run: |
install -m 0755 ./bin/${{ env.app-name }}.js .
tar czf ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-Web-${{matrix.version}}.tar.gz ${{ env.app-name }}.js README.md LICENSE
- name: Upload Artifact
uses: 'actions/upload-artifact@v1'
with:
name: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-Web-${{matrix.version}}.tar.gz
path: ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-Web-${{matrix.version}}.tar.gz
upload:
name: "Upload"
runs-on: ubuntu-latest
if: ${{ always() }}
needs:
- unix
- raspberry
- freebsd
- windows
- msys2
- web
steps:
- name: "Cancel similar actions in progress"
uses: styfle/cancel-workflow-action@0.6.0
with:
access_token: ${{ github.token }}
- name: "Checkout"
uses: actions/checkout@main
with:
repository: arturo-lang/arturo
submodules: recursive
- name: "Get version"
uses: pCYSl5EDgo/cat@master
id: versionNumber
with:
path: version/version
trim: true
- uses: actions/download-artifact@v2
with:
path: ./assets
- name: Display structure of downloaded files
run: ls -R
- name: Get current date
run: echo $(date -u "+%F") >> currentDate
- name: "Read date"
uses: pCYSl5EDgo/cat@master
id: currentDate
with:
path: currentDate
trim: true
- name: Create Release
id: create-release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: tag-${{ steps.currentDate.outputs.text }}
release_name: Latest nightly @ ${{ steps.currentDate.outputs.text }}
body: |
Nightly build on ${{ steps.currentDate.outputs.text }}
draft: false
prerelease: false
- name: Upload Release Assets
id: upload-release-assets
uses: dwenegar/upload-release-assets@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
release_id: ${{ steps.create-release.outputs.id }}
assets_path: ./assets