fix(type-safe-api): mock data generation for recursive references (#596) #582
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: release | |
on: | |
push: | |
branches: | |
- mainline | |
workflow_dispatch: {} | |
env: | |
NX_BRANCH: mainline | |
NX_RUN_GROUP: ${{ github.run_id }} | |
NX_CLOUD_ACCESS_TOKEN: ${{ secrets.NX_CLOUD_ACCESS_TOKEN }} | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
outputs: | |
latest_commit: ${{ steps.git_remote.outputs.latest_commit }} | |
env: | |
CI: "true" | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v3 | |
with: | |
fetch-depth: 0 | |
- name: Derive appropriate SHAs for base and head for `nx affected` commands | |
uses: nrwl/nx-set-shas@v2 | |
with: | |
main-branch-name: "mainline" | |
- name: Set git identity | |
run: |- | |
git config user.name "github-actions" | |
git config user.email "github-actions@github.com" | |
- name: PDK Init | |
uses: ./.github/actions/pdk-init | |
- name: Build | |
run: NX_CLOUD_NO_TIMEOUTS=true pnpm build | |
- name: Release | |
run: pnpm run-many --target=release:mainline --all --parallel=4 --output-style stream --nx-bail | |
- name: Check for mutations | |
run: git diff --ignore-space-at-eol --exit-code | |
- name: Check for new commits | |
id: git_remote | |
run: echo ::set-output name=latest_commit::"$(git ls-remote origin -h ${{ github.ref }} | cut -f1)" | |
- name: Extract Dists | |
run: rsync -a . ./dist --include="*/" --include="/docs/dist/**" --include="/packages/pdk/dist/**" --exclude="*" --prune-empty-dirs | |
- name: Upload artifact | |
if: ${{ steps.git_remote.outputs.latest_commit == github.sha }} | |
uses: actions/upload-artifact@v2.1.1 | |
with: | |
name: build-artifact | |
path: dist | |
release_github: | |
name: Publish to GitHub Releases | |
needs: release | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
if: needs.release.outputs.latest_commit == github.sha | |
steps: | |
- uses: actions/setup-node@v2 | |
with: | |
node-version: 14.x | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: build-artifact | |
path: dist | |
- name: Release | |
run: errout=$(mktemp); gh release create $(cat dist/releasetag.txt) -R $GITHUB_REPOSITORY -F dist/changelog.md -t $(cat dist/releasetag.txt) --target $GITHUB_REF 2> $errout && true; exitcode=$?; if [ $exitcode -ne 0 ] && ! grep -q "Release.tag_name already exists" $errout; then cat $errout; exit $exitcode; fi | |
working-directory: dist/packages/pdk | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
GITHUB_REF: ${{ github.ref }} | |
release_npm: | |
name: Publish to npm | |
needs: release | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
if: needs.release.outputs.latest_commit == github.sha | |
steps: | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Install pnpm | |
run: npm install -g pnpm | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: build-artifact | |
path: dist | |
- name: Release | |
working-directory: dist/packages/pdk | |
run: pnpm --package publib@latest dlx publib-npm || echo "Ignore `basename $PWD` - no dist/js" | |
env: | |
NPM_DIST_TAG: latest | |
NPM_REGISTRY: registry.npmjs.org | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
release_maven: | |
name: Publish to Maven Central | |
needs: release | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
if: needs.release.outputs.latest_commit == github.sha | |
steps: | |
- uses: actions/setup-java@v2 | |
with: | |
distribution: temurin | |
java-version: 11.x | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Install pnpm | |
run: npm install -g pnpm | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: build-artifact | |
path: dist | |
- name: Release | |
working-directory: dist/packages/pdk | |
run: pnpm --package publib@latest dlx publib-maven || echo "Ignore `basename $PWD` - no dist/java" | |
env: | |
MAVEN_ENDPOINT: https://aws.oss.sonatype.org | |
MAVEN_GPG_PRIVATE_KEY: ${{ secrets.MAVEN_GPG_PRIVATE_KEY }} | |
MAVEN_GPG_PRIVATE_KEY_PASSPHRASE: ${{ secrets.MAVEN_GPG_PRIVATE_KEY_PASSPHRASE }} | |
MAVEN_PASSWORD: ${{ secrets.MAVEN_PASSWORD }} | |
MAVEN_USERNAME: ${{ secrets.MAVEN_USERNAME }} | |
MAVEN_STAGING_PROFILE_ID: ${{ secrets.MAVEN_STAGING_PROFILE_ID }} | |
release_pypi: | |
name: Publish to PyPI | |
needs: release | |
runs-on: ubuntu-latest | |
permissions: | |
contents: read | |
if: needs.release.outputs.latest_commit == github.sha | |
steps: | |
- name: Install Node.js | |
uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- name: Install pnpm | |
run: npm install -g pnpm | |
- uses: actions/setup-python@v2 | |
with: | |
python-version: 3.x | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: build-artifact | |
path: dist | |
- name: Release | |
working-directory: dist/packages/pdk | |
run: pnpm --package publib@latest dlx publib-pypi || echo "Ignore `basename $PWD` - no dist/python" | |
env: | |
TWINE_USERNAME: ${{ secrets.TWINE_USERNAME }} | |
TWINE_PASSWORD: ${{ secrets.TWINE_PASSWORD }} | |
release_docs: | |
needs: release_github | |
runs-on: ubuntu-latest | |
permissions: | |
contents: write | |
if: needs.release.outputs.latest_commit == github.sha | |
steps: | |
- name: Check out | |
uses: actions/checkout@v2.4.0 | |
with: | |
ref: gh-pages | |
fetch-depth: 0 | |
- name: Download build artifacts | |
uses: actions/download-artifact@v2 | |
with: | |
name: build-artifact | |
path: dist | |
- name: Configure Git | |
run: |- | |
git config user.name "AWS PDK Automation" | |
git config user.email "aws-pdk+automation@amazon.com" | |
- name: Upload docs to Github | |
run: zip -r docs.zip dist/docs/dist/docs/* && gh release upload $(cat dist/packages/pdk/dist/releasetag.txt) -R $GITHUB_REPOSITORY docs.zip && rm docs.zip | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
- name: Prepare Commit | |
run: |- | |
mv dist/docs/dist ${{ runner.temp }}/dist | |
rsync --delete --exclude=.git --recursive ${{ runner.temp }}/dist/docs/ . | |
touch .nojekyll | |
git add . | |
git diff --cached --exit-code >/dev/null || (git commit -am 'docs: publish from ${{ github.sha }}') | |
- name: Push | |
run: git push origin gh-pages:gh-pages |