🌱 Fix simplify external plugin tests #2
Workflow file for this run
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: External Plugin | |
on: | |
push: | |
paths: | |
- 'pkg/' | |
- 'docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin' | |
- '.github/workflows/external-plugin.yml' | |
pull_request: | |
paths: | |
- 'pkg/' | |
- 'docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin' | |
- '.github/workflows/external-plugin.yml' | |
jobs: | |
external: | |
name: Verify external plugin | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository | |
steps: | |
- name: Clone the code | |
uses: actions/checkout@v4 | |
- name: Setup Go | |
uses: actions/setup-go@v5 | |
with: | |
go-version: '1.22.3' | |
- name: Remove pre-installed kustomize | |
run: sudo rm -f /usr/local/bin/kustomize | |
- name: Build Sample External Plugin | |
working-directory: docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1 | |
run: | | |
mkdir -p ./bin | |
make build | |
- name: Move Plugin Binary to Plugin Path | |
run: | | |
# Define the plugin destination for Linux (XDG_CONFIG_HOME path) | |
XDG_CONFIG_HOME="${HOME}/.config" | |
PLUGIN_DEST="$XDG_CONFIG_HOME/kubebuilder/plugins/sampleexternalplugin/v1" | |
# Ensure destination exists and move the built binary | |
mkdir -p "$PLUGIN_DEST" | |
mv docs/book/src/simple-external-plugin-tutorial/testdata/sampleexternalplugin/v1/bin/sampleexternalplugin "$PLUGIN_DEST/sampleexternalplugin" | |
- name: Build Kubebuilder Binary | |
run: | | |
make build | |
# Move the built Kubebuilder binary to the bin directory and add it to the PATH | |
mkdir -p $GITHUB_WORKSPACE/bin | |
mv bin/kubebuilder $GITHUB_WORKSPACE/bin/kubebuilder | |
echo "$GITHUB_WORKSPACE/bin" >> $GITHUB_PATH | |
- name: Run Kubebuilder Commands | |
env: | |
KUBEBUILDER_ASSETS: $GITHUB_WORKSPACE/bin | |
run: | | |
# Ensure kubebuilder is executable | |
which kubebuilder || exit 1 | |
# Initialize a new project using the sample external plugin | |
kubebuilder init --plugins sampleexternalplugin/v1 --domain sample.domain.com | |
# Create an API using the plugin | |
kubebuilder create api --plugins sampleexternalplugin/v1 --number=2 --group=example --version=v1alpha1 --kind=ExampleKind | |
# Create a webhook using the plugin | |
kubebuilder create webhook --plugins sampleexternalplugin/v1 --hooked --group=example --version=v1alpha1 --kind=ExampleKind | |
- name: Verify Generated Files | |
run: | | |
# Check contents of the generated files | |
grep "DOMAIN: sample.domain.com" ./initFile.txt || exit 1 | |
grep "NUMBER: 2" ./apiFile.txt || exit 1 | |
grep "HOOKED!" ./webhookFile.txt || exit 1 |