Skip to content

CI

CI #1357

Workflow file for this run

---
name: CI
on:
pull_request:
paths-ignore:
- '**.md'
push:
branches:
- master
paths-ignore:
- '**.md'
schedule:
- cron: 0 0 * * *
jobs:
matrix:
runs-on: ubuntu-latest
outputs:
os: ${{ env.os }}
version: ${{ env.version }}
include: ${{ env.include }}
exclude: ${{ env.exclude }}
steps:
- name: Checkout
uses: actions/checkout@main
- uses: ruby/setup-ruby@master
- name: Setup variables
run: |
echo "os= $(bin/images --json | jq -c '.oses')" >> $GITHUB_ENV
echo "version=$(bin/images --json | jq -c '.versions')" >> $GITHUB_ENV
echo "include=$(bin/images --json | jq -c '.github.include')" >> $GITHUB_ENV
echo "exclude=$(bin/images --json | jq -c '.github.exclude')" >> $GITHUB_ENV
build:
needs: matrix
runs-on: ubuntu-latest
strategy:
fail-fast: false
# The "include:" block will inject "targets:" into the matrix
matrix:
os: ${{ fromJson(needs.matrix.outputs.os) }}
version: ${{ fromJson(needs.matrix.outputs.version) }}
include: ${{ fromJson(needs.matrix.outputs.include) }}
exclude: ${{ fromJson(needs.matrix.outputs.exclude) }}
steps:
- name: Checkout
uses: actions/checkout@main
- name: Login to docker.io
uses: docker/login-action@master
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@master
- uses: ruby/setup-ruby@master
- name: Build and push images for ${{ matrix.version }} (${{ matrix.os }})
run: bin/build --os ${{ matrix.os }} --version ${{ matrix.version }} --targets ${{ join(matrix.targets, ',') }}