diff --git a/.github/workflows/check_format.yml b/.github/workflows/check_format.yml index c2f5808a53e..8f2a3357709 100644 --- a/.github/workflows/check_format.yml +++ b/.github/workflows/check_format.yml @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-24.04 steps: - name: "Checkout #1" - uses: actions/checkout@v3.0.0 + uses: actions/checkout@v4 - name: "Checkout #2 (for tools/read-version)" run: | @@ -46,10 +46,10 @@ jobs: strategy: fail-fast: false name: Check json format - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: "Checkout #1" - uses: actions/checkout@v3.0.0 + uses: actions/checkout@v4 - name: "Test format" run: | @@ -61,19 +61,19 @@ jobs: strategy: fail-fast: false name: Check docs - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: "Checkout #1" - uses: actions/checkout@v3.0.0 + uses: actions/checkout@v4 - name: "Checkout #2 (for tools/read-version)" run: | git fetch --unshallow git remote add upstream https://git.launchpad.net/cloud-init - name: "Install Python 3.10" - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: - python-version: '3.10.8' + python-version: '3.11.9' - name: "Install dependencies" run: | sudo DEBIAN_FRONTEND=noninteractive apt-get -qy update @@ -91,10 +91,10 @@ jobs: shell-lint: name: Shell Lint - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v3.0.0 + uses: actions/checkout@v4 - name: Install ShellCheck run: | @@ -106,9 +106,9 @@ jobs: shellcheck ./tools/ds-identify check-cla-signers: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@v3.0.0 + - uses: actions/checkout@v4 - name: Check CLA signers file run: tools/check-cla-signers diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 0f3206f7901..6b9b9730d8c 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -20,11 +20,11 @@ env: RELEASE: focal jobs: - package-build: - runs-on: ubuntu-22.04 + build-package-and-run-tests: + runs-on: ubuntu-24.04 steps: - name: "Checkout" - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # Fetch all tags for tools/read-version fetch-depth: 0 @@ -32,58 +32,45 @@ jobs: run: | sudo DEBIAN_FRONTEND=noninteractive apt-get update sudo DEBIAN_FRONTEND=noninteractive apt-get -y install \ - debhelper \ - dh-python \ fakeroot \ - python3-setuptools \ sbuild \ - ubuntu-dev-tools + ubuntu-dev-tools \ + tox \ + wireguard \ + $(\ + ./tools/read-dependencies \ + --requirements-file requirements.txt \ + --requirements-file test-requirements.txt \ + --distro ubuntu \ + --system-pkg-names 2> /dev/null \ + | tr '\n' ' ' \ + ) sudo sbuild-adduser $USER cp /usr/share/doc/sbuild/examples/example.sbuildrc /home/$USER/.sbuildrc - # Install all build and test dependencies - ./tools/read-dependencies -r requirements.txt -r test-requirements.txt -d ubuntu -s -i - name: Build package run: | ./packages/bddeb -S -d --release ${{ env.RELEASE }} sudo -E su $USER -c 'mk-sbuild ${{ env.RELEASE }}' sudo -E su $USER -c 'DEB_BUILD_OPTIONS=nocheck sbuild --nolog --no-run-lintian --no-run-autopkgtest --verbose --dist=${{ env.RELEASE }} --build-dir=${{ runner.temp }} cloud-init_*.dsc' - name: Archive debs as artifacts - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: 'cloud-init-${{ env.RELEASE }}-deb' path: '${{ runner.temp }}/cloud-init*.deb' retention-days: 3 - - integration-tests: - needs: package-build - runs-on: ubuntu-22.04 - steps: - - name: "Checkout" - uses: actions/checkout@v3 - with: - # Fetch all tags for tools/read-version - fetch-depth: 0 - - name: Retrieve cloud-init package - uses: actions/download-artifact@v3 + - name: Setup LXD + uses: canonical/setup-lxd@v0.1.1 with: - name: 'cloud-init-${{ env.RELEASE }}-deb' + channel: latest/candidate - name: Verify deb package run: | - ls -hal cloud-init*.deb - - name: Prepare test tools - run: | - sudo DEBIAN_FRONTEND=noninteractive apt-get -y update - sudo DEBIAN_FRONTEND=noninteractive apt-get -y install tox wireguard - - name: Initialize LXD + ls -hal '${{ runner.temp }}' + echo ${{ runner.temp }}/cloud-init*.deb || true + ls -hal ${{ runner.temp }}/cloud-init*.deb || true + - name: Set up Pycloudlib run: | ssh-keygen -P "" -q -f ~/.ssh/id_rsa echo "[lxd]" > /home/$USER/.config/pycloudlib.toml - sudo adduser $USER lxd - # Jammy GH Action runners have docker installed, which edits iptables - # in a way that is incompatible with lxd. - # https://documentation.ubuntu.com/lxd/en/latest/howto/network_bridge_firewalld/#prevent-connectivity-issues-with-lxd-and-docker - sudo iptables -I DOCKER-USER -j ACCEPT - sudo lxd init --auto - name: Run integration Tests run: | - sg lxd -c 'CLOUD_INIT_CLOUD_INIT_SOURCE="$(ls cloud-init*.deb)" tox -e integration-tests-ci' + sh -c 'CLOUD_INIT_CLOUD_INIT_SOURCE="$(ls ${{ runner.temp }}/cloud-init*.deb)" tox -e integration-tests-ci' diff --git a/.github/workflows/linkcheck.yml b/.github/workflows/linkcheck.yml index aeae6840a46..8a6ecb06767 100644 --- a/.github/workflows/linkcheck.yml +++ b/.github/workflows/linkcheck.yml @@ -8,15 +8,15 @@ concurrency: jobs: linkcheck: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 continue-on-error: ${{ !(github.event_name == 'workflow_dispatch' && github.event.inputs.failOnError == 'true') }} steps: - name: Checkout Repository - uses: actions/checkout@v3.0.0 + uses: actions/checkout@v4 - name: "Install Python 3.10" - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: '3.10.8' diff --git a/.github/workflows/packaging-tests.yml b/.github/workflows/packaging-tests.yml index 8517d862c7d..2382ca4cc5a 100644 --- a/.github/workflows/packaging-tests.yml +++ b/.github/workflows/packaging-tests.yml @@ -18,10 +18,10 @@ env: jobs: check-patches: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # Fetch all branches for merging fetch-depth: 0 diff --git a/.github/workflows/scheduled.yml b/.github/workflows/scheduled.yml index aca4f9b7e87..c674ca116af 100644 --- a/.github/workflows/scheduled.yml +++ b/.github/workflows/scheduled.yml @@ -12,7 +12,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install dependencies env: DEBIAN_FRONTEND: noninteractive @@ -29,9 +29,9 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Python 3.13-dev - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: 3.13-dev check-latest: true @@ -48,7 +48,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install dependencies run: | sudo apt-get -qy update diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index c763dafded7..bf253c5750b 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -10,7 +10,7 @@ jobs: runs-on: ubuntu-latest steps: - - uses: actions/stale@v1 + - uses: actions/stale@v9 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-stale: 14 diff --git a/.github/workflows/unit.yml b/.github/workflows/unit.yml index d704ae64d7b..4521138f9e8 100644 --- a/.github/workflows/unit.yml +++ b/.github/workflows/unit.yml @@ -28,7 +28,7 @@ jobs: check-latest: false experimental: false name: Python ${{matrix.python-version}} ${{ matrix.slug }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 continue-on-error: ${{ matrix.experimental }} steps: - name: "Checkout" @@ -37,7 +37,7 @@ jobs: # Fetch all tags for tools/read-version fetch-depth: 0 - name: Install Python ${{matrix.python-version}} - uses: actions/setup-python@v4 + uses: actions/setup-python@v5 with: python-version: ${{matrix.python-version}} check-latest: ${{matrix.check-latest}}