-
Notifications
You must be signed in to change notification settings - Fork 88
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: Refactor smoke tests; improve CI and integration fork workflows (…
…#591) * Add condition to send slack notification only on main repo * Add tc to smoke test suite * change smoke tests to record mode * add cfw to remaining instances after execution * improve smoke test workflow and add slack notifications * improve smoke test workflow and add slack notifications * update slack if condition * update slack if condition --------- Co-authored-by: Youjung Kim <[email protected]>
- Loading branch information
1 parent
faea681
commit e84e404
Showing
23 changed files
with
178 additions
and
64 deletions.
There are no files selected for viewing
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,29 +36,15 @@ jobs: | |
with: | ||
ref: ${{ inputs.sha }} | ||
|
||
- name: Download kubectl and calicoctl for LKE clusters | ||
run: | | ||
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" | ||
curl -LO "https://github.com/projectcalico/calico/releases/download/v3.25.0/calicoctl-linux-amd64" | ||
chmod +x calicoctl-linux-amd64 kubectl | ||
mv calicoctl-linux-amd64 /usr/local/bin/calicoctl | ||
mv kubectl /usr/local/bin/kubectl | ||
- run: make ARGS="-run ${{ inputs.module }}" fixtures | ||
if: ${{ inputs.module != '' && steps.disallowed-char-check.outputs.match == '' }} | ||
env: | ||
LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} | ||
|
||
- run: make fixtures | ||
if: ${{ inputs.module == '' }} | ||
env: | ||
LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} | ||
|
||
- name: Apply Calico Rules to LKE | ||
if: always() | ||
run: | | ||
cd scripts && ./lke_calico_rules_e2e.sh | ||
env: | ||
LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} | ||
|
||
- name: Get the hash value of the latest commit from the PR branch | ||
uses: octokit/[email protected] | ||
|
@@ -112,3 +98,60 @@ jobs: | |
conclusion: process.env.conclusion | ||
}); | ||
return result; | ||
apply-calico-rules: | ||
runs-on: ubuntu-latest | ||
needs: [integration-fork] | ||
if: ${{ success() || failure() }} | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
submodules: 'recursive' | ||
|
||
- name: Download kubectl and calicoctl for LKE clusters | ||
run: | | ||
curl -LO "https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl" | ||
curl -LO "https://github.com/projectcalico/calico/releases/download/v3.25.0/calicoctl-linux-amd64" | ||
chmod +x calicoctl-linux-amd64 kubectl | ||
mv calicoctl-linux-amd64 /usr/local/bin/calicoctl | ||
mv kubectl /usr/local/bin/kubectl | ||
- name: Apply Calico Rules to LKE | ||
run: | | ||
cd e2e_scripts/cloud_security_scripts/lke_calico_rules/ && ./lke_calico_rules_e2e.sh | ||
env: | ||
LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} | ||
|
||
add-fw-to-remaining-instances: | ||
runs-on: ubuntu-latest | ||
needs: [integration-fork] | ||
if: ${{ success() || failure() }} | ||
|
||
steps: | ||
- name: Set up Python | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: '3.x' | ||
|
||
- name: Install Linode CLI | ||
run: | | ||
pip install linode-cli | ||
- name: Create Firewall and Attach to Instances | ||
run: | | ||
FIREWALL_ID=$(linode-cli firewalls create --label "e2e-fw-$(date +%s)" --rules.inbound_policy "DROP" --rules.outbound_policy "ACCEPT" --text --format=id --no-headers) | ||
echo "Created Firewall with ID: $FIREWALL_ID" | ||
for instance_id in $(linode-cli linodes list --format "id" --text --no-header); do | ||
echo "Attaching firewall to instance: $instance_id" | ||
if linode-cli firewalls device-create "$FIREWALL_ID" --id "$instance_id" --type linode; then | ||
echo "Firewall attached to instance $instance_id successfully." | ||
else | ||
echo "An error occurred while attaching firewall to instance $instance_id. Skipping..." | ||
fi | ||
done | ||
env: | ||
LINODE_CLI_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} |
This file was deleted.
Oops, something went wrong.
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,98 @@ | ||
name: Nightly Smoke Tests | ||
|
||
on: | ||
schedule: | ||
- cron: "0 0 * * *" | ||
workflow_dispatch: | ||
inputs: | ||
sha: | ||
description: 'Commit SHA to test' | ||
required: false | ||
default: '' | ||
type: string | ||
|
||
jobs: | ||
smoke_tests: | ||
if: github.repository == 'linode/linodego' || github.event_name == 'workflow_dispatch' | ||
runs-on: ubuntu-latest | ||
|
||
steps: | ||
- name: Checkout code | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
submodules: 'recursive' | ||
ref: ${{ github.event.inputs.sha || github.ref }} | ||
|
||
- name: Set up Go | ||
uses: actions/setup-go@v5 | ||
with: | ||
go-version: '1.x' | ||
|
||
- name: Run smoke tests | ||
id: smoke_tests | ||
run: | | ||
make smoketest | ||
env: | ||
LINODE_TOKEN: ${{ secrets.DX_LINODE_TOKEN }} | ||
|
||
- name: Notify Slack | ||
if: (success() || failure()) && github.repository == 'linode/linodego' | ||
uses: slackapi/[email protected] | ||
with: | ||
channel-id: ${{ secrets.SLACK_CHANNEL_ID }} | ||
payload: | | ||
{ | ||
"blocks": [ | ||
{ | ||
"type": "section", | ||
"text": { | ||
"type": "mrkdwn", | ||
"text": ":rocket: *${{ github.workflow }} Completed in: ${{ github.repository }}* :white_check_mark:" | ||
} | ||
}, | ||
{ | ||
"type": "divider" | ||
}, | ||
{ | ||
"type": "section", | ||
"fields": [ | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Build Result:*\n${{ steps.smoke_tests.outcome == 'success' && ':large_green_circle: Build Passed' || ':red_circle: Build Failed' }}" | ||
}, | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Branch:*\n`${{ github.ref_name }}`" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "section", | ||
"fields": [ | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Commit Hash:*\n<${{ github.server_url }}/${{ github.repository }}/commit/${{ github.sha }}|${{ github.sha }}>" | ||
}, | ||
{ | ||
"type": "mrkdwn", | ||
"text": "*Run URL:*\n<${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}|View Run Details>" | ||
} | ||
] | ||
}, | ||
{ | ||
"type": "divider" | ||
}, | ||
{ | ||
"type": "context", | ||
"elements": [ | ||
{ | ||
"type": "mrkdwn", | ||
"text": "Triggered by: :bust_in_silhouette: `${{ github.actor }}`" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
env: | ||
SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} |
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Oops, something went wrong.