Skip to content

Pin all GitHub Actions to SHA refs #103

Pin all GitHub Actions to SHA refs

Pin all GitHub Actions to SHA refs #103

Workflow file for this run

name: build and test
on:
push:
branches:
- main
pull_request:
jobs:
build:
name: Build
strategy:
matrix:
os: [ "ubuntu-latest", "macos-latest" ]
go-version: [ "1.24.0" ]
runs-on: ${{ matrix.os }}
steps:
- name: checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: setup Go ${{ matrix.go-version }}
uses: actions/setup-go@7b8cf10d4e4a01d4992d18a89f4d7dc5a3e6d6f4 # v4
with:
go-version: ${{ matrix.go-version }}
cache: true
- name: cache for linux
uses: actions/cache@6f8efc29b200d32929f49075959781ed54ec270c # v3
if: runner.os == 'Linux'
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: cache for macOS
uses: actions/cache@6f8efc29b200d32929f49075959781ed54ec270c # v3
if: runner.os == 'macOS'
with:
path: |
~/Library/Caches/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: download modules
run: |
go mod download
- uses: rui314/setup-mold@725a8794d15fc7563f59595bd9556495c0564878 # v1
- name: build
run: make emulator/build
env:
CC: clang
CXX: clang++
VERSION: test
- name: show version
run: |
./bigquery-emulator --version
- name: show linking info
if: runner.os == 'Linux'
run: |
ldd bigquery-emulator || true
test:
needs: build
name: Test
strategy:
matrix:
os: [ "ubuntu-latest", "macos-latest" ]
go-version: [ "1.24.0" ]
runs-on: ${{ matrix.os }}
steps:
- name: setup Go ${{ matrix.go-version }}
uses: actions/setup-go@bfdd3570ce990073878bf10f6b2d79082de49492 # v2
with:
go-version: ${{ matrix.go-version }}
- name: checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: cache for linux
uses: actions/cache@6f8efc29b200d32929f49075959781ed54ec270c # v3
if: runner.os == 'Linux'
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: cache for macOS
uses: actions/cache@6f8efc29b200d32929f49075959781ed54ec270c # v3
if: runner.os == 'macOS'
with:
path: |
~/Library/Caches/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-
- name: download modules
run: |
go mod download
- name: test
run: go test -v ./... -count=1
env:
CC: clang
CXX: clang++
python-integration-test:
needs: build
name: Python Integration Test
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: setup docker buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
- name: build docker image
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
with:
context: .
load: true
tags: bigquery-emulator:test
platforms: linux/amd64
push: false
- name: setup python
uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
with:
python-version-file: test/python/.python-version
- name: install uv
uses: astral-sh/setup-uv@d4b2f3b6ecc6e67c4457f6d3e41ec42d3d0fcb86 # v5
- name: cache uv dependencies
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: ~/.cache/uv
key: ${{ runner.os }}-uv-${{ hashFiles('test/python/uv.lock') }}
restore-keys: |
${{ runner.os }}-uv-
- name: sync dependencies
run: uv sync
working-directory: test/python
- name: run integration tests
run: uv run pytest -v
working-directory: test/python
env:
BIGQUERY_EMULATOR_REPOSITORY: bigquery-emulator
BIGQUERY_EMULATOR_VERSION: test
node-integration-test:
needs: build
name: Node.js Integration Test
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- name: setup docker buildx
uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f # v3
- name: build docker image
uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 # v6
with:
context: .
load: true
tags: bigquery-emulator:test
platforms: linux/amd64
push: false
- name: setup node
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '24'
- name: enable corepack
run: corepack enable
- name: cache yarn dependencies
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
path: test/node/.yarn/cache
key: ${{ runner.os }}-yarn-${{ hashFiles('test/node/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: install dependencies
run: yarn install --immutable
working-directory: test/node
- name: run integration tests
run: yarn test
working-directory: test/node
env:
BIGQUERY_EMULATOR_REPOSITORY: bigquery-emulator
BIGQUERY_EMULATOR_VERSION: test