Update ci (#44)

* + ghcr.io links

* update ci

* more cache moves

* fix cache move after compose test

* output image

* update description and don't login on PR's

* dependabot: actions
This commit is contained in:
Dmitry Belyaev 2021-06-10 17:17:50 +03:00 committed by GitHub
parent ba0d25813e
commit 0dcc835803
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 231 additions and 78 deletions

View File

@ -1,8 +1,14 @@
version: 2 version: 2
updates: updates:
- package-ecosystem: docker - package-ecosystem: docker
directory: "/" directory: "/"
schedule: schedule:
interval: monthly interval: monthly
time: '02:00' time: "02:00"
open-pull-requests-limit: 10 open-pull-requests-limit: 10
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: monthly
time: "03:00"

View File

@ -5,79 +5,220 @@ on:
# Publish `master` as Docker `latest` image. # Publish `master` as Docker `latest` image.
branches: branches:
- master - master
# Publish `v1.2.3` tags as releases. # Publish `v1.2.3` tags as releases.
tags: tags:
- v* - v*
# Run tests for any PRs. # Run tests for PRs to `master` branch.
pull_request: pull_request:
branches:
- "master"
jobs: jobs:
test: test:
runs-on: ubuntu-18.04 runs-on: ubuntu-20.04
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Build squid image - name: Set up QEMU
run: docker build . --file Dockerfile --tag b4tman/squid uses: docker/setup-qemu-action@v1
- name: Test image - name: Set up Docker Buildx
run: docker-compose -f docker-compose.test.yml up sut uses: docker/setup-buildx-action@v1
- name: Build 'ssl-bump' image - name: Login to DockerHub
run: docker build ssl-bump --tag b4tman/squid:ssl-bump if: github.event_name != 'pull_request'
uses: docker/login-action@v1
with:
username: b4tman
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Build squid image
uses: docker/build-push-action@v2
with:
context: .
push: false
tags: b4tman/squid
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
outputs: type=image,name=b4tman/squid,push=false
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Test image
run: docker-compose -f docker-compose.test.yml up sut
- name: Build 'ssl-bump' image
uses: docker/build-push-action@v2
with:
context: ssl-bump
push: false
file: ssl-bump/Dockerfile
tags: b4tman/squid:ssl-bump
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
push: push:
needs: test needs: test
runs-on: ubuntu-18.04 runs-on: ubuntu-20.04
if: github.event_name == 'push' if: github.event_name != 'pull_request'
steps: steps:
- uses: actions/checkout@v2 - uses: actions/checkout@v2
- name: Build squid image - name: Docker meta
run: docker build . --file Dockerfile --tag b4tman/squid id: meta
uses: docker/metadata-action@v3
- name: Build 'ssl-bump' image with:
run: docker build ssl-bump --tag b4tman/squid:ssl-bump images: |
b4tman/squid
- name: Log into registry ghcr.io/b4tman/squid
run: echo "${{ secrets.CR_PAT }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin flavor: |
latest=auto
- name: Push squid image tags: |
run: | type=ref,event=branch
IMAGE_ID=ghcr.io/${{ github.actor }}/squid type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
# Strip git ref prefix from version
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') - name: Docker meta (ssl-bump)
id: meta_ssl_bump
# Strip "v" prefix from tag name uses: docker/metadata-action@v3
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') with:
images: |
# Use Docker `latest` tag convention b4tman/squid
[ "$VERSION" == "master" ] && VERSION=latest ghcr.io/b4tman/squid
flavor: |
echo IMAGE_ID=$IMAGE_ID latest=auto
echo VERSION=$VERSION suffix=ssl-bump
tags: |
docker tag b4tman/squid $IMAGE_ID:$VERSION type=ref,event=branch
docker push $IMAGE_ID:$VERSION type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Push 'ssl-bump' image
run: | - name: Docker meta (ssl-bump ghcr)
IMAGE_ID=ghcr.io/${{ github.actor }}/squid-ssl-bump id: meta_ssl_bump_ghcr
uses: docker/metadata-action@v3
# Strip git ref prefix from version with:
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') images: |
ghcr.io/b4tman/squid-ssl-bump
# Strip "v" prefix from tag name flavor: |
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') latest=auto
tags: |
# Use Docker `latest` tag convention type=ref,event=branch
[ "$VERSION" == "master" ] && VERSION=latest type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION - name: Set up QEMU
uses: docker/setup-qemu-action@v1
docker tag b4tman/squid:ssl-bump $IMAGE_ID:$VERSION
docker push $IMAGE_ID:$VERSION - name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: b4tman
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Login to GHCR
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.CR_PAT }}
- name: Build squid image
uses: docker/build-push-action@v2
with:
context: .
push: true
platforms: linux/amd64,linux/arm/v7
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Build 'ssl-bump' image
uses: docker/build-push-action@v2
with:
context: ssl-bump
push: true
file: ssl-bump/Dockerfile
platforms: linux/amd64,linux/arm/v7
tags: ${{ steps.meta_ssl_bump.outputs.tags }}
labels: ${{ steps.meta_ssl_bump.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Build 'ssl-bump' image for ghcr
uses: docker/build-push-action@v2
with:
context: ssl-bump
push: true
file: ssl-bump/Dockerfile
platforms: linux/amd64,linux/arm/v7
tags: ${{ steps.meta_ssl_bump_ghcr.outputs.tags }}
labels: ${{ steps.meta_ssl_bump_ghcr.outputs.labels }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
# Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
- name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
- name: Update repo description
uses: peter-evans/dockerhub-description@v2
with:
username: b4tman
password: ${{ secrets.DOCKERHUB_TOKEN }}
repository: b4tman/app

View File

@ -1,12 +1,19 @@
[![Drone Build Status](https://cloud.drone.io/api/badges/b4tman/docker-squid/status.svg?ref=refs/heads/master)](https://cloud.drone.io/b4tman/docker-squid) [![Drone Build Status](https://cloud.drone.io/api/badges/b4tman/docker-squid/status.svg?ref=refs/heads/master)](https://cloud.drone.io/b4tman/docker-squid)
![Docker Build Status](https://img.shields.io/docker/cloud/build/b4tman/squid) ![Docker Build Status](https://img.shields.io/docker/cloud/build/b4tman/squid)
![Docker Image CI Status](https://github.com/b4tman/docker-squid/workflows/Docker%20Image%20CI/badge.svg) ![Docker Image CI Status](https://github.com/b4tman/docker-squid/workflows/Docker%20Image%20CI/badge.svg)
# docker-squid # docker-squid
Docker Squid container based on Alpine Linux. Docker Squid container based on Alpine Linux.
Automated builds of the image are available on [Dockerhub](https://hub.docker.com/r/b4tman/squid). Automated builds of the image are available on:
- DockerHub:
- [b4tman/squid](https://hub.docker.com/r/b4tman/squid)
- Github:
- [ghcr.io/b4tman/squid](https://github.com/users/b4tman/packages/container/package/squid)
- [ghcr.io/b4tman/squid-armhf](https://github.com/users/b4tman/packages/container/package/squid-armhf)
- [ghcr.io/b4tman/squid-ssl-bump](https://github.com/users/b4tman/packages/container/package/squid-ssl-bump)
# Quick Start # Quick Start
@ -29,7 +36,6 @@ docker-compose up
- **SQUID_CONFIG_FILE**: Specify the configuration file for squid. Defaults to `/etc/squid/squid.conf`. - **SQUID_CONFIG_FILE**: Specify the configuration file for squid. Defaults to `/etc/squid/squid.conf`.
## Example: ## Example:
```bash ```bash
@ -39,4 +45,4 @@ docker run -p 3128:3128 \
b4tman/squid b4tman/squid
``` ```
This will start a squid container with your config file `/srv/docker/squid/squid.conf`. This will start a squid container with your config file `/srv/docker/squid/squid.conf`.