This repository has been archived by the owner on Jun 22, 2024. It is now read-only.
forked from SeleniumHQ/docker-selenium
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
106 changed files
with
2,279 additions
and
765 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,21 +9,20 @@ permissions: | |
|
||
jobs: | ||
build-and-test: | ||
# Skip job based on the commit message, only works in push to branches for now | ||
if: contains(toJson(github.event.commits), '[skip ci]') == false | ||
name: Build & test Docker images with random user | ||
runs-on: ubuntu-20.04 | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
use-random-user: [false, true] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Output Docker info | ||
run: docker info | ||
- name: Set up Python 3.8 | ||
uses: actions/setup-python@v4.7.0 | ||
- name: Set up Python | ||
uses: actions/setup-python@v5.0.0 | ||
with: | ||
python-version: 3.8 | ||
python-version: '3.11' | ||
check-latest: true | ||
- name: Get branch name (only for push to branch) | ||
if: github.event_name == 'push' | ||
run: echo "BRANCH=$(echo ${PUSH_BRANCH##*/})" >> $GITHUB_ENV | ||
|
@@ -41,7 +40,11 @@ jobs: | |
- name: Build Docker images | ||
run: VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build | ||
- name: Test Docker images | ||
run: USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test | ||
uses: nick-invision/[email protected] | ||
with: | ||
timeout_minutes: 20 | ||
max_attempts: 3 | ||
command: | | ||
USE_RANDOM_USER_ID=${USE_RANDOM_USER} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make test | ||
env: | ||
USE_RANDOM_USER: ${{ matrix.use-random-user }} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -10,7 +10,7 @@ jobs: | |
# Only continue if the commit message has '[deploy]' in it | ||
if: contains(toJson(github.event.commits), '[deploy]') == true | ||
name: Deploy Docker images | ||
runs-on: ubuntu-20.04 | ||
runs-on: ubuntu-latest | ||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
|
@@ -51,25 +51,25 @@ jobs: | |
DOCKER_USERNAME: ${{secrets.DOCKER_USERNAME}} | ||
DOCKER_PASSWORD: ${{secrets.DOCKER_PASSWORD}} | ||
- name: Deploy new images | ||
uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 | ||
uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 | ||
with: | ||
timeout_minutes: 20 | ||
max_attempts: 3 | ||
command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make release | ||
- name: Tag images as latest | ||
uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 | ||
uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 | ||
with: | ||
timeout_minutes: 20 | ||
max_attempts: 3 | ||
command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make tag_latest | ||
- name: Deploy latest tag | ||
uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 | ||
uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 | ||
with: | ||
timeout_minutes: 20 | ||
max_attempts: 3 | ||
command: VERSION="${GRID_VERSION}" BUILD_DATE=${BUILD_DATE} make release_latest | ||
- name: Tag browser images | ||
uses: nick-invision/retry@943e742917ac94714d2f408a0e8320f2d1fcafcd # v2 | ||
uses: nick-invision/retry@14672906e672a08bd6eeb15720e9ed3ce869cdd4 # v2 | ||
with: | ||
timeout_minutes: 20 | ||
max_attempts: 3 | ||
|
@@ -78,9 +78,9 @@ jobs: | |
run: | | ||
git config --local user.email "[email protected]" | ||
git config --local user.name "Selenium CI Bot" | ||
git commit -m "Update tag in docs and files [skip ci]" -a | ||
git commit -m "Update tag in docs and files" -a | ||
- name: Push changes | ||
uses: ad-m/github-push-action@40bf560936a8022e68a3c00e7d2abefaf01305a6 # master | ||
uses: ad-m/github-push-action@d91a481090679876dfc4178fef17f286781251df # master | ||
with: | ||
github_token: ${{ secrets.SELENIUM_CI_TOKEN }} | ||
branch: trunk | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,6 +6,7 @@ on: | |
- trunk | ||
paths: | ||
- 'charts/selenium-grid/Chart.yaml' | ||
workflow_dispatch: | ||
|
||
jobs: | ||
release: | ||
|
@@ -23,6 +24,6 @@ jobs: | |
git config user.email "[email protected]" | ||
- name: Run chart-releaser | ||
uses: helm/chart-releaser-action@v1.5.0 | ||
uses: helm/chart-releaser-action@v1.6.0 | ||
env: | ||
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
name: Lint and Test Helm Charts | ||
|
||
on: | ||
push: | ||
pull_request: | ||
workflow_dispatch: | ||
|
||
permissions: | ||
contents: read | ||
|
||
jobs: | ||
build-and-test: | ||
name: Test Helm charts | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
test-strategy: [chart_test, chart_test_parallel_autoscaling] | ||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Output Docker info | ||
run: docker info | ||
- name: Set up Python | ||
uses: actions/[email protected] | ||
with: | ||
python-version: '3.11' | ||
check-latest: true | ||
- name: Get branch name (only for push to branch) | ||
if: github.event_name == 'push' | ||
run: echo "BRANCH=$(echo ${PUSH_BRANCH##*/})" >> $GITHUB_ENV | ||
env: | ||
PUSH_BRANCH: ${{ github.ref }} | ||
- name: Get target branch name (only for PRs) | ||
if: github.event_name == 'pull_request' | ||
run: echo "BRANCH=$(echo ${TARGET_BRANCH##*/})" >> $GITHUB_ENV | ||
env: | ||
TARGET_BRANCH: ${{ github.head_ref }} | ||
- name: Output branch name | ||
run: echo ${BRANCH} | ||
- name: Sets build date | ||
run: | | ||
echo "BUILD_DATE=$(date '+%Y%m%d')" >> $GITHUB_ENV | ||
echo "IMAGE_REGISTRY=artifactory/selenium" >> $GITHUB_ENV | ||
- name: Setup Kubernetes environment | ||
run: make chart_setup_env | ||
- name: Build Docker images | ||
run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make build | ||
- name: Build and lint charts | ||
run: | | ||
BUILD_DATE=${BUILD_DATE} make chart_build | ||
echo "CHART_PACKAGE_PATH=$(cat /tmp/selenium_chart_version)" >> $GITHUB_ENV | ||
echo "CHART_FILE_NAME=$(basename $(cat /tmp/selenium_chart_version))" >> $GITHUB_ENV | ||
- name: Setup Kubernetes cluster | ||
run: NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make chart_cluster_setup | ||
- name: Test Selenium Grid on Kubernetes | ||
uses: nick-invision/[email protected] | ||
with: | ||
timeout_minutes: 30 | ||
max_attempts: 3 | ||
command: | | ||
NAME=${IMAGE_REGISTRY} VERSION=${BRANCH} BUILD_DATE=${BUILD_DATE} make ${{ matrix.test-strategy }} | ||
- name: Cleanup Kubernetes cluster | ||
if: always() | ||
run: make chart_cluster_cleanup | ||
- name: Upload Helm chart package | ||
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: ${{ env.CHART_FILE_NAME }} | ||
path: ${{ env.CHART_PACKAGE_PATH }} | ||
- name: Upload Helm chart template rendered | ||
if: always() | ||
uses: actions/upload-artifact@v3 | ||
with: | ||
name: chart_template_rendered.yaml | ||
path: ./tests/tests/output_deployment.yaml | ||
if-no-files-found: ignore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -147,4 +147,6 @@ ENV/ | |
|
||
# End of https://www.gitignore.io/api/python | ||
.DS_Store | ||
|
||
/charts/*/charts | ||
/charts/*/**.lock | ||
/charts/*.tgz |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,13 +8,14 @@ | |
FROM debian:bullseye | ||
LABEL authors="Selenium <[email protected]>" | ||
|
||
ARG VERSION | ||
ARG RELEASE=selenium-${VERSION} | ||
#================================================ | ||
# Customize sources for apt-get | ||
#================================================ | ||
#RUN echo "deb http://archive.ubuntu.com/ubuntu focal main universe\n" > /etc/apt/sources.list \ | ||
# && echo "deb http://archive.ubuntu.com/ubuntu focal-updates main universe\n" >> /etc/apt/sources.list \ | ||
# && echo "deb http://security.ubuntu.com/ubuntu focal-security main universe\n" >> /etc/apt/sources.list | ||
|
||
#RUN echo "deb http://archive.ubuntu.com/ubuntu jammy main universe\n" > /etc/apt/sources.list \ | ||
# && echo "deb http://archive.ubuntu.com/ubuntu jammy-updates main universe\n" >> /etc/apt/sources.list \ | ||
# && echo "deb http://security.ubuntu.com/ubuntu jammy-security main universe\n" >> /etc/apt/sources.list | ||
ARG TARGETARCH | ||
ARG TARGETVARIANT | ||
|
||
|
@@ -59,8 +60,9 @@ RUN if [ $TARGETARCH = "arm" ] && [ $TARGETVARIANT = "v7" ]; then \ | |
# Possible alternative: https://github.com/docker/docker/issues/3359#issuecomment-32150214 | ||
#=================== | ||
ENV TZ "UTC" | ||
RUN echo "${TZ}" > /etc/timezone \ | ||
&& dpkg-reconfigure --frontend noninteractive tzdata | ||
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && \ | ||
dpkg-reconfigure -f noninteractive tzdata && \ | ||
cat /etc/timezone | ||
|
||
#======================================== | ||
# Add normal user and group with passwordless sudo | ||
|
@@ -93,10 +95,8 @@ COPY supervisord.conf /etc | |
RUN mkdir -p /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ | ||
&& touch /opt/selenium/config.toml \ | ||
&& chmod -R 777 /opt/selenium /opt/selenium/assets /var/run/supervisor /var/log/supervisor /etc/passwd \ | ||
&& wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/selenium-4.10.0/selenium-server-4.10.0.jar \ | ||
&& wget --no-verbose https://github.com/SeleniumHQ/selenium/releases/download/${RELEASE}/selenium-server-${VERSION}.jar \ | ||
-O /opt/selenium/selenium-server.jar \ | ||
&& wget --no-verbose https://repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-http-jdk-client/4.10.0/selenium-http-jdk-client-4.10.0.jar \ | ||
-O /opt/selenium/selenium-http-jdk-client.jar \ | ||
&& chgrp -R 0 /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ | ||
&& chmod -R g=u /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor \ | ||
&& setfacl -Rm u:seluser:rwx /opt /opt/selenium ${HOME} /opt/selenium/assets /var/run/supervisor /var/log/supervisor | ||
|
@@ -114,11 +114,15 @@ RUN if [ `arch` = "aarch64" ]; then \ | |
&& chmod -R 775 /external_jars ; \ | ||
fi | ||
|
||
RUN if [ -f "/tmp/cs" ]; then \ | ||
/tmp/cs fetch --classpath --cache /external_jars io.opentelemetry:opentelemetry-exporter-otlp:1.28.0 io.opentelemetry:opentelemetry-exporter-jaeger:1.28.0 io.grpc:grpc-netty:1.57.1 > /external_jars/.classpath.txt ; \ | ||
RUN if [ -f "/tmp/cs" ]; then \ | ||
/tmp/cs fetch --classpath --cache /external_jars \ | ||
io.opentelemetry:opentelemetry-exporter-otlp:1.31.0 \ | ||
io.opentelemetry:opentelemetry-exporter-jaeger:1.31.0 \ | ||
io.grpc:grpc-netty:1.59.0 > /external_jars/.classpath.txt ; \ | ||
fi | ||
|
||
RUN if [ -f "/tmp/cs" ]; then chmod 664 /external_jars/.classpath.txt ; fi | ||
RUN rm -fr /root/.cache/* | ||
|
||
#=================================================== | ||
# Run the following commands as non-privileged user | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.