Skip to content

phase1: raise priority of tag builds #60

phase1: raise priority of tag builds

phase1: raise priority of tag builds #60

Workflow file for this run

name: Build and push containers
on:
push:
branches:
- master
tags:
- 'v*'
pull_request:
env:
BUILDBOT_VERSION: 3.9.0
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
test-lint:
name: Test with Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.9"
- "3.10"
steps:
- name: Checkout
uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: pip install -r requirements-dev.txt
- name: Lint with ruff
run: ruff phase*/master.cfg
- name: Stylecheck with black
run: black phase1/master.cfg
build-test-push:
name: Build, test and push containers
runs-on: ubuntu-latest
needs: test-lint
permissions:
packages: write
strategy:
fail-fast: ${{ github.event_name == 'pull_request' }}
matrix:
container_flavor:
- master
- worker
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Environment variables
run: |
echo "GIT_SHA_SHORT=${GITHUB_SHA::8}" >> $GITHUB_ENV
- name: Build container and export it to local Docker
uses: docker/build-push-action@v4
with:
load: true
tags: local/${{ matrix.container_flavor }}
file: docker/build${{ matrix.container_flavor }}/Dockerfile
build-args: |
BUILDBOT_VERSION=${{ env.BUILDBOT_VERSION }}
OPENWRT_VERSION=${{ env.GIT_SHA_SHORT }}
- name: Test master Docker container
if: matrix.container_flavor == 'master'
run: |
docker run --detach --name test-master local/master
sleep 5
docker logs test-master | tee master.log
grep "buildmaster configured in /master" master.log
- name: Test worker Docker container
if: matrix.container_flavor == 'worker'
run: |
docker run --detach --env BUILDWORKER_NAME=X --env BUILDWORKER_PASSWORD=Y --name test-worker local/worker
sleep 5
docker logs test-worker | tee worker.log
grep "worker configured in /builder" worker.log
- name: Docker meta
id: meta
if: github.event_name != 'pull_request' || github.repository_owner != 'openwrt'
uses: docker/metadata-action@v4
with:
images: name=ghcr.io/${{ github.repository }}/build${{ matrix.container_flavor }}-v${{ env.BUILDBOT_VERSION }}
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
if: github.event_name != 'pull_request' || github.repository_owner != 'openwrt'
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build container again and push it
uses: docker/build-push-action@v4
if: github.event_name != 'pull_request' || github.repository_owner != 'openwrt'
with:
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
file: docker/build${{ matrix.container_flavor }}/Dockerfile
build-args: |
BUILDBOT_VERSION=${{ env.BUILDBOT_VERSION }}
OPENWRT_VERSION=${{ env.GIT_SHA_SHORT }}