Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 25 additions & 20 deletions .github/workflows/on-schedule.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ on:
# every 12 hours
- cron: '0 */12 * * *'


env:
DOCKER_DEFAULT_PLATFORM: linux/amd64

jobs:
check:
runs-on: ubuntu-latest
Expand All @@ -20,12 +24,18 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Install buildx
id: buildx
uses: crazy-max/ghaction-docker-buildx@v1
with:
version: latest

# https://github.com/actions/checkout#Fetch-all-tags
- name: Fetch tags
run: git fetch --depth=1 origin +refs/tags/*:refs/tags/*

- name: Get version
- name: Get version (browser)
id: get_version
run: echo ::set-output name=result::$(make --file ${{ matrix.package }}/Makefile get-version)

Expand All @@ -39,9 +49,19 @@ jobs:
echo version: ${{ steps.get_version.outputs.result }}
echo status: ${{ steps.check_status.outputs.result }}

- name: Build image
- name: Docker GitHub Packages login
if: steps.check_status.outputs.result == 'outdated'
run: make --file ${{ matrix.package }}/Makefile build version=${{ steps.get_version.outputs.result }}
# TODO: Change this back DOCKER_DEPLOYER to GITHUB_TOKEN
run: echo ${{ secrets.DOCKER_DEPLOYER }} | docker login --username ${{ github.actor }} --password-stdin docker.pkg.github.com

- name: Docker Hub login
if: steps.check_status.outputs.result == 'outdated'
run: echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login --username nextoolsbot --password-stdin

- name: Build image (push)
if: steps.check_status.outputs.result == 'outdated'
id: build
run: echo ::set-output name=result::$(make --file ${{ matrix.package }}/Makefile build version=${{ steps.get_version.outputs.result }})

- name: Test
if: steps.check_status.outputs.result == 'outdated'
Expand All @@ -51,6 +71,7 @@ jobs:
id: get_size
if: steps.check_status.outputs.result == 'outdated'
run: |
docker pull ${{ steps.build.outputs.result }}
docker save ${{ matrix.package }} | gzip > ${{ matrix.package }}.tar.gz
echo ::set-output name=result::$(du --human-readable --apparent-size ${{ matrix.package }}.tar.gz | cut --fields=1)
rm ${{ matrix.package }}.tar.gz
Expand Down Expand Up @@ -82,20 +103,4 @@ jobs:

- name: Git push
if: steps.check_status.outputs.result == 'outdated'
run: git push --force --tags origin master

- name: Docker GitHub Packages login
if: steps.check_status.outputs.result == 'outdated'
run: echo ${{ secrets.GITHUB_TOKEN }} | docker login --username ${{ github.actor }} --password-stdin docker.pkg.github.com

- name: Docker GitHub Packages push
if: steps.check_status.outputs.result == 'outdated'
run: docker push docker.pkg.github.com/nextools/images/${{ matrix.package }}

- name: Docker Hub login
if: steps.check_status.outputs.result == 'outdated'
run: echo ${{ secrets.DOCKER_HUB_TOKEN }} | docker login --username nextoolsbot --password-stdin

- name: Docker Hub push
if: steps.check_status.outputs.result == 'outdated'
run: docker push nextools/${{ matrix.package }}
run: git push --force --tags origin master
18 changes: 14 additions & 4 deletions chromium/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,21 @@

CURRENT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))

IMAGE_NAME="docker.pkg.github.com/nextools/images/chromium:rc"
DOCKER_NAMESPACE="nextools"

get-version:
@docker pull ubuntu:bionic > /dev/null 2>&1
@docker run --rm \
ubuntu:bionic \
sh -c "apt-get update --quiet=2 && apt-cache policy chromium-browser | sed --regexp-extended --quiet 's/.*Candidate: ([0-9.]+)-.+/\1/p'"

build:
@docker build --tag chromium --build-arg VERSION=$(version) $(CURRENT_DIR)
@docker buildx build --push --platform linux/arm64,linux/amd64 --tag $(IMAGE_NAME) --build-arg VERSION=$(version) $(CURRENT_DIR)
@echo $(IMAGE_NAME)

test:
@docker run --detach --publish 9222:9222 --name chromium chromium
@docker run --detach --publish 9222:9222 --name chromium $(IMAGE_NAME)
@timeout 20s sh -c "trap 'docker container rm --force chromium' 0; until curl http://localhost:9222/json/version; do sleep 1; done"

tags:
Expand All @@ -23,7 +27,13 @@ tags:
tag=latest; \
fi; \
echo $$tag; \
docker tag chromium docker.pkg.github.com/nextools/images/chromium:$$tag; \
docker tag chromium nextools/chromium:$$tag; \
docker buildx imagetools create $(IMAGE_NAME) --tag docker.pkg.github.com/nextools/images/chromium:$$tag; \
chmod +r ${HOME}/.docker/config.json; \
docker container run --rm --net host \
-u "$(id -u):$(id -g)" -e HOME -v ${HOME}:${HOME} \
-v /etc/docker/certs.d:/etc/docker/certs.d:ro \
regclient/regctl:latest image copy $(IMAGE_NAME) ${DOCKER_NAMESPACE}/chromium:$$tag; \
git tag --force chromium@$$tag; \
done


16 changes: 11 additions & 5 deletions firefox/Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
.PHONY: get-version build test tags

CURRENT_DIR:=$(shell dirname $(realpath $(firstword $(MAKEFILE_LIST))))
IMAGE_NAME="docker.pkg.github.com/nextools/images/firefox:rc"
DOCKER_NAMESPACE="nextools"

get-version:
@docker pull ubuntu:bionic > /dev/null 2>&1
Expand All @@ -10,17 +12,21 @@ get-version:

build:
@_version=`echo $(version) | sed --regexp-extended s/a/~a/`
@docker build --tag firefox --build-arg VERSION=$$_version $(CURRENT_DIR)
@docker buildx build --push --platform linux/arm64,linux/amd64 --tag $(IMAGE_NAME) --build-arg VERSION=$$_version $(CURRENT_DIR)
@echo $(IMAGE_NAME)

test:
@docker run --detach --publish 9222:9222 --name firefox firefox
@docker run --detach --publish 9222:9222 --name firefox $(IMAGE_NAME)
@timeout 20s sh -c "trap 'docker container rm --force firefox' 0; until curl http://localhost:9222/json/version; do sleep 1; done"

tags:
@for tag in $(version) latest; do \
echo $$tag; \
docker tag firefox docker.pkg.github.com/nextools/images/firefox:$$tag; \
docker tag firefox nextools/firefox:$$tag; \
docker buildx imagetools create $(IMAGE_NAME) --tag docker.pkg.github.com/nextools/images/firefox:$$tag; \
chmod +r ${HOME}/.docker/config.json; \
docker container run --rm --net host \
-u "$(id -u):$(id -g)" -e HOME -v ${HOME}:${HOME} \
-v /etc/docker/certs.d:/etc/docker/certs.d:ro \
regclient/regctl:latest image copy $(IMAGE_NAME) ${DOCKER_NAMESPACE}/firefox:$$tag; \
git tag --force firefox@$$tag >/dev/null 2>&1; \
done