mirror of
https://github.com/zeek/zeek.git
synced 2025-10-02 06:38:20 +00:00
github: No more docker workflow
This commit is contained in:
parent
f3eb7cc0c1
commit
f9b0681c98
1 changed files with 0 additions and 195 deletions
195
.github/workflows/docker.yml
vendored
195
.github/workflows/docker.yml
vendored
|
@ -1,195 +0,0 @@
|
|||
name: Check and publish Docker images
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [master]
|
||||
tags:
|
||||
- 'v*'
|
||||
- '!v*-dev'
|
||||
- 'release'
|
||||
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
|
||||
env:
|
||||
IMAGE_NAME: zeek-image.tar
|
||||
IMAGE_FILE: /tmp/zeek-image.tar
|
||||
IMAGE_PATH: /tmp
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
jobs:
|
||||
docker-build:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
TEST_TAG: zeek:latest
|
||||
CONFFLAGS: --generator=Ninja --build-type=Release
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
submodules: "recursive"
|
||||
|
||||
# Create and boot a loader. This will e.g., provide caching
|
||||
# so we avoid rebuilds of the same image after this step.
|
||||
- uses: docker/setup-buildx-action@v2
|
||||
|
||||
- name: Build image
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: ./
|
||||
file: docker/Dockerfile
|
||||
build-args: |
|
||||
CONFFLAGS=${{ env.CONFFLAGS }}
|
||||
load: true
|
||||
tags: ${{ env.TEST_TAG }}
|
||||
|
||||
- name: Run btests
|
||||
run: make -C docker/btest
|
||||
|
||||
- name: Save image tarball
|
||||
run: docker save -o ${{ env.IMAGE_FILE }} ${{ env.TEST_TAG }}
|
||||
|
||||
- name: Get version
|
||||
id: version
|
||||
run: echo "RELEASE_VERSION=$(cat VERSION)" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Compute target tag
|
||||
id: target
|
||||
env:
|
||||
RELEASE_VERSION: ${{ steps.version.outputs.RELEASE_VERSION }}
|
||||
run: |
|
||||
# Translate the GitHub reference into a tag name.
|
||||
#
|
||||
# - `release` tag maps to `zeek:latest`
|
||||
# - `v*` tag (excluding `v*-dev` tags) maps to `zeek:RELEASE_VERSION`
|
||||
# - `master` branch maps to `zeek-dev:latest`
|
||||
#
|
||||
# Any other refs are not published below.
|
||||
if [ "${GITHUB_REF}" = "refs/tags/release" ]; then
|
||||
echo "tag=zeek:latest" >> $GITHUB_OUTPUT
|
||||
elif [ "${GITHUB_REF}" = "refs/heads/master" ]; then
|
||||
echo "tag=zeek-dev:latest" >> $GITHUB_OUTPUT
|
||||
elif [[ "${GITHUB_REF}" = refs/tags/v* ]] && [[ "${GITHUB_REF}" != refs/tags/v*-dev ]]; then
|
||||
echo "tag=zeek:${RELEASE_VERSION}" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Login to ECR
|
||||
# Don't publish on forks. Also note that secrets for the login are not
|
||||
# available for pull requests, so trigger on pushes only.
|
||||
if: github.repository == 'zeek/zeek' && github.event_name == 'push'
|
||||
uses: docker/login-action@v1
|
||||
with:
|
||||
registry: public.ecr.aws
|
||||
username: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
password: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
# Don't publish on forks. Also note that secrets for the login are not
|
||||
# available for pull requests, so trigger on pushes only.
|
||||
if: github.repository == 'zeek/zeek' && github.event_name == 'push'
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Push image
|
||||
# Only publish if we did compute a tag.
|
||||
if: github.repository == 'zeek/zeek' && github.event_name == 'push' && steps.target.outputs.tag != ''
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
context: ./
|
||||
file: docker/Dockerfile
|
||||
build-args: |
|
||||
CONFFLAGS=${{ env.CONFFLAGS }}
|
||||
push: true
|
||||
tags: |
|
||||
public.ecr.aws/zeek/${{ steps.target.outputs.tag }}
|
||||
docker.io/zeekurity/${{ steps.target.outputs.tag }}
|
||||
docker.io/zeek/${{ steps.target.outputs.tag }}
|
||||
|
||||
- name: Preserve image artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ env.IMAGE_NAME }}
|
||||
path: ${{ env.IMAGE_FILE }}
|
||||
retention-days: 1
|
||||
|
||||
- name: Preserve btest artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
if: failure()
|
||||
with:
|
||||
name: docker-btest
|
||||
path: docker/btest/.tmp
|
||||
if-no-files-found: ignore
|
||||
|
||||
cluster-testing:
|
||||
# We need the Zeek Docker image build job to complete first, since we need
|
||||
# the resulting image for our docker-compose setup.
|
||||
needs: docker-build
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Grab the sources so we have access to btest. Could also use pip, but it
|
||||
# seems appealing to be using the in-tree version of btest. btest is in a
|
||||
# submodule; we check it out selectively to save time.
|
||||
- uses: actions/checkout@v3
|
||||
- name: Check out btest
|
||||
run: git submodule update --init ./auxil/btest
|
||||
|
||||
- name: Download Docker image artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: ${{ env.IMAGE_NAME }}
|
||||
path: ${{ env.IMAGE_PATH }}
|
||||
|
||||
- name: Load Docker image
|
||||
run: |
|
||||
docker load --input ${{ env.IMAGE_FILE }}
|
||||
docker tag zeek:latest zeektest:latest
|
||||
|
||||
# The testsuite ref to use for this version of Zeek is stored in a file in
|
||||
# the Zeek source tree.
|
||||
- name: Get testsuite version
|
||||
run: |
|
||||
echo "TESTSUITE_COMMIT=$(cat ./testing/external/commit-hash.zeek-testing-cluster)" >> $GITHUB_ENV
|
||||
|
||||
- name: Retrieve cluster testsuite
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: zeek/zeek-testing-cluster
|
||||
path: testing/external/zeek-testing-cluster
|
||||
ref: ${{ ENV.TESTSUITE_COMMIT }}
|
||||
|
||||
- name: Run testsuite
|
||||
run: make -C testing/external/zeek-testing-cluster
|
||||
|
||||
# upload-artifact balks at certain characters in artifact
|
||||
# filenames, so substitute them for dots.
|
||||
- name: Sanitize artifacts
|
||||
if: failure()
|
||||
run: |
|
||||
sudo apt-get -q update && sudo apt-get install -q -y rename
|
||||
find testing/external/zeek-testing-cluster/.tmp -depth -execdir rename 's/[":<>|*?\r\n]/./g' "{}" \;
|
||||
|
||||
- name: Preserve btest artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
if: failure()
|
||||
with:
|
||||
name: cluster-btest
|
||||
path: testing/external/zeek-testing-cluster/.tmp
|
||||
if-no-files-found: ignore
|
||||
|
||||
# To save storage space, truncate the Docker image artifact
|
||||
# when this run was successful.
|
||||
- name: Truncate Docker image
|
||||
run: |
|
||||
truncate -s0 ${{ env.IMAGE_FILE }}
|
||||
|
||||
- name: Store truncated image artifact
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: ${{ env.IMAGE_NAME }}
|
||||
path: ${{ env.IMAGE_FILE }}
|
||||
retention-days: 1
|
Loading…
Add table
Add a link
Reference in a new issue