Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

GitHub action build #6

Closed
wants to merge 47 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
d5e988b
wireless: T6320: add 802.11ax at 6GHz
alainlamar Jun 27, 2024
804efa2
T6497: CGNAT refactoring delete conntrack entries (#3699)
sever-sever Jun 27, 2024
5ade352
op-mode: T6524: rewrite "release dhcp(v6) interface" to new op-mode f…
c-po Jun 27, 2024
06e6e01
ssh: T5878: Allow changing the PubkeyAcceptedAlgorithms option
HollyGurza Jun 25, 2024
96f089c
T6488: firewall: extend op-mode command to show global state-policy c…
nicolas-fort Jun 28, 2024
a095a3c
Fixes error generated when op cmd interrupted, updates show system ca…
Giggum Jun 28, 2024
57c24a8
Merge pull request #3524 from alainlamar/T6320
c-po Jun 28, 2024
c86909d
pppoe-server: T5710: Add option permit any-login
natali-rs1985 Jun 27, 2024
3365eb7
T6477: Add telegraf loki output plugin
sever-sever Jun 25, 2024
e62bac4
utils: T6530: add a helper for easily calling iproute2 commands
dmbaturin Jun 28, 2024
12fcf6c
Merge pull request #3730 from natali-rs1985/T5710-current
c-po Jun 28, 2024
f36271b
Merge pull request #3720 from sever-sever/T6477
c-po Jun 28, 2024
690f570
Merge pull request #3737 from dmbaturin/T6530-iproute2-helper
dmbaturin Jun 28, 2024
206c07a
T6452: Add QoS Op Commands (#3591)
l0crian1 Jun 28, 2024
7eddd35
Merge pull request #3733 from c-po/T6524-release-dhcp
c-po Jun 29, 2024
96c993e
T6534: fix incorrect imports in vyos-config-encrypt.py
BonusPlay Jun 29, 2024
e270712
Merge pull request #3743 from BonusPlay/current
c-po Jun 30, 2024
72a704d
T6527: add legacy Vyatta interpreter files still in use
c-po Jun 30, 2024
ebff0c4
T6523: Telegraf use nft scripts only if the firewall configured
sever-sever Jul 2, 2024
efe4e60
Merge pull request #3748 from sever-sever/T6523
c-po Jul 2, 2024
5748db4
T6538: Add the ability to set GENEVE interfaces to VRF
sever-sever Jul 2, 2024
b1d74fe
Merge pull request #3745 from c-po/no-legacy
dmbaturin Jul 2, 2024
0bd50e7
Merge pull request #3721 from HollyGurza/T5878
dmbaturin Jul 2, 2024
2e954a9
GitHub: T6494: add consolidated ISO test result comment on PR (#3750)
c-po Jul 2, 2024
e265002
Merge pull request #3752 from sever-sever/T6538
c-po Jul 3, 2024
7958c97
op-mode: T6498: add machine-readable tech support report script
dmbaturin Jul 1, 2024
d0bc944
Merge pull request #3746 from dmbaturin/T6498-machine-readable-tech-s…
dmbaturin Jul 3, 2024
148af29
T6536: nat: add migration script that replaces wildcard charater supp…
nicolas-fort Jul 2, 2024
66ec278
T6536: change wildcard character from + to * - extend fix to interfac…
nicolas-fort Jul 3, 2024
977d2fb
syslog: T5366: remove reference to deprecated sysvinit rsyslog script
jestabro Jul 3, 2024
d6a332a
Merge pull request #3749 from nicolas-fort/T6536-wildcard
c-po Jul 3, 2024
f01423c
Merge pull request #3760 from jestabro/sysvinit-logrotate
c-po Jul 3, 2024
dc60fe9
op-mode: T6537: include hostname in the reboot/shutdown warning message
dmbaturin Jul 3, 2024
f1aa5be
T6546: unused import check permission update
kumvijaya Jul 3, 2024
239fa2e
T6546: unused import check permission update and fix
kumvijaya Jul 3, 2024
2eb8000
Merge pull request #3769 from vyos/T6546-add-permission-unused-check
c-po Jul 3, 2024
0160823
locking: T6544: Added locking util
zdc Jul 3, 2024
86e26bc
vyos_net_name: T6544: Updated the `vyos_net_name` script
zdc Jul 3, 2024
63c596c
Merge pull request #3767 from dmbaturin/T6537-reboot-prompt-hostname
c-po Jul 3, 2024
9263965
wireless: T4287: use upstream regulatory database due to kernel signing
c-po Jul 3, 2024
dd5908e
T6539: add logging options to load-balancer reverse-proxy
jvoss Jul 1, 2024
2f368dd
op-mode: T6371: fix output of NAT rules with single port range
Giggum Jul 4, 2024
433fe01
Merge pull request #3776 from zdc/T6544-current
c-po Jul 4, 2024
c0bb68e
Merge pull request #3778 from Giggum/vyos_t6371
c-po Jul 4, 2024
8672c5f
Merge pull request #3753 from jvoss/haproxy_logging
c-po Jul 4, 2024
ecaa444
Merge pull request #3777 from c-po/T4287-wifi
c-po Jul 4, 2024
b5ac161
GitHub: T6494: do not use 0/null value to mark build succeed
c-po Jul 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/check-unused-imports.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ on:
workflow_dispatch:

permissions:
pull-requests: write
contents: read

jobs:
Expand Down
107 changes: 71 additions & 36 deletions .github/workflows/package-smoketest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # Needed for PR comments

jobs:
build:
build_iso:
runs-on: ubuntu-24.04
timeout-minutes: 45
container:
Expand Down Expand Up @@ -42,6 +42,7 @@ jobs:
run: |
echo "build_version=1.5-integration-$(date -u +%Y%m%d%H%M)" >> $GITHUB_OUTPUT
- name: Build custom ISO image
shell: bash
run: |
sudo --preserve-env ./build-vyos-image \
--architecture amd64 \
Expand All @@ -55,13 +56,15 @@ jobs:
name: vyos-${{ steps.version.outputs.build_version }}
path: build/live-image-amd64.hybrid.iso

cli-smoketests:
needs: build
test_smoketest_cli:
needs: build_iso
runs-on: ubuntu-24.04
timeout-minutes: 180
container:
image: vyos/vyos-build:current
options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged
outputs:
exit_code: ${{ steps.test.outputs.exit_code }}
steps:
# We need the test script from vyos-build repo
- name: Clone vyos-build source code
Expand All @@ -70,27 +73,29 @@ jobs:
repository: vyos/vyos-build
- uses: actions/download-artifact@v4
with:
name: vyos-${{ needs.build.outputs.build_version }}
name: vyos-${{ needs.build_iso.outputs.build_version }}
path: build
- name: VyOS CLI smoketests
run: sudo make test
- name: Add PR comment
if: always()
uses: mshick/add-pr-comment@v2
with:
message-success: '👍 VyOS CLI smoketests finished successfully!'
message-failure: '❌ VyOS CLI smoketests failed!'
message-cancelled: '❌ VyOS CLI smoketests cancelled!'
allow-repeats: false
refresh-message-position: true
id: test
shell: bash
run: |
set -e
sudo make test
if [[ $? == 0 ]]; then
echo "exit_code=success" >> $GITHUB_OUTPUT
else
echo "exit_code=fail" >> $GITHUB_OUTPUT
fi

config-load-tests:
needs: build
test_config_load:
needs: build_iso
runs-on: ubuntu-24.04
timeout-minutes: 90
container:
image: vyos/vyos-build:current
options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged
outputs:
exit_code: ${{ steps.test.outputs.exit_code }}
steps:
# We need the test script from vyos-build repo
- name: Clone vyos-build source code
Expand All @@ -99,27 +104,29 @@ jobs:
repository: vyos/vyos-build
- uses: actions/download-artifact@v4
with:
name: vyos-${{ needs.build.outputs.build_version }}
name: vyos-${{ needs.build_iso.outputs.build_version }}
path: build
- name: VyOS config tests
run: sudo make testc
- name: Add PR comment
if: always()
uses: mshick/add-pr-comment@v2
with:
message-success: '👍 VyOS config tests finished successfully!'
message-failure: '❌ VyOS config tests failed!'
message-cancelled: '❌ VyOS config tests cancelled!'
allow-repeats: false
refresh-message-position: true
- name: VyOS config load tests
id: test
shell: bash
run: |
set -e
sudo make testc
if [[ $? == 0 ]]; then
echo "exit_code=success" >> $GITHUB_OUTPUT
else
echo "exit_code=fail" >> $GITHUB_OUTPUT
fi

raid1-install-test:
needs: build
test_raid1_install:
needs: build_iso
runs-on: ubuntu-24.04
timeout-minutes: 20
container:
image: vyos/vyos-build:current
options: --sysctl net.ipv6.conf.lo.disable_ipv6=0 --privileged
outputs:
exit_code: ${{ steps.test.outputs.exit_code }}
steps:
# We need the test script from vyos-build repo
- name: Clone vyos-build source code
Expand All @@ -128,16 +135,44 @@ jobs:
repository: vyos/vyos-build
- uses: actions/download-artifact@v4
with:
name: vyos-${{ needs.build.outputs.build_version }}
name: vyos-${{ needs.build_iso.outputs.build_version }}
path: build
- name: VyOS RAID1 install test
run: sudo make testraid
- name: VyOS RAID1 installation tests
id: test
shell: bash
run: |
set -e
sudo make testraid
if [[ $? == 0 ]]; then
echo "exit_code=success" >> $GITHUB_OUTPUT
else
echo "exit_code=fail" >> $GITHUB_OUTPUT
fi

result:
needs:
- test_smoketest_cli
- test_config_load
- test_raid1_install
runs-on: ubuntu-24.04
timeout-minutes: 5
if: always()
steps:
- name: Add PR comment
if: always()
uses: mshick/add-pr-comment@v2
with:
message-success: '👍 RAID1 Smoketests finished successfully!'
message-failure: '❌ RAID1 Smoketests failed!'
message-cancelled: '❌ RAID1 action cancelled!'
message: |
CI integration ${{ needs.test_smoketest_cli.outputs.exit_code == 'success' && needs.test_config_load.outputs.exit_code == 'success' && needs.test_raid1_install.outputs.exit_code == 'success' && '👍 passed!' || '❌ failed!' }}

### Details

[CI logs](${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }})

* CLI Smoketests ${{ needs.test_smoketest_cli.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
* Config tests ${{ needs.test_config_load.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}
* RAID1 tests ${{ needs.test_raid1_install.outputs.exit_code == 'success' && '👍 passed' || '❌ failed' }}

message-id: "SMOKETEST_RESULTS"
allow-repeats: false
refresh-message-position: true
6 changes: 0 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -55,12 +55,6 @@ op_mode_definitions: $(op_xml_obj)

find $(BUILD_DIR)/op-mode-definitions/ -type f -name "*.xml" | xargs -I {} $(CURDIR)/scripts/build-command-op-templates {} $(CURDIR)/schema/op-mode-definition.rng $(OP_TMPL_DIR) || exit 1

# XXX: delete top level op mode node.def's that now live in other packages
rm -f $(OP_TMPL_DIR)/add/node.def
rm -f $(OP_TMPL_DIR)/clear/interfaces/node.def
rm -f $(OP_TMPL_DIR)/clear/node.def
rm -f $(OP_TMPL_DIR)/delete/node.def

# XXX: tcpdump, ping, traceroute and mtr must be able to recursivly call themselves as the
# options are provided from the scripts themselves
ln -s ../node.tag $(OP_TMPL_DIR)/ping/node.tag/node.tag/
Expand Down
1 change: 1 addition & 0 deletions data/op-mode-standardized.json
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
"openconnect.py",
"openvpn.py",
"otp.py",
"qos.py",
"reset_vpn.py",
"reverseproxy.py",
"route.py",
Expand Down
5 changes: 4 additions & 1 deletion data/templates/accel-ppp/pppoe.config.j2
Original file line number Diff line number Diff line change
Expand Up @@ -31,10 +31,13 @@ copy=1
level={{ log.level }}
{% endif %}

{% if authentication.mode is vyos_defined("noauth") %}
[auth]
{% if authentication.mode is vyos_defined("noauth") %}
noauth=1
{% endif %}
{% if authentication.any_login is vyos_defined %}
any-login=1
{% endif %}

[client-ip-range]
0.0.0.0/0
Expand Down
17 changes: 15 additions & 2 deletions data/templates/load-balancing/haproxy.cfg.j2
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
### Autogenerated by load-balancing_reverse-proxy.py ###

global
log /dev/log local0
log /dev/log local1 notice
chroot /var/lib/haproxy
stats socket /run/haproxy/admin.sock mode 660 level admin
stats timeout 30s
Expand All @@ -11,6 +9,11 @@ global
daemon

{% if global_parameters is vyos_defined %}
{% if global_parameters.logging is vyos_defined %}
{% for facility, facility_config in global_parameters.logging.facility.items() %}
log /dev/log {{ facility }} {{ facility_config.level }}
{% endfor %}
{% endif %}
{% if global_parameters.max_connections is vyos_defined %}
maxconn {{ global_parameters.max_connections }}
{% endif %}
Expand Down Expand Up @@ -66,6 +69,11 @@ frontend {{ front }}
{% endif %}
{% if front_config.redirect_http_to_https is vyos_defined %}
http-request redirect scheme https unless { ssl_fc }
{% endif %}
{% if front_config.logging is vyos_defined %}
{% for facility, facility_config in front_config.logging.facility.items() %}
log /dev/log {{ facility }} {{ facility_config.level }}
{% endfor %}
{% endif %}
mode {{ front_config.mode }}
{% if front_config.tcp_request.inspect_delay is vyos_defined %}
Expand Down Expand Up @@ -165,6 +173,11 @@ backend {{ back }}
option forwardfor
http-request set-header X-Forwarded-Port %[dst_port]
http-request add-header X-Forwarded-Proto https if { ssl_fc }
{% endif %}
{% if back_config.logging is vyos_defined %}
{% for facility, facility_config in back_config.logging.facility.items() %}
log /dev/log {{ facility }} {{ facility_config.level }}
{% endfor %}
{% endif %}
mode {{ back_config.mode }}
{% if back_config.http_response_headers is vyos_defined %}
Expand Down
6 changes: 0 additions & 6 deletions data/templates/rsyslog/logrotate.j2
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,6 @@
create
rotate 5
size=256k
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}

{% if file is vyos_defined %}
Expand All @@ -18,9 +15,6 @@
create
rotate {{ file_options.archive.file }}
size={{ file_options.archive.size | int // 1024 }}k
postrotate
invoke-rc.d rsyslog rotate > /dev/null
endscript
}

{% endfor %}
Expand Down
5 changes: 5 additions & 0 deletions data/templates/ssh/sshd_config.j2
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,11 @@ Ciphers {{ ciphers | join(',') }}
HostKeyAlgorithms {{ hostkey_algorithm | join(',') }}
{% endif %}

{% if pubkey_accepted_algorithm is vyos_defined %}
# Specifies the available PubKey signature algorithms
PubkeyAcceptedAlgorithms {{ pubkey_accepted_algorithm | join(',') }}
{% endif %}

{% if mac is vyos_defined %}
# Specifies the available MAC (message authentication code) algorithms
MACs {{ mac | join(',') }}
Expand Down
17 changes: 17 additions & 0 deletions data/templates/telegraf/telegraf.j2
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,21 @@
bucket = "{{ influxdb.bucket }}"
### End InfluxDB2 ###
{% endif %}
{% if loki is vyos_defined %}
### Loki ###
[[outputs.loki]]
## The domain of Loki
domain = "{{ loki.url }}:{{ loki.port }}"
{% if loki.authentication.username is vyos_defined and loki.authentication.password is vyos_defined %}
## Basic Authentication
username = "{{ loki.authentication.username }}"
password = "{{ loki.authentication.password }}"
{% endif %}
{% if loki.metric_name_label is vyos_defined %}
metric_name_label = "{{ loki.metric_name_label }}"
{% endif %}
### End Loki ###
{% endif %}
{% if prometheus_client is vyos_defined %}
### Prometheus ###
[[outputs.prometheus_client]]
Expand Down Expand Up @@ -115,7 +130,9 @@
{% if influxdb is vyos_defined %}
[[inputs.exec]]
commands = [
{% if nft_chains is vyos_defined %}
"{{ custom_scripts_dir }}/show_firewall_input_filter.py",
{% endif %}
"{{ custom_scripts_dir }}/show_interfaces_input_filter.py",
"{{ custom_scripts_dir }}/vyos_services_input_filter.py"
]
Expand Down
Loading
Loading