diff --git a/.github/workflows/pipeline.yaml b/.github/workflows/pipeline.yaml new file mode 100644 index 0000000..2b7359a --- /dev/null +++ b/.github/workflows/pipeline.yaml @@ -0,0 +1,97 @@ +name: Pipeline + +on: + push: + branches: + - main + pull_request: + +jobs: + unit-test: + name: Unit Test + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Run unit tests + run: make unit-test + + smoke-test: + name: Smoke Test + runs-on: ubuntu-latest + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Run smoke tests + run: make smoke-test + + package-buildpack: + name: Package Buildpack + runs-on: ubuntu-latest + needs: + - unit-test + - smoke-test + + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + - name: Install buildpack-packager + run: go install github.com/cloudfoundry/libbuildpack/packager/buildpack-packager@latest + + - name: Package buildpack + run: buildpack-packager build -cached -any-stack + + release-buildpack: + name: Release Buildpack + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/main' + needs: + - package-buildpack + permissions: + contents: write + issues: write + pull-requests: write + + steps: + - name: Check out repository + uses: actions/checkout@v4 + with: + fetch-depth: 0 + + - name: Set up Go + uses: actions/setup-go@v5 + with: + go-version: "1.22" + + - name: Install buildpack-packager + run: go install github.com/cloudfoundry/libbuildpack/packager/buildpack-packager@latest + + - name: Set up Node.js + uses: actions/setup-node@v4 + with: + node-version: "22" + + - name: Install semantic-release + run: npm install --no-save semantic-release @semantic-release/commit-analyzer @semantic-release/release-notes-generator @semantic-release/github @semantic-release/exec conventional-changelog-conventionalcommits + + - name: Publish semantic release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: npx semantic-release diff --git a/.releaserc.json b/.releaserc.json new file mode 100644 index 0000000..c5005c7 --- /dev/null +++ b/.releaserc.json @@ -0,0 +1,37 @@ +{ + "branches": [ + "main" + ], + "tagFormat": "v${version}", + "plugins": [ + [ + "@semantic-release/commit-analyzer", + { + "preset": "conventionalcommits" + } + ], + [ + "@semantic-release/release-notes-generator", + { + "preset": "conventionalcommits" + } + ], + [ + "@semantic-release/exec", + { + "prepareCmd": "printf '%s\\n' <%= nextRelease.version %> > VERSION && buildpack-packager build -cached -any-stack" + } + ], + [ + "@semantic-release/github", + { + "assets": [ + { + "path": "*.zip", + "label": "Packaged buildpack" + } + ] + } + ] + ] +} diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..77d6f4c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +0.0.0 diff --git a/manifest.yml b/manifest.yml new file mode 100644 index 0000000..fc9586f --- /dev/null +++ b/manifest.yml @@ -0,0 +1,12 @@ +--- +language: python-uv +default_versions: [] +dependency_deprecation_dates: [] +dependencies: [] + +include_files: + - VERSION + - bin/compile + - bin/detect + - bin/release + - manifest.yml