Skip to content

Commit

Permalink
Merge ccb1f07 into a7f5917
Browse files Browse the repository at this point in the history
  • Loading branch information
andygabby committed Feb 26, 2021
2 parents a7f5917 + ccb1f07 commit d2a90ba
Show file tree
Hide file tree
Showing 3 changed files with 108 additions and 7 deletions.
100 changes: 100 additions & 0 deletions .github/workflows/boulder-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
# Boulder CI test suite workflow

name: Boulder CI

# Controls when the action will run.
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# Boulder_ci_tests job. This looks like a single job, but the matrix
# items will mulitply it. For example every entry in the
# BOULDER_TOOLS_TAG list will run with every test. If there were two
# tags and 5 tests there would be 10 jobs run.
boulder_ci_tests:
# The type of runner that the job will run on
runs-on: ubuntu-20.04

strategy:
# When set to true, GitHub cancels all in-progress jobs if any matrix job fails. Default: true
fail-fast: false
# Test matrix.
matrix:
# Add additional docker image tags here and all tests will be run with the additional image.
BOULDER_TOOLS_TAG:
- go1.15.7_2021-02-25
# Tests command definitions. Use the entire docker-compose command you want to run.
tests:
# Run ./test.sh --help for a description of each of the flags
- "docker-compose run --use-aliases boulder ./test.sh --lints --generate --rpm"
- "docker-compose run --use-aliases boulder ./test.sh --integration"
# Config changes that have landed in main but not yet been applied to
# production can be made in boulder-config-next.json.
- "docker-compose run --use-aliases boulder ./test.sh --integration --config-next"
- "docker-compose run --use-aliases boulder ./test.sh --unit --enable-race-detection"
- "docker-compose run --use-aliases boulder ./test.sh --unit --enable-race-detection --config-next"
- "docker-compose run --use-aliases boulder ./test.sh --start-py"
# gomod-vendor runs with a separate network access definition
# because it needs to fetch packages from GitHub et. al., which
# is incompatible with the DNS server override in the boulder
# container (used for service discovery).
- "docker-compose run --use-aliases netaccess ./test.sh --gomod-vendor"

# This sets the docker image tag for the boulder-tools repository to
# use in tests. It will be set appropriately for each tag in the list
# defined in the matrix.
env:
BOULDER_TOOLS_TAG: ${{ matrix.BOULDER_TOOLS_TAG }}

# Sequence of tasks that will be executed as part of the job.
steps:
# Checks out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v2

- name: Docker Login
# You may pin to the exact commit or the version.
# uses: docker/login-action@f3364599c6aa293cdc2b8391b1b56d0c30e45c8a
uses: docker/login-action@v1.8.0
with:
# Username used to log against the Docker registry
username: ${{ secrets.DOCKER_USERNAME}}
# Password or personal access token used to log against the Docker registry
password: ${{ secrets.DOCKER_PASSWORD}}
# Log out from the Docker registry at the end of a job
logout: true
continue-on-error: true

# Print the env variable being used to pull the docker image. For
# informational use.
- name: Print BOULDER_TOOLS_TAG
run: echo "Using BOULDER_TOOLS_TAG ${BOULDER_TOOLS_TAG}"

# Pre-pull the docker containers before running the tests.
- name: docker-compose pull
run: docker-compose pull

# Run the test matrix. This will run
- name: "Run Test: ${{ matrix.tests }}"
run: ${{ matrix.tests }}

# This is a utility build job to detect if the status of any of the
# above jobs have failed and fail if so. It is needed so there can be
# one static job name that can be used to determine success of the job
# in GitHub branch protection.
boulder_ci_test_matrix_status:
if: ${{ always() }}
runs-on: ubuntu-latest
name: Boulder CI Test Matrix
needs: boulder_ci_tests
steps:
- name: Check boulder ci test matrix status
if: ${{ needs.boulder_ci_tests.result != 'success' }}
run: exit 1
4 changes: 2 additions & 2 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ version: '3'
services:
boulder:
# To minimize fetching this should be the same version used below
image: letsencrypt/boulder-tools-go${TRAVIS_GO_VERSION:-1.15.7}:2021-02-17
image: letsencrypt/boulder-tools:${BOULDER_TOOLS_TAG:-go1.15.7_2021-02-25}
environment:
- FAKE_DNS=10.77.77.77
- BOULDER_CONFIG_DIR=test/config
Expand Down Expand Up @@ -76,7 +76,7 @@ services:
logging:
driver: none
netaccess:
image: letsencrypt/boulder-tools-go${TRAVIS_GO_VERSION:-1.15.7}:2021-02-17
image: letsencrypt/boulder-tools:${BOULDER_TOOLS_TAG:-go1.15.7_2021-02-25}
environment:
GO111MODULE: "on"
GOFLAGS: "-mod=vendor"
Expand Down
11 changes: 6 additions & 5 deletions test/boulder-tools/tag_and_upload.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,14 @@
cd $(dirname $0)

DATESTAMP=$(date +%Y-%m-%d)
BASE_TAG_NAME="letsencrypt/boulder-tools"
DOCKER_REPO="letsencrypt/boulder-tools"

GO_VERSIONS=( "1.15.7" )

# Build a tagged image for each GO_VERSION
for GO_VERSION in "${GO_VERSIONS[@]}"
do
TAG_NAME="$BASE_TAG_NAME-go$GO_VERSION:$DATESTAMP"
TAG_NAME="$DOCKER_REPO:go${GO_VERSION}_${DATESTAMP}"
echo "Building boulder-tools image $TAG_NAME"

# Build the docker image using the templated Dockerfile, tagging it with
Expand All @@ -26,9 +27,9 @@ docker login
# Upload a tagged image for each GO_VERSION
for GO_VERSION in "${GO_VERSIONS[@]}"
do
TAG_NAME="$BASE_TAG_NAME-go$GO_VERSION:$DATESTAMP"
echo "Pushing $TAG_NAME to Dockerhub"
docker push $TAG_NAME
TAG_NAME="$DOCKER_REPO:go${GO_VERSION}_${DATESTAMP}"
echo "Pushing ${TAG_NAME} to Dockerhub"
docker push ${TAG_NAME}
done

# TODO(@cpu): Figure out a `sed` for updating the date in `docker-compose.yml`'s
Expand Down

0 comments on commit d2a90ba

Please sign in to comment.