Skip to content

Release

Release #1079

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 --mode ${{ matrix.version }} --install --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
# 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 --mode ${{ matrix.version }} --arch ${{ matrix.arch }} --install --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 mingw-w64-x86_64-mpfr
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-2.0.0_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-2.0.0/bin":$PATH
nim --version
./build.nims --mode ${{ matrix.version }} --install --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-2.0.0_x64.zip -o dist/nim.zip
7z x dist/dlls.zip -obin
7z x dist/nim.zip -onim
export PATH="${{ github.workspace }}/nim/nim-2.0.0/bin":$PATH
./build.nims --mode ${{ matrix.version }} --install --log
- name: Create artifact (full)
if: matrix.version == 'full'
run: |
curl -L https://arturo-lang.s3.amazonaws.com/libwinpthread-1.dll -o libwinpthread-1.dll
curl -L https://arturo-lang.s3.amazonaws.com/libgmp-10.dll -o libgmp-10.dll
curl -L https://arturo-lang.s3.amazonaws.com/libmpfr-6.dll -o libmpfr-6.dll
curl -L https://arturo-lang.s3.amazonaws.com/sqlite3_64.dll -o sqlite3_64.dll
curl -L https://arturo-lang.s3.amazonaws.com/libgcc_s_seh-1.dll -o libgcc_s_seh-1.dll
curl -L https://arturo-lang.s3.amazonaws.com/pcre64.dll -o pcre64.dll
curl -L https://curl.se/ca/cacert.pem -o cacert.pem
cp *.dll bin
cp *.pem bin
cp src/extras/webview/deps/dlls/x64/webview.dll bin
cp src/extras/webview/deps/dlls/x64/WebView2Loader.dll bin
- name: Create artifact (mini)
if: matrix.version == 'mini'
run: |
curl -L https://arturo-lang.s3.amazonaws.com/libwinpthread-1.dll -o libwinpthread-1.dll
curl -L https://arturo-lang.s3.amazonaws.com/pcre64.dll -o pcre64.dll
curl -L https://curl.se/ca/cacert.pem -o cacert.pem
cp *.dll bin
cp *.pem bin
- name: Package artifact
run: |
7z a ${{ env.app-name }}-${{ steps.versionNumber.outputs.text }}-${{ steps.currentDate.outputs.text }}-${{runner.os}}-${{matrix.version}}.zip bin
- 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
# 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 --mode web --install --log
# echo "$HOME/.arturo/bin" >> $GITHUB_PATH
# - name: Create artifact
# run: |
# cp 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
#- 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