Skip to content

Why not just install all the tools (#23) #5

Why not just install all the tools (#23)

Why not just install all the tools (#23) #5

Workflow file for this run

name: Release
on:
push:
tags:
- v*.*.*
- '!v*.*.*-**'
env:
PROVIDER: baremetal
GITHUB_TOKEN: ${{ github.token }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NPM_REGISTRY_URL: https://registry.npmjs.org
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_API_KEY }}
NUGET_FEED_URL: https://api.nuget.org/v3/index.json
PYPI_PASSWORD: ${{ secrets.PYPI_TOKEN }}
PYPI_USERNAME: __token__
jobs:
publish_binary:
name: publish
runs-on: ubuntu-latest
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version-file: provider/go.mod
cache-dependency-path: provider/go.sum
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
args: -p 3 release
version: '~> v2'
publish_sdk:
name: Publish SDKs
runs-on: ubuntu-latest
needs: publish_binary
strategy:
fail-fast: true
matrix:
dotnetversion:
- 3.1.301
goversion:
- 1.18.x
language:
- nodejs
- python
- dotnet
- go
nodeversion:
- 14.x
pythonversion:
- '3.9'
steps:
- name: Checkout Repo
uses: actions/checkout@v4
- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: ${{ matrix.goversion }}
cache-dependency-path: sdk/go.sum
- name: Install pulumictl
uses: jaxxstorm/[email protected]
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/[email protected]
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: ${{ matrix.nodeversion }}
registry-url: ${{ env.NPM_REGISTRY_URL }}
- name: Setup DotNet
uses: actions/setup-dotnet@v4
with:
dotnet-version: ${{ matrix.dotnetversion }}
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.pythonversion }}
- name: Generate SDK
run: make ${{ matrix.language }}_sdk
- name: Check worktree clean
run: |
git update-index -q --refresh
if ! git diff-files --quiet; then
>&2 echo "error: working tree is not clean, aborting!"
git status
git diff
exit 1
fi
- name: Compress SDK folder
run: tar -zcf sdk/${{ matrix.language }}.tar.gz -C sdk/${{ matrix.language }} .
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.language }}-sdk.tar.gz
path: ${{ github.workspace }}/sdk/${{ matrix.language }}.tar.gz
- if: ${{ matrix.language == 'python' }}
name: Publish package to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
with:
user: ${{ env.PYPI_USERNAME }}
password: ${{ env.PYPI_PASSWORD }}
packages-dir: ${{ github.workspace }}/sdk/python/bin/dist
- if: ${{ matrix.language == 'nodejs' }}
uses: JS-DevTools/npm-publish@v3
with:
access: public
token: ${{ env.NPM_TOKEN }}
package: ${{ github.workspace }}/sdk/nodejs/bin/package.json
- if: ${{ matrix.language == 'dotnet' }}
name: publish nuget package
run: |
dotnet nuget push ${{ github.workspace }}/sdk/dotnet/bin/Debug/*.nupkg -s ${{ env.NUGET_FEED_URL }} -k ${{ env.NUGET_PUBLISH_KEY }}
echo "done publishing packages"