Skip to content

Commit feeb110

Browse files
committed
Migrate integration omnibus
1 parent 1928549 commit feeb110

File tree

5 files changed

+477
-518
lines changed

5 files changed

+477
-518
lines changed

.github/actions/codebuild-docker-run/action.yml

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2+
# SPDX-License-Identifier: Apache-2.0 OR ISC
3+
14
name: 'codebuild-docker-run'
2-
description: 'Run one or more commands inside a docker container'
5+
description: 'Run one or more commands inside a docker container within a CodeBuild environment'
36
inputs:
47
image:
58
description: 'Docker image to pull'
@@ -18,6 +21,18 @@ inputs:
1821
description: 'Environment variables to set or pass to the container'
1922
required: false
2023
default: ''
24+
ipv6:
25+
description: 'Enables IPv6 networking in the container. Implies --privileged'
26+
required: false
27+
default: false
28+
withCredentials:
29+
description: 'Whether to passthru the CodeBuild credentials'
30+
required: false
31+
default: false
32+
user:
33+
description: 'Run the docker container as a non-root user'
34+
required: false
35+
default: ''
2136
runs:
2237
using: 'composite'
2338
steps:
@@ -29,4 +44,7 @@ runs:
2944
INPUT_RUN: ${{ inputs.run }}
3045
INPUT_SHELL: ${{ inputs.shell }}
3146
INPUT_ENV: ${{ inputs.env }}
47+
INPUT_IPV6: ${{ inputs.ipv6 }}
48+
INPUT_WITH_CREDENTIALS: ${{ inputs.withCredentials }}
49+
INPUT_USER: ${{ inputs.user }}
3250
run: ${{ github.action_path }}/codebuild-docker-run.sh

.github/actions/codebuild-docker-run/codebuild-docker-run.sh

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#!/usr/bin/env bash
2+
# Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
# SPDX-License-Identifier: Apache-2.0 OR ISC
24

35
set -ex
46

@@ -47,11 +49,38 @@ parse_env_vars() {
4749
# Parse environment variables from INPUT_ENV
4850
ENV_FLAGS=$(parse_env_vars "$INPUT_ENV")
4951

52+
DOCKER_OPTIONS="${INPUT_OPTIONS:-}"
53+
if [[ "${INPUT_IPV6}" == "true" && ! "${DOCKER_OPTIONS}" =~ --privileged ]]; then
54+
DOCKER_OPTIONS="$DOCKER_OPTIONS --privileged"
55+
fi
56+
57+
if [[ "${INPUT_USER}z" != "z" && ! "${DOCKER_OPTIONS}" =~ --user ]]; then
58+
DOCKER_OPTIONS="$DOCKER_OPTIONS --user ${INPUT_USER}"
59+
fi
60+
61+
if [[ "${INPUT_WITH_CREDENTIALS}" == true &&
62+
! "${ENV_FLAGS}" =~ ECS_CONTAINER_METADATA_URI_V4 &&
63+
! "${ENV_FLAGS}" =~ AWS_CONTAINER_CREDENTIALS_RELATIVE_URI ]]; then
64+
ENV_FLAGS="${ENV_FLAGS} -e ECS_CONTAINER_METADATA_URI_V4 -e AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"
65+
fi
66+
5067
exec docker run -v /var/run/docker.sock:/var/run/docker.sock \
5168
-v ${GITHUB_WORKSPACE}:${GITHUB_WORKSPACE} \
5269
-w ${GITHUB_WORKSPACE} \
53-
${INPUT_OPTIONS:-} \
70+
${DOCKER_OPTIONS} \
5471
-e GOPROXY \
72+
-e AWS_DEFAULT_REGION \
73+
-e AWS_REGION \
5574
${ENV_FLAGS} \
5675
--entrypoint=${INPUT_SHELL} ${INPUT_IMAGE} \
57-
-c "${INPUT_RUN//$'\n'/;}"
76+
-c "cat > /tmp/actions-run.sh << 'EOF' && chmod +x /tmp/actions-run.sh && /tmp/actions-run.sh
77+
set -ex
78+
if [[ \"${INPUT_USER}z\" != \"z\" ]]; then
79+
chown -R ${INPUT_USER}:${INPUT_USER} ${GITHUB_WORKSPACE}
80+
fi
81+
if [[ \"${INPUT_IPV6}\" == \"true\" ]]; then
82+
sysctl -w net.ipv6.conf.all.disable_ipv6=0
83+
fi
84+
${INPUT_RUN}
85+
EOF
86+
"

0 commit comments

Comments
 (0)