Skip to content

.github/workflows/cicd.yml #193

.github/workflows/cicd.yml

.github/workflows/cicd.yml #193

Workflow file for this run

env:
DOCKER_BUILDKIT: "1"
COMPOSE_DOCKER_CLI_BUILD: "1"
BUILDKIT_PROGRESS: "plain"
NO_SQUASH: ""
NO_SILENT: "1"
NONINTERACTIVE: "1"
FORCE_ONLINE: "1"
NBPARALLEL: "2"
RELEASABLE_REPOS: "^corpusops/"
RELEASABLE_BRANCHES: "^(refs/heads/)?(master|main|2.0|workflows)$"
COPS_URL: "https://github.com/corpusops/corpusops.bootstrap"
COPS_ROOT: "${{github.workspace}}/local/corpusops.bootstrap"
silent: "$COPS_ROOT/bin/cops_shell_common output_in_error silent_vv"
DOCKER_RELEASER: "${{ secrets.DOCKER_HUB_USERNAME }}"
DOCKER_PASSWORD: "${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}"
jobs:
r:
runs-on: ubuntu-24.04
env: {IMAGES: "${{matrix.IMAGES}}"}
steps:
- name: Set vars
run: |-
if ( echo "$GITHUB_REF" | egrep -q "${RELEASABLE_BRANCHES}" ) \
&& ( echo "$GITHUB_REPOSITORY" | egrep -q "${RELEASABLE_REPOS}" )
then releasable=true;else releasable=false;fi
echo "releasable=$releasable" >> $GITHUB_OUTPUT
echo "silent=$(echo $silent)" >> $GITHUB_OUTPUT
id: v
- name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }}
- name: Activate docker experimental
run: |-
sudo bash -exc "if [ ! -e /etc/docker/daemon.json ];then mkdir /etc/docker||true;echo '{}' > /etc/docker/daemon.json;fi;service docker stop;python -c \
\"d='/etc/docker/daemon.json';\
import json;c=json.load(open(d));c['experimental']=True;\
open(d, 'w').write(json.dumps(c))\"
systemctl restart docker"
- uses: actions/checkout@v3
- name: Cache multiple paths
uses: actions/cache@v3
with:
path: |
~/.cache
local
key: 6-${{ runner.os }}-${{ github.ref }}-${{ github.repository }}-venvstatics
- name: setup
run: set -e;i=$(whoami);sudo sh -c "chown -Rf $i .";
sudo sh -c 'sed -i -re 's/azure.//' /etc/apt/sources.list && apt-get update -qq' && ./main.sh refresh_corpusops;
sudo sh -c 'sed -i -re 's/azure.//' /etc/apt/sources.list && apt-get update -qq && apt-get install -qqy --force-yes parallel'
- name: refresh images
run: set -e;if (echo $IMAGES|grep -q zleftover);then
rm -f */*/*/Dockerfile&&${{steps.v.outputs.silent}} ./refresh_images.sh;
fi
- name: build & release
run: set -e;
if [ "x${{steps.v.outputs.releasable}}" = "xtrue" ];then export DO_RELEASE=1;fi;
./build.sh $IMAGES
# ${{steps.v.outputs.silent}} ./build.sh $IMAGES
strategy:
max-parallel: 5
fail-fast: false
matrix:
IMAGES:
- "library/ruby/alpine library/ruby/latest library/ruby/slim"
- "library/ruby/2.7 library/ruby/2.7-alpine library/ruby/2.7-slim"
- "library/ruby/2 library/ruby/2-alpine library/ruby/2-slim"
- "library/ruby/3.3 library/ruby/3.3-alpine library/ruby/3.3-slim library/ruby/3 library/ruby/3-alpine library/ruby/3-slim"
- "library/ruby/2.0 library/ruby/2.0-slim library/ruby/2.1 library/ruby/2.1-alpine library/ruby/2.1-slim library/ruby/2.2 library/ruby/2.2-alpine library/ruby/2.2-slim library/ruby/2.3 library/ruby/2.3-alpine library/ruby/2.3-slim"
- "library/ruby/2.4 library/ruby/2.4-alpine library/ruby/2.4-slim library/ruby/2.5 library/ruby/2.5-alpine library/ruby/2.5-slim library/ruby/2.6 library/ruby/2.6-alpine library/ruby/2.6-slim"
- "library/ruby/3.0 library/ruby/3.0-alpine library/ruby/3.0-slim library/ruby/3.1 library/ruby/3.1-alpine library/ruby/3.1-slim library/ruby/3.2 library/ruby/3.2-alpine library/ruby/3.2-slim"
#- "corpusops/test/a corpusops/test/b corpusops/test/c"
# all images that werent explicitly told to be built would be built in the next batches
# we span them onto N jobs
- "zleftover:1/2"
- "zleftover:2/2"
on:
push:
workflow_dispatch:
schedule: [{cron: '1 0 4,6,8,18,20,22 * *'}]