Skip to content

obs

obs #67

Workflow file for this run

name: obs
on:
workflow_dispatch:
inputs:
revision:
default: main
description: Branch or Tag to be published
type: string
skip-stage:
default: false
description: Skip staging and only test+release
type: boolean
skip-tests:
default: false
description: Skip testing and only stage+release
type: boolean
env:
REVISION: ${{ inputs.revision || 'main' }}
OBS_PASSWORD: ${{ secrets.OBS_PASSWORD }}
jobs:
stage:
runs-on: ubuntu-latest
name: stage / ${{ inputs.revision }}
timeout-minutes: 240
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: test-${{ hashFiles('scripts/obs') }}-${{ hashFiles('scripts/vars') }}
- run: scripts/obs
if: ${{ inputs.skip-stage == false }}
test-vagrant:
runs-on: macos-12
timeout-minutes: 120
needs: stage
strategy:
matrix:
image:
- fedora
- ubuntu
name: test / vagrant / ${{ matrix.image }} / amd64
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
path: |
~/.vagrant.d/boxes
~/.cache/go-build
~/go/pkg/mod
key: test-${{ hashFiles('test/fedora/Vagrantfile') }}-${{ hashFiles('test/ubuntu/Vagrantfile') }}
- run: brew install gnu-sed
- run: scripts/test-vagrant
if: ${{ inputs.skip-tests == false }}
env:
IMAGE: ${{ matrix.image }}
test-docker:
runs-on: ubuntu-latest
timeout-minutes: 120
needs: stage
strategy:
matrix:
arch:
- amd64
- arm64
- ppc64le
image:
- fedora
- ubuntu
name: test / docker / ${{ matrix.image }} / ${{ matrix.arch }}
steps:
- uses: actions/checkout@v4
- uses: docker/setup-buildx-action@v3
- run: scripts/test-docker
if: ${{ inputs.skip-tests == false }}
env:
IMAGE: ${{ matrix.image }}
ARCH: ${{ matrix.arch }}
release:
runs-on: ubuntu-latest
name: release / ${{ inputs.revision }}
needs:
- test-docker
- test-vagrant
steps:
- uses: actions/checkout@v4
- uses: actions/cache@v3
with:
path: |
~/.cache/go-build
~/go/pkg/mod
key: test-${{ hashFiles('scripts/obs') }}-${{ hashFiles('scripts/vars') }}
- run: scripts/obs
env:
RUN_RELEASE: 1