mirror of
https://github.com/google/go-jsonnet.git
synced 2026-04-10 07:51:00 +02:00
For GitHub first party actions (actions from the github.com/actions organisation) we just use a major version tag. For actions from any other source we pin to an exact commit SHA1 (and put the version in a comment)
122 lines
3.5 KiB
YAML
122 lines
3.5 KiB
YAML
name: ci
|
|
on:
|
|
pull_request:
|
|
types: [opened, reopened, synchronize, ready_for_review, review_requested]
|
|
branches:
|
|
- master
|
|
push:
|
|
branches:
|
|
- master
|
|
- prepare-release
|
|
# Support triggering the CI workflow manually.
|
|
workflow_dispatch:
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
test:
|
|
name: Test go${{ matrix.goVersion}}.x ${{ matrix.goArch }}
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
include:
|
|
- goVersion: "1"
|
|
GOARCH: "amd64"
|
|
SKIP_PYTHON_BINDINGS_TESTS: "0"
|
|
# - goVersion: "1"
|
|
# GOARCH: "arm64"
|
|
# SKIP_PYTHON_BINDINGS_TESTS: "0"
|
|
# - goVersion: "1"
|
|
# GOARCH: "386"
|
|
# SKIP_PYTHON_BINDINGS_TESTS: "1"
|
|
# - goVersion: "1"
|
|
# GOARCH: "ppc64le"
|
|
# SKIP_PYTHON_BINDINGS_TESTS: "0"
|
|
- goVersion: "1.24"
|
|
GOARCH: "amd64"
|
|
SKIP_PYTHON_BINDINGS_TESTS: "0"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/setup-go@v6
|
|
with:
|
|
go-version: ${{ matrix.goVersion }}
|
|
- run: sudo apt install python3-dev python3-setuptools
|
|
- run: pip install -U wheel
|
|
- run: pip install -U pytest setuptools
|
|
- run: make install.dependencies
|
|
- run: make test
|
|
env:
|
|
GOARCH: ${{ matrix.GOARCH }}
|
|
CGO_ENABLED: "1"
|
|
SKIP_PYTHON_BINDINGS_TESTS: ${{ matrix.SKIP_PYTHON_BINDINGS_TESTS }}
|
|
|
|
bazel:
|
|
name: bazel test
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
~/.cache/bazel
|
|
~/.cache/bazelisk
|
|
key: ${{ runner.os }}-bazel-cache
|
|
- run: bazelisk build --lockfile_mode=error //...
|
|
- run: bazelisk test --lockfile_mode=error //...
|
|
|
|
bazel_module_example:
|
|
name: bazel module example test
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
fail-fast: false
|
|
matrix:
|
|
bazel_version: ["7.*", "8.*", "9.*"]
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: actions/cache@v5
|
|
with:
|
|
path: |
|
|
~/.cache/bazel
|
|
~/.cache/bazelisk
|
|
key: ${{ runner.os }}-bazel-cache
|
|
- name: Build
|
|
env:
|
|
USE_BAZEL_VERSION: ${{ matrix.bazel_version }}
|
|
run: |
|
|
# We leave the lockfile off for this. lockfile_mode=off is also
|
|
# set in the .bazelrc in the examples/bazel/ directory.
|
|
# The example directly references the local jsonnet_go module from
|
|
# its parent directory, so the hash will change on almost every
|
|
# commit anyway.
|
|
cd examples/bazel && bazelisk build --lockfile_mode=off //...
|
|
|
|
all:
|
|
name: Check all
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- run: sudo apt install python3-dev python3-setuptools
|
|
- run: pip install -U wheel
|
|
- run: pip install -U pytest setuptools
|
|
- run: make all
|
|
- name: Install goveralls
|
|
run: |
|
|
export GOPATH=$GITHUB_WORKSPACE
|
|
go install github.com/mattn/goveralls@v0.0.12
|
|
- name: Send coverage
|
|
env:
|
|
COVERALLS_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
run: |
|
|
./bin/goveralls -coverprofile=coverage.out -service=github
|
|
|
|
goreleaser:
|
|
name: Goreleaser
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v6
|
|
- uses: goreleaser/goreleaser-action@ec59f474b9834571250b370d4735c50f8e2d1e29 # v7.0.0
|
|
with:
|
|
args: release --snapshot --skip=publish --clean
|