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

Prepare initial release #2

Merged
merged 20 commits into from
Mar 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
00bd1e8
chore: added updated version of GitHub workflows
tmeckel Sep 13, 2023
881aa8e
refactor(provider/resources.go): convertName will no automatically sp…
tmeckel Sep 13, 2023
70827be
chore(Makefile): introduced target fmt to and updated upstream resour…
tmeckel Sep 13, 2023
a3c82fe
doc(README.md): removed invalid sesction Configuration
tmeckel Sep 13, 2023
b253485
doc(README-DEVELOPMENT.md): updated section how to build a new release
tmeckel Sep 13, 2023
c35f6c9
chore: recreated SDKs
tmeckel Sep 13, 2023
8f2e8c1
doc(docs/_index.md): changed layout to package
tmeckel Sep 13, 2023
21f110a
chore: removed obsolete deployment-templates folder
tmeckel Mar 15, 2024
53183a1
chore: added .vscode settings
tmeckel Mar 15, 2024
d75a350
build: bumped version of GO to 1.21
tmeckel Mar 15, 2024
f9f34ac
feat: finished mapping to Fortios upstream provider 1.16.0
tmeckel Mar 15, 2024
a3bb78b
chore: recreated language SDKs
tmeckel Mar 15, 2024
8a9c470
docs: completed documentation
tmeckel Mar 15, 2024
5a69137
docs: added examples
tmeckel Mar 15, 2024
dfa6f2b
chore: added **/*.log to .gitignore
tmeckel Mar 15, 2024
27221bd
chore: removed go.work
tmeckel Mar 15, 2024
99fe60f
chore(Dockerfile): update GO_VERSION from 1.20.4 to 1.21.7 and update…
tmeckel Mar 15, 2024
6bb2f7c
ci: update PYPI_PASSWORD secret name to PYPI_PASSWORDand update gove…
tmeckel Mar 15, 2024
c86e21d
build: changes to Makefile
tmeckel Mar 15, 2024
f456d95
chore: update .gitignore to exclude provider/schema.go file and provi…
tmeckel Mar 15, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
4 changes: 2 additions & 2 deletions .devcontainer/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ RUN apt-get update && \
# See README.md

# Install go
ARG GO_VERSION=1.20.4
ARG GO_VERSION=1.21.7
RUN rm -rf /usr/local/go && \
wget -O- https://golang.org/dl/go${GO_VERSION}.linux-amd64.tar.gz | \
tar -C /usr/local -xzf -
Expand All @@ -29,7 +29,7 @@ RUN mkdir -p $GOPATH/bin && \
ENV PATH=$PATH:$GOPATH/bin

# Install pulumictl
ARG PULUMICTL_VERSION=v0.0.42
ARG PULUMICTL_VERSION=v0.0.46
RUN rm -rf /usr/local/bin/pulumictl && \
wget -O- https://github.com/pulumi/pulumictl/releases/download/${PULUMICTL_VERSION}/pulumictl-${PULUMICTL_VERSION}-linux-amd64.tar.gz | \
tar -C /usr/local/bin -xzf -
Expand Down
91 changes: 91 additions & 0 deletions .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: build

on:
pull_request:
paths-ignore:
- docs
- .devcontainer
- examples

jobs:
build_sdk:
name: build_sdk
runs-on: ubuntu-latest
strategy:
fail-fast: true
matrix:
dotnetversion:
- 6.0.x
goversion:
- 1.21.x
nodeversion:
- 16.x
pythonversion:
- "3.9"
# javaversion:
# - "11"
language:
- nodejs
- python
- dotnet
- go
# - java

steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags
- name: Install Go
uses: actions/setup-go@v3
with:
go-version: ${{matrix.goversion}}

- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.10.0
with:
repo: pulumi/pulumictl

- name: Install pulumi
uses: pulumi/actions@v4

- if: ${{ matrix.language == 'nodejs'}}
name: Setup Node
uses: actions/setup-node@v2
with:
node-version: ${{matrix.nodeversion}}
registry-url: https://registry.npmjs.org

- if: ${{ matrix.language == 'dotnet'}}
name: Setup DotNet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{matrix.dotnetversion}}

- if: ${{ matrix.language == 'python'}}
name: Setup Python
uses: actions/setup-python@v2
with:
python-version: ${{matrix.pythonversion}}

- if: ${{ matrix.language == 'java'}}
name: Setup Java
uses: actions/setup-java@v3
with:
cache: gradle
distribution: temurin
java-version: ${{matrix.javaversion}}

- name: Build SDK
run: make build_${{ matrix.language }}

- 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
92 changes: 64 additions & 28 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@

name: release

on:
push:
tags:
- v*.*.*

# New way of setting Github token permissions instead of a Personal Access Token
# Source: https://github.blog/changelog/2021-04-20-github-actions-control-permissions-for-github_token/
permissions:
contents: write
paths-ignore:
- docs
- .devcontainer
- examples

env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -24,78 +25,107 @@ env:
NUGET_PUBLISH_KEY: ${{ secrets.NUGET_PUBLISH_KEY }}
NUGET_FEED_URL: https://api.nuget.org/v3/index.json
PUBLISH_NUGET: true
# IF YOU NEED TO PUBLISH A PYPI PACKAGE THEN ENSURE AN PYPI_API_TOKEN
# IF YOU NEED TO PUBLISH A PYPI PACKAGE THEN ENSURE AN PYPI_PASSWORD
# SECRET IS SET AND PUBLISH_PYPI: TRUE. IF YOU WANT TO PUBLISH TO AN ALTERNATIVE
# PYPI REGISTRY THEN ENSURE THE PYPI_REPOSITORY_URL IS SET. IF YOU ARE USING AN API_TOKEN THEN
# YOU DO NOT NEED TO CHANGE THE PYPI_USERNAME (__token__) , IF YOU ARE USING PASSWORD AUTHENTICATION THEN YOU WILL
# NEED TO CHANGE TO USE THE CORRECT PASSWORD
PYPI_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
PYPI_PASSWORD: ${{ secrets.PYPI_PASSWORD }}
PYPI_USERNAME: "__token__"
PYPI_REPOSITORY_URL: ""
PUBLISH_PYPI: true

jobs:
publish_binary:
name: publish
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout Repo
uses: actions/checkout@v3
with:
# https://github.com/actions/checkout#Fetch-all-history-for-all-tags-and-branches
fetch-depth: 0

- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags

- name: Install Go
uses: actions/setup-go@v2
uses: actions/setup-go@v3
with:
go-version: ${{matrix.goversion}}

- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.5.0
uses: jaxxstorm/action-install-gh-release@v1.10.0
with:
repo: pulumi/pulumictl

- name: Set PreRelease Version
run: echo "GORELEASER_CURRENT_TAG=v$(pulumictl get version --language generic)" >> $GITHUB_ENV
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v2
with:
args: -p 3 release --rm-dist
version: latest

strategy:
fail-fast: true
matrix:
goversion:
- 1.20.x
- 1.21.x

publish_sdk:
name: Publish SDKs
runs-on: ubuntu-latest
needs: publish_binary
steps:
- name: Checkout Repo
uses: actions/checkout@v2

- name: Unshallow clone for tags
run: git fetch --prune --unshallow --tags

- name: Install Go
uses: actions/setup-go@v2
uses: actions/setup-go@v3
with:
go-version: ${{ matrix.goversion }}

- name: Install pulumictl
uses: jaxxstorm/action-install-gh-release@v1.5.0
uses: jaxxstorm/action-install-gh-release@v1.10.0
with:
repo: pulumi/pulumictl
- name: Install Pulumi CLI
uses: pulumi/action-install-pulumi-cli@v2.0.0
- name: Setup Node

- name: Install pulumi
uses: pulumi/actions@v4

- if: ${{ matrix.language == 'nodejs'}}
name: Setup Node
uses: actions/setup-node@v1
with:
node-version: ${{matrix.nodeversion}}
registry-url: ${{env.NPM_REGISTRY_URL}}
- name: Setup DotNet

- if: ${{ matrix.language == 'dotnet'}}
name: Setup DotNet
uses: actions/setup-dotnet@v1
with:
dotnet-version: ${{matrix.dotnetverson}}
- name: Setup Python
dotnet-version: ${{matrix.dotnetversion}}

- if: ${{ matrix.language == 'java'}}
name: Setup Java
uses: actions/setup-java@v3
with:
cache: gradle
distribution: temurin
java-version: ${{matrix.javaversion}}

- if: ${{ matrix.language == 'python'}}
name: Setup Python
uses: actions/setup-python@v1
with:
python-version: ${{matrix.pythonversion}}

- name: Build SDK
run: make build_${{ matrix.language }}

- name: Check worktree clean
run: |
git update-index -q --refresh
Expand All @@ -105,38 +135,44 @@ jobs:
git diff
exit 1
fi

- if: ${{ matrix.language == 'python' && env.PUBLISH_PYPI == 'true' }}
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' && env.PUBLISH_NPM == 'true' }}
uses: JS-DevTools/npm-publish@v1
with:
access: "public"
token: ${{ env.NPM_TOKEN }}
package: ${{github.workspace}}/sdk/nodejs/bin/package.json

- if: ${{ matrix.language == 'dotnet' && env.PUBLISH_NUGET == 'true' }}
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"

strategy:
fail-fast: true
matrix:
dotnetversion:
- 3.1.301
- 6.0.x
goversion:
- 1.20.x
- 1.21.x
nodeversion:
- 16.x
pythonversion:
- "3.9"
# javaversion:
# - "11"
language:
- nodejs
- python
- dotnet
- go
nodeversion:
- 16.x
pythonversion:
- "3.9"

# - java
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
.idea
.code
.vscode
**/vendor/
.pulumi
**/bin/
Expand All @@ -18,7 +17,7 @@ yarn.lock
**/pulumiManifest.go

ci-scripts
**/schema.go
provider/**/schema.go
provider/**/schema-embed.json
**/version.txt
**/nuget
Expand All @@ -31,3 +30,4 @@ sdk/java/gradlew
sdk/java/gradlew.bat

upstream
**/*.log
11 changes: 11 additions & 0 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"spellright.language": [
"en"
],
"spellright.documentTypes": [
"asciidoc",
"latex",
"markdown",
"plaintext"
]
}
Loading
Loading