Release #1081
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |