
Pin the Github Action dependencies to the hash according to secure software development best practices recommended by the Open Source Security Foundation (OpenSSF). When developing a CI workflow, it's common to version-pin dependencies (i.e. actions/checkout@v4). However, version tags are mutable, so a malicious attacker could overwrite a version tag to point to a malicious or vulnerable commit instead. Pinning workflow dependencies by hash ensures the dependency is immutable and its behavior is guaranteed. See https://github.com/ossf/scorecard/blob/main/docs/checks.md#pinned-dependencies The `dependabot` supports updating a hash and the version comment so its update will continue to work as before. Links to used actions and theit tag/hash for review/validation: https://github.com/actions/checkout/tags (v4.1.2 was rolled back) https://github.com/github/codeql-action/tags https://github.com/maxim-lobanov/setup-xcode/tags https://github.com/cross-platform-actions/action/releases/tag/v0.22.0 https://github.com/py-actions/py-dependency-install/tags https://github.com/actions/upload-artifact/tags https://github.com/actions/setup-node/tags https://github.com/taiki-e/install-action/releases/tag/v2.32.2 This PR is part of #211. Signed-off-by: Björn Svensson <bjorn.a.svensson@est.tech>
97 lines
2.9 KiB
YAML
97 lines
2.9 KiB
YAML
name: CI
|
|
|
|
on: [push, pull_request]
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
|
|
test-ubuntu-latest:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: make
|
|
# Fail build if there are warnings
|
|
# build with TLS just for compilation coverage
|
|
run: make all-with-unit-tests SERVER_CFLAGS='-Werror' BUILD_TLS=yes
|
|
- name: test
|
|
run: |
|
|
sudo apt-get install tcl8.6 tclx
|
|
./runtest --verbose --tags -slow --dump-logs
|
|
- name: module api test
|
|
run: CFLAGS='-Werror' ./runtest-moduleapi --verbose --dump-logs
|
|
- name: validate commands.def up to date
|
|
run: |
|
|
touch src/commands/ping.json
|
|
make commands.def
|
|
dirty=$(git diff)
|
|
if [[ ! -z $dirty ]]; then echo $dirty; exit 1; fi
|
|
- name: unit tests
|
|
run: |
|
|
./src/valkey-unit-tests
|
|
|
|
test-sanitizer-address:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: make
|
|
# build with TLS module just for compilation coverage
|
|
run: make SANITIZER=address SERVER_CFLAGS='-Werror -DDEBUG_ASSERTIONS' BUILD_TLS=module
|
|
- name: testprep
|
|
# Work around ASAN issue, see https://github.com/google/sanitizers/issues/1716
|
|
run: |
|
|
sudo apt-get install tcl8.6 tclx -y
|
|
sudo sysctl vm.mmap_rnd_bits=28
|
|
- name: test
|
|
run: ./runtest --verbose --tags -slow --dump-logs
|
|
- name: module api test
|
|
run: CFLAGS='-Werror' ./runtest-moduleapi --verbose --dump-logs
|
|
|
|
build-debian-old:
|
|
runs-on: ubuntu-latest
|
|
container: debian:buster
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: make
|
|
run: |
|
|
apt-get update && apt-get install -y build-essential
|
|
make SERVER_CFLAGS='-Werror'
|
|
|
|
build-macos-latest:
|
|
runs-on: macos-latest
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: make
|
|
run: make SERVER_CFLAGS='-Werror'
|
|
|
|
build-32bit:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: make
|
|
run: |
|
|
sudo apt-get update && sudo apt-get install libc6-dev-i386
|
|
make SERVER_CFLAGS='-Werror' 32bit
|
|
|
|
build-libc-malloc:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
- name: make
|
|
run: make SERVER_CFLAGS='-Werror' MALLOC=libc
|
|
|
|
build-centos7-jemalloc:
|
|
runs-on: ubuntu-latest
|
|
container: centos:7
|
|
steps:
|
|
# on centos7, actions/checkout@v4 does not work, so we use v3
|
|
# ref. https://github.com/actions/checkout/issues/1487
|
|
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
|
|
|
|
- name: make
|
|
run: |
|
|
yum -y install gcc make
|
|
make SERVER_CFLAGS='-Werror'
|
|
|