Update/Reload without downtime #3128
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Apt based Linux | |
on: | |
push: | |
branches: | |
- master | |
- fluent-package-v5 | |
pull_request: | |
concurrency: | |
group: ${{ github.head_ref || github.sha }}-${{ github.workflow }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
name: Build | |
timeout-minutes: 120 | |
strategy: | |
fail-fast: false | |
matrix: | |
label: | |
- Debian bullseye amd64 | |
- Debian bookworm amd64 | |
- Ubuntu Focal amd64 | |
- Ubuntu Jammy amd64 | |
- Ubuntu Noble amd64 | |
include: | |
- label: Debian bullseye amd64 | |
rake-job: debian-bullseye | |
test-docker-image: debian:bullseye | |
- label: Debian bookworm amd64 | |
rake-job: debian-bookworm | |
test-docker-image: debian:bookworm | |
- label: Ubuntu Focal amd64 | |
rake-job: ubuntu-focal | |
test-docker-image: ubuntu:focal | |
- label: Ubuntu Jammy amd64 | |
rake-job: ubuntu-jammy | |
test-docker-image: ubuntu:jammy | |
- label: Ubuntu Noble amd64 | |
rake-job: ubuntu-noble | |
test-docker-image: ubuntu:noble | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@master | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt -V install ruby ruby-bundler ruby-serverspec | |
sudo gem install bundler:2.2.9 --no-document | |
sudo gem uninstall fileutils | |
- name: cache deb | |
uses: actions/cache@v4 | |
id: cache-deb | |
with: | |
path: | | |
fluent-package/apt/repositories | |
fluent-apt-source/apt/repositories | |
fluent-lts-apt-source/apt/repositories | |
v6-test/fluent-package/apt/repositories | |
key: ${{ runner.os }}-cache-${{ matrix.rake-job }}-${{ hashFiles('**/config.rb', '**/Rakefile', '**/Gemfile*', 'fluent-package/templates/**', 'fluent-package/debian/**', 'fluent-package/apt/**/Dockerfile') }} | |
- name: Build deb with Docker | |
if: ${{ ! steps.cache-deb.outputs.cache-hit }} | |
run: | | |
rake apt:build APT_TARGETS=${{ matrix.rake-job }} | |
- uses: actions/checkout@master | |
if: ${{ ! steps.cache-deb.outputs.cache-hit }} | |
with: | |
path: v6-test | |
- name: Build v6 deb with Docker | |
if: ${{ ! steps.cache-deb.outputs.cache-hit }} | |
run: | | |
cd v6-test | |
git config user.email "[email protected]" | |
git config user.name "Fluentd developers" | |
git am fluent-package/bump-version-v6.patch | |
rake apt:build APT_TARGETS=${{ matrix.rake-job }} | |
- name: Upload fluent-package deb | |
uses: actions/upload-artifact@master | |
with: | |
name: packages-${{ matrix.rake-job }} | |
path: fluent-package/apt/repositories | |
- name: Upload v6 fluent-package deb | |
uses: actions/upload-artifact@master | |
with: | |
name: v6-packages-${{ matrix.rake-job }} | |
path: v6-test/fluent-package/apt/repositories | |
- name: Upload fluent-apt-source deb | |
uses: actions/upload-artifact@master | |
with: | |
name: packages-apt-source-${{ matrix.rake-job }} | |
path: fluent-apt-source/apt/repositories | |
- name: Upload fluent-lts-apt-source deb | |
uses: actions/upload-artifact@master | |
with: | |
name: packages-lts-apt-source-${{ matrix.rake-job }} | |
path: fluent-lts-apt-source/apt/repositories | |
# TODO move the following steps to "Test" job | |
- name: Check Package Size | |
run: | | |
fluent-package/apt/pkgsize-test.sh ${{ matrix.rake-job }} amd64 | |
- name: Installation Test | |
run: | | |
mkdir -p .bundle | |
docker run \ | |
--rm \ | |
--tty \ | |
--env CI=true \ | |
--volume ${PWD}:/fluentd:ro \ | |
${{ matrix.test-docker-image }} \ | |
/fluentd/fluent-package/apt/install-test.sh | |
- name: Piuparts (Install/Remove/Upgrade) Test | |
run: | | |
mkdir -p .bundle | |
docker run \ | |
--privileged \ | |
--rm \ | |
--tty \ | |
--env CI=true \ | |
--volume ${PWD}:/fluentd:ro \ | |
${{ matrix.test-docker-image }} \ | |
/fluentd/fluent-package/apt/piuparts-test.sh | |
- name: Serverspec Test | |
run: | | |
mkdir -p .bundle | |
docker run \ | |
--rm \ | |
--tty \ | |
--env CI=true \ | |
--volume ${PWD}:/fluentd:ro \ | |
${{ matrix.test-docker-image }} \ | |
/fluentd/fluent-package/apt/serverspec-test.sh | |
- name: Confluent Test | |
run: | | |
mkdir -p .bundle | |
docker run \ | |
--rm \ | |
--tty \ | |
--env CI=true \ | |
--volume ${PWD}:/fluentd:ro \ | |
${{ matrix.test-docker-image }} \ | |
/fluentd/fluent-package/apt/confluent-test.sh | |
- name: Binstubs Test | |
run: | | |
mkdir -p .bundle | |
docker run \ | |
--rm \ | |
--tty \ | |
--env CI=true \ | |
--volume ${PWD}:/fluentd:ro \ | |
${{ matrix.test-docker-image }} \ | |
/fluentd/fluent-package/apt/binstubs-test.sh | |
test: | |
name: Test ${{ matrix.label }} ${{ matrix.test }} | |
needs: build | |
runs-on: ubuntu-latest | |
timeout-minutes: 15 | |
strategy: | |
fail-fast: false | |
matrix: | |
label: | |
- Debian bullseye amd64 | |
- Debian bookworm amd64 | |
- Ubuntu Focal amd64 | |
- Ubuntu Jammy amd64 | |
- Ubuntu Noble amd64 | |
test: | |
- "update-from-v4.sh local" | |
- "update-from-v4.sh v5" | |
- "update-from-v4.sh lts" | |
- "downgrade-to-v4.sh" | |
- "install-newly.sh local" | |
- "install-newly.sh v5" | |
- "install-newly.sh lts" | |
- "update-to-next-version.sh" | |
- "update-to-next-version-with-backward-compat-for-v4.sh" | |
- "update-to-next-version-service-status.sh enabled active" | |
- "update-to-next-version-service-status.sh enabled inactive" | |
- "update-to-next-version-service-status.sh disabled active" | |
- "update-to-next-version-service-status.sh disabled inactive" | |
- "update-to-next-version-with-auto-and-manual.sh" | |
- "update-to-next-major-version.sh" | |
- "update-without-data-lost.sh v5 v6" | |
- "update-without-data-lost.sh v6 v5" | |
include: | |
- label: Debian bullseye amd64 | |
rake-job: debian-bullseye | |
lxc-image: images:debian/11 | |
- label: Debian bookworm amd64 | |
rake-job: debian-bookworm | |
lxc-image: images:debian/12 | |
- label: Ubuntu Focal amd64 | |
rake-job: ubuntu-focal | |
lxc-image: ubuntu:20.04 | |
- label: Ubuntu Jammy amd64 | |
rake-job: ubuntu-jammy | |
lxc-image: ubuntu:22.04 | |
- label: Ubuntu Noble amd64 | |
rake-job: ubuntu-noble | |
lxc-image: ubuntu:24.04 | |
exclude: | |
- label: Debian bookworm amd64 | |
test: update-from-v4.sh local | |
- label: Debian bookworm amd64 | |
test: update-from-v4.sh v5 | |
- label: Debian bookworm amd64 | |
test: update-from-v4.sh lts | |
- label: Debian bookworm amd64 | |
test: update-to-next-version-with-backward-compat-for-v4.sh | |
- label: Debian bookworm amd64 | |
test: downgrade-to-v4.sh | |
- label: Ubuntu Noble amd64 | |
test: update-from-v4.sh local | |
- label: Ubuntu Noble amd64 | |
test: update-from-v4.sh v5 | |
- label: Ubuntu Noble amd64 | |
test: update-from-v4.sh lts | |
- label: Ubuntu Noble amd64 | |
test: update-to-next-version-with-backward-compat-for-v4.sh | |
- label: Ubuntu Noble amd64 | |
test: downgrade-to-v4.sh | |
steps: | |
- uses: actions/checkout@master | |
- uses: actions/download-artifact@v4 | |
with: | |
name: packages-${{ matrix.rake-job }} | |
- uses: actions/download-artifact@v4 | |
with: | |
name: v6-packages-${{ matrix.rake-job }} | |
path: v6-test | |
- uses: actions/download-artifact@v4 | |
with: | |
name: packages-apt-source-${{ matrix.rake-job }} | |
- uses: canonical/[email protected] | |
- name: Run diagnostic | |
run: | | |
uname -a | |
echo "::group::snap info lxd" | |
snap info lxd | |
echo "::endgroup::" | |
echo "::group::snap services lxd" | |
snap services lxd | |
echo "::endgroup::" | |
echo "::group::snap logs lxd" | |
sudo snap logs lxd | |
echo "::endgroup::" | |
echo "::group::lxc remote list" | |
lxc remote list | |
echo "::endgroup::" | |
echo "::group::lxc list images:" | |
lxc image list images: | |
echo "::endgroup::" | |
- name: Run Test ${{ matrix.test }} on ${{ matrix.lxc-image }} | |
run: fluent-package/apt/systemd-test/test.sh ${{ matrix.lxc-image }} ${{ matrix.test }} |