Build Docker images for Ubuntu 18.04 and 20.04

This commit is contained in:
Shaun Jackman 2020-04-27 22:37:35 -07:00
parent 3247f26a34
commit 5052f49f40
5 changed files with 51 additions and 24 deletions

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
Library/Homebrew/vendor/portable-ruby
Library/Taps

31
.github/workflows/docker.yml vendored Normal file
View File

@ -0,0 +1,31 @@
name: Docker
on:
pull_request:
paths:
- .github/workflows/docker.yml
- Dockerfile
release:
types:
- published
jobs:
ubuntu:
runs-on: ubuntu-latest
strategy:
matrix:
version: ["18.04", "20.04"]
steps:
- name: Checkout
uses: actions/checkout@master
with:
fetch-depth: 0
- name: Build Docker image
run: docker build -t brew --build-arg=version=${{matrix.version}} .
- name: Run brew test-bot
run: docker run --rm brew brew test-bot
- name: Deploy the tagged Docker image to GitHub
if: startsWith(github.ref, 'refs/tags/')
run: |
docker login docker.pkg.github.com -u BrewTestBot -p ${{secrets.GITHUB_TOKEN}}
v=${GITHUB_REF:10}
docker tag brew "docker.pkg.github.com/homebrew/brew/ubuntu${{matrix.version}}:$v"
docker push "docker.pkg.github.com/homebrew/brew/ubuntu${{matrix.version}}:$v"

View File

@ -187,14 +187,14 @@ jobs:
brew test-bot brew test-bot
fi fi
- name: Deploy the latest Docker image - name: Deploy the latest Docker image to GitHub
if: matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/master' if: matrix.os == 'ubuntu-latest' && github.ref == 'refs/heads/master'
run: | run: |
docker login docker.pkg.github.com -u BrewTestBot -p ${{secrets.GITHUB_TOKEN}} docker login docker.pkg.github.com -u BrewTestBot -p ${{secrets.GITHUB_TOKEN}}
docker tag brew docker.pkg.github.com/homebrew/brew/brew docker tag brew docker.pkg.github.com/homebrew/brew/brew
docker push docker.pkg.github.com/homebrew/brew/brew docker push docker.pkg.github.com/homebrew/brew/brew
- name: Deploy the tagged Docker image - name: Deploy the tagged Docker image to GitHub
if: matrix.os == 'ubuntu-latest' && startsWith(github.ref, 'refs/tags/') if: matrix.os == 'ubuntu-latest' && startsWith(github.ref, 'refs/tags/')
run: | run: |
docker login docker.pkg.github.com -u BrewTestBot -p ${{secrets.GITHUB_TOKEN}} docker login docker.pkg.github.com -u BrewTestBot -p ${{secrets.GITHUB_TOKEN}}

1
.gitignore vendored
View File

@ -151,6 +151,7 @@
/docs/vendor /docs/vendor
# Unignore our root-level metadata files. # Unignore our root-level metadata files.
!/.dockerignore
!/.editorconfig !/.editorconfig
!/.gitignore !/.gitignore
!/.yardopts !/.yardopts

View File

@ -1,11 +1,9 @@
FROM ubuntu:xenial ARG version=16.04
LABEL maintainer="Shaun Jackman <sjackman@gmail.com>" FROM ubuntu:$version
ARG DEBIAN_FRONTEND=noninteractive
# hadolint ignore=DL3008 # hadolint ignore=DL3008
RUN apt-get update \ RUN apt-get update \
&& apt-get install -y --no-install-recommends software-properties-common \
&& add-apt-repository -y ppa:git-core/ppa \
&& apt-get update \
&& apt-get install -y --no-install-recommends \ && apt-get install -y --no-install-recommends \
bzip2 \ bzip2 \
ca-certificates \ ca-certificates \
@ -14,6 +12,7 @@ RUN apt-get update \
fonts-dejavu-core \ fonts-dejavu-core \
g++ \ g++ \
git \ git \
less \
libz-dev \ libz-dev \
locales \ locales \
make \ make \
@ -23,29 +22,23 @@ RUN apt-get update \
sudo \ sudo \
uuid-runtime \ uuid-runtime \
tzdata \ tzdata \
&& rm -rf /var/lib/apt/lists/* && rm -rf /var/lib/apt/lists/* \
&& localedef -i en_US -f UTF-8 en_US.UTF-8 \
RUN localedef -i en_US -f UTF-8 en_US.UTF-8 \
&& useradd -m -s /bin/bash linuxbrew \ && useradd -m -s /bin/bash linuxbrew \
&& echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers && echo 'linuxbrew ALL=(ALL) NOPASSWD:ALL' >>/etc/sudoers
COPY . /home/linuxbrew/.linuxbrew/Homebrew COPY . /home/linuxbrew/.linuxbrew/Homebrew
ARG FORCE_REBUILD ENV PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH
WORKDIR /home/linuxbrew
# hadolint ignore=DL3003 # hadolint ignore=DL3003
RUN cd /home/linuxbrew/.linuxbrew \ RUN cd /home/linuxbrew/.linuxbrew \
&& mkdir -p bin etc include lib opt sbin share var/homebrew/linked Cellar \ && mkdir -p bin etc include lib opt sbin share var/homebrew/linked Cellar \
&& ln -s ../Homebrew/bin/brew /home/linuxbrew/.linuxbrew/bin/ \ && ln -s ../Homebrew/bin/brew /home/linuxbrew/.linuxbrew/bin/ \
&& cd /home/linuxbrew/.linuxbrew/Homebrew \ && git -C /home/linuxbrew/.linuxbrew/Homebrew remote set-url origin https://github.com/Homebrew/brew \
&& git remote set-url origin https://github.com/Homebrew/brew && HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_AUTO_UPDATE=1 brew tap homebrew/core \
WORKDIR /home/linuxbrew
ENV PATH=/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin:$PATH \
SHELL=/bin/bash
# Install portable-ruby, tap homebrew/core, install audit gems, and cleanup
RUN HOMEBREW_NO_ANALYTICS=1 HOMEBREW_NO_AUTO_UPDATE=1 brew tap homebrew/core \
&& chown -R linuxbrew: /home/linuxbrew/.linuxbrew \
&& chmod -R g+w,o-w /home/linuxbrew/.linuxbrew \
&& rm -rf ~/.cache \
&& brew install-bundler-gems \ && brew install-bundler-gems \
&& brew cleanup && brew cleanup \
&& rm -rf ~/.cache \
&& chown -R linuxbrew: /home/linuxbrew/.linuxbrew \
&& chmod -R g+w,o-w /home/linuxbrew/.linuxbrew