Skip to content

Release Wave Nightly #1489

Release Wave Nightly

Release Wave Nightly #1489

name: Release Wave Nightly
on:
workflow_dispatch:
inputs:
version:
description: 'Release Version'
default: 'nightly'
required: false
tag:
description: 'Release Tag'
default: 'nightly'
required: false
schedule:
- cron: "0 22,7 * * *" # Schedule on 12am of CET and PST.
env:
VERSION: "nightly"
TAG: "nightly"
# Cancel a currently running workflow.
concurrency:
group: ${{ github.workflow }}
cancel-in-progress: true
# TODO: Use composite action to make the configuration more DRY.
jobs:
test-linux:
name: Test Linux
strategy:
matrix:
os: [ubuntu-20.04, ubuntu-22.04]
py: ["3.8", "3.9", "3.10"]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GIT_TOKEN }}
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.py }}
- uses: actions/setup-go@v4
with:
go-version: '1.19.4'
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Setup
run: |
make setup-ui build-ui
make setup-py-tests
make setup-vsc
make setup-e2e
make build-server
env:
NODE_OPTIONS: '--max-old-space-size=8192'
- name: Test
run: |
make test-e2e-ci
make test-py-ci
make test-vsc-ci
test-win:
name: Test Windows
strategy:
matrix:
py: ["3.8", "3.9", "3.10"]
runs-on: windows-2022
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GIT_TOKEN }}
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.py }}
- uses: actions/setup-go@v4
with:
go-version: '1.19.4'
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Setup
run: .\setup.ps1
shell: pwsh
env:
NODE_OPTIONS: '--max-old-space-size=8192'
- name: Test
run: .\test.ps1
shell: pwsh
test-macos:
name: Test MacOS
strategy:
matrix:
py: ["3.8", "3.9", "3.10"]
runs-on: macos-12
steps:
- uses: actions/checkout@v2
with:
token: ${{ secrets.GIT_TOKEN }}
- name: Install docker
run: |
brew install docker
colima start
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.py }}
- uses: actions/setup-go@v4
with:
go-version: '1.19.4'
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Setup
run: |
make setup-ui build-ui
make setup-py-tests
make setup-vsc
make setup-e2e
make build-server
env:
NODE_OPTIONS: '--max-old-space-size=8192'
- name: Test
run: |
make test-e2e-macos-ci
make test-py-ci
make test-vsc-ci
env:
KC_SLEEP: 45
release:
needs: [test-linux, test-win, test-macos]
name: Release Wave Nightly
runs-on: ubuntu-20.04
steps:
- name: Set ENV vars
run: |
echo "VERSION=${{ github.event.inputs.version || env.VERSION }}" >> $GITHUB_ENV
echo "TAG=${{ github.event.inputs.tag || env.TAG }}" >> $GITHUB_ENV
- uses: actions/checkout@v2
with:
token: ${{ secrets.GIT_TOKEN }}
- uses: actions/setup-go@v4
with:
go-version: '1.19.4'
- uses: actions/setup-node@v3
with:
node-version-file: '.nvmrc'
- name: Setup
run: make setup
- uses: r-lib/actions/setup-r@v2
- uses: r-lib/actions/setup-r-dependencies@v2
with:
working-directory: ./r
# These unit tests are not OS-dependent, so no need to run them in the dedicated Test jobs.
- name: Unit test
run: |
make test-ui-ci
make test-intellij-ci
- name: Build Release
run: make release-nightly
env:
NODE_OPTIONS: '--max-old-space-size=8192'
- name: Update tag
run: git tag -f ${{ env.TAG }} && git push -f --tags
- name: Release
uses: softprops/action-gh-release@v1
with:
files: |
build/wave-${{ env.VERSION }}-darwin-amd64.tar.gz
build/wave-${{ env.VERSION }}-darwin-arm64.tar.gz
build/wave-${{ env.VERSION }}-linux-amd64.tar.gz
build/wave-${{ env.VERSION }}-windows-amd64.tar.gz
py/h2o_wave/dist/h2o_wave-${{ env.VERSION }}-py3-none-macosx_10_9_x86_64.whl
py/h2o_wave/dist/h2o_wave-${{ env.VERSION }}-py3-none-macosx_11_0_arm64.whl
py/h2o_wave/dist/h2o_wave-${{ env.VERSION }}-py3-none-macosx_12_0_arm64.whl
py/h2o_wave/dist/h2o_wave-${{ env.VERSION }}-py3-none-manylinux1_x86_64.whl
py/h2o_wave/dist/h2o_wave-${{ env.VERSION }}-py3-none-win_amd64.whl
py/h2o_wave/dist/h2o_wave-${{ env.VERSION }}-py3-none-any.whl
r/build/h2owave_nightly_R.tar.gz
tag_name: ${{ env.TAG }}
prerelease: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}