--- /dev/null
+#!/bin/sh
+#
+# Look up specified version of Github Actions an pin to that specific
+# revision.
+#
+
+set -e
+
+github=https://github.com
+
+for workflow in workflows/*.yml; do
+ echo workflow: $workflow
+ sed 's/ - / /' ${workflow} | grep -v '^#' | awk '/uses:/ {print}' | \
+ while read line; do
+ action_ver=$(awk '{print $2}' <<<${line})
+ action=$(cut -f1 -d@ <<<${action_ver})
+ ver=$(cut -f2 -d@ <<<${action_ver})
+ intendedver=$(awk '{print $4}' <<<${line})
+ if [ -z "${intendedver}" ]; then
+ intendedver=${ver}
+ fi
+ case "${action}" in
+ google/oss-fuzz/*) actiondir=google/oss-fuzz ;;
+ *) actiondir="${action}" ;;
+ esac
+ if [ ! -d /tmp/${actiondir} ]; then
+ git clone ${github}/${actiondir} /tmp/${actiondir}
+ fi
+ hash=$(cd /tmp/${actiondir} && git rev-parse ${intendedver})
+ sed -i -e "s|uses: ${action}@.*|uses: ${action}@${hash} # ${intendedver}|" \
+ ${workflow}
+ done
+done
steps:
- name: Build Fuzzers
id: build
- uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@master
+ uses: google/oss-fuzz/infra/cifuzz/actions/build_fuzzers@b1836d5aed2e5aaae7f618ddd40bbcc477119825 # master
with:
oss-fuzz-project-name: 'openssh'
dry-run: false
language: c++
- name: Run Fuzzers
- uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@master
+ uses: google/oss-fuzz/infra/cifuzz/actions/run_fuzzers@b1836d5aed2e5aaae7f618ddd40bbcc477119825 # master
with:
oss-fuzz-project-name: 'openssh'
fuzz-seconds: 600
dry-run: false
language: c++
- name: Upload Crash
- uses: actions/upload-artifact@main
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # main
if: failure() && steps.build.outcome == 'success'
with:
name: artifacts
- name: shutdown VM if running
if: env.VM == 'true'
run: vmshutdown
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: autoreconf
- name: startup VM
- name: configure
run: vmrun ./.github/configure.sh ${{ matrix.config }}
# - name: save config
-# uses: actions/upload-artifact@main
+# uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # main
# with:
# name: ${{ matrix.target }}-${{ matrix.config }}-config
# path: config.h
run: vmrun 'for i in regress/failed*.log; do echo ====; echo logfile $i; echo =====; cat $i; done'
- name: save logs
if: failure()
- uses: actions/upload-artifact@main
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # main
with:
name: ${{ matrix.target }}-${{ matrix.config }}-logs
path: |
- name: bigendian interop - save logs
if: failure() && env.BIGENDIAN == 'true'
- uses: actions/upload-artifact@main
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # main
with:
name: ${{ matrix.target }}-${{ matrix.config }}-interop-logs
path: |
config: [default]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: sh -c autoreconf
- name: start DragonFlyBSD ${{ matrix.target }} VM
- uses: vmactions/dragonflybsd-vm@v1
+ uses: vmactions/dragonflybsd-vm@4ba8127bd95c94b66fc4b885e37c99955ba308ea # v1
with:
release: ${{ matrix.target }}
usesh: true
config: [default]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: sh -c autoreconf
- name: start FreeBSD ${{ matrix.target }} VM
- uses: vmactions/freebsd-vm@v1
+ uses: vmactions/freebsd-vm@b84ab5559b5a1bb4b8ee2737d2506a16e1737636 # v1
with:
release: ${{ matrix.target }}
usesh: true
config: [default]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: sh -c autoreconf
- name: start NetBSD ${{ matrix.target }} VM
- uses: vmactions/netbsd-vm@v1
+ uses: vmactions/netbsd-vm@99816dccf75edf233ed6cd00a159e3a5b85ea373 # v1
with:
release: ${{ matrix.target }}
usesh: true
config: [default]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: sh -c autoreconf
- name: start OmniOS ${{ matrix.target }} VM
- uses: vmactions/omnios-vm@v1
+ uses: vmactions/omnios-vm@7f2be0b927aad1a78498c8aeeac4c4ce1fabd322 # v1
with:
release: ${{ matrix.target }}
usesh: true
config: [default]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: sh -c autoreconf
- name: start OpenBSD ${{ matrix.target }} VM
- uses: vmactions/openbsd-vm@v1
+ uses: vmactions/openbsd-vm@18edb32f4e48dae5865d7b8b3a9587bc01218a20 # v1
with:
release: ${{ matrix.target }}
usesh: true
runs-on: ubuntu-latest
steps:
- name: start OpenBSD VM
- uses: vmactions/openbsd-vm@v1
+ uses: vmactions/openbsd-vm@18edb32f4e48dae5865d7b8b3a9587bc01218a20 # v1
with:
copyback: false
nat: |
echo "SNAPSHOT_VERSION=${ver}" >> $GITHUB_ENV
- name: check for cached sysupgrade
id: cache-sysupgrade
- uses: actions/cache@v4
+ uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
key: openbsd-sysupgrade ${{ env.SNAPSHOT_VERSION }}
path: /tmp/_sysupgrade/
rsync -av openbsd:/home/_sysupgrade/ /tmp/_sysupgrade/
- name: save sysupgrade to cache
if: steps.cache-sysupgrade.outputs.cache-hit != 'true'
- uses: actions/cache/save@v4
+ uses: actions/cache/save@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
with:
key: openbsd-sysupgrade ${{ env.SNAPSHOT_VERSION }}
path: /tmp/_sysupgrade/
for i in regress-logs/failed*.log; do echo ===; echo LOGFILE: $i; echo ===; cat $i; echo; done
- name: save logs
if: failure()
- uses: actions/upload-artifact@main
+ uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # main
with:
name: openbsd-current-upstream-logs
path: regress-logs/*.log
config: [default]
runs-on: ubuntu-latest
steps:
- - uses: actions/checkout@main
+ - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # main
- name: autoreconf
run: sh -c autoreconf
- name: start Solaris ${{ matrix.target }} VM
- uses: vmactions/solaris-vm@v1
+ uses: vmactions/solaris-vm@d30dd6c228c8661ade859e36ead7660b9a62efcc # v1
with:
release: ${{ matrix.target }}
usesh: true