Skip to content

nightly

nightly #346

Workflow file for this run

name: nightly
on:
schedule:
- cron: '0 2 * * *' # UTC 2:00 every day
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: lint
if: github.repository == 'tensorchord/envd'
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: 1.19
- uses: actions/checkout@v4
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- name: Add license
run: |
make addlicense && git add pkg cmd &&
git diff --cached --exit-code || (echo 'Please run "make addlicense" to verify govet' && exit 1);
- name: golangci-lint
uses: golangci/golangci-lint-action@v3
with:
args: --timeout=5m
version: latest
# Ref https://github.com/golangci/golangci-lint-action/issues/244
skip-pkg-cache: true
test:
name: test
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- name: Verify mockgen
run: |
make generate && git add pkg &&
git diff --cached --exit-code || (echo 'Please run "make generate" to verify generate' && exit 1);
- name: Test
run: make test
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: coverage-out
path: coverage.out
e2e-cli:
name: e2e-cli
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: e2e test
run: make e2e-cli-test
env:
GIT_LATEST_TAG: ${{ steps.get-latest-tag.outputs.tag }}
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: e2e-cli-coverage-out
path: e2e-cli-coverage.out
e2e-lang:
name: e2e-lang
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ ubuntu-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: e2e test
run: make e2e-lang-test
env:
GIT_LATEST_TAG: ${{ steps.get-latest-tag.outputs.tag }}
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: e2e-lang-coverage-out
path: e2e-lang-coverage.out
# notifies that all test jobs are finished.
report:
if: github.repository == 'tensorchord/envd'
needs:
- test
- e2e-cli
- e2e-lang
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Install bins
run: |
go install github.com/mattn/goveralls@latest
go install github.com/wadey/gocovmerge@latest
- name: Get coverage report
uses: actions/download-artifact@v3
with:
name: coverage-out
path: coverage.out
- name: Get cli e2e coverage report
uses: actions/download-artifact@v3
with:
name: e2e-cli-coverage-out
path: e2e-cli-coverage.out
- name: Get language e2e coverage report
uses: actions/download-artifact@v3
with:
name: e2e-lang-coverage-out
path: e2e-lang-coverage.out
# - name: Send coverage
# env:
# COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# run: |
# gocovmerge e2e-coverage.out coverage.out > final.out
# goveralls -coverprofile=final.out -service=github
build:
name: build
if: github.repository == 'tensorchord/envd'
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- name: Build
run: make
e2e-doc:
name: e2e-doc
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: e2e doc test
run: make e2e-doc-test
env:
GIT_LATEST_TAG: ${{ steps.get-latest-tag.outputs.tag }}
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: e2e-doc-coverage-out
path: e2e-doc-coverage.out
e2e-cli-v1:
name: e2e-cli-v1
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19.10
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: e2e test
run: make e2e-cli-test-v1
env:
GIT_LATEST_TAG: ${{ steps.get-latest-tag.outputs.tag }}
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: e2e-cli-v1-coverage-out
path: e2e-cli-v1-coverage.out
e2e-lang-v1:
name: e2e-lang-v1
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: e2e test
run: make e2e-lang-test-v1
env:
GIT_LATEST_TAG: ${{ steps.get-latest-tag.outputs.tag }}
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: e2e-lang-v1-coverage-out
path: e2e-lang-v1-coverage.out
e2e-doc-v1:
name: e2e-doc-v1
if: github.repository == 'tensorchord/envd'
env:
# Disable telemetry.
ENVD_ANALYTICS: false
strategy:
matrix:
os: [ubuntu-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: Cache Go modules
uses: actions/cache@preview
with:
path: ~/go/pkg/mod
key: ${{ runner.os }}-build-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.OS }}-build-${{ env.cache-name }}-
${{ runner.OS }}-build-
${{ runner.OS }}-
- uses: actions-ecosystem/action-get-latest-tag@v1
id: get-latest-tag
- name: e2e doc test
run: make e2e-doc-test-v1
env:
GIT_LATEST_TAG: ${{ steps.get-latest-tag.outputs.tag }}
- name: Upload coverage report
uses: actions/upload-artifact@v3
with:
name: e2e-doc-v1-coverage-out
path: e2e-doc-v1-coverage.out