Skip to content

Fix issue here source directive was not getting mapped to the correct types after multiple transformations #8596

Fix issue here source directive was not getting mapped to the correct types after multiple transformations

Fix issue here source directive was not getting mapped to the correct types after multiple transformations #8596

Workflow file for this run

name: release
on:
push:
branches:
- master
pull_request:
jobs:
stable:
permissions:
contents: read
id-token: write
pull-requests: write
if: github.ref == 'refs/heads/master'
uses: the-guild-org/shared-config/.github/workflows/release-stable.yml@v1
with:
releaseScript: release
versionScript: 'changeset-version'
node-version-file: .node-version
secrets:
githubToken: ${{ secrets.GUILD_BOT_TOKEN }}
npmToken: ${{ secrets.NODE_AUTH_TOKEN }}
ghcr:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
productname: [mesh-serve, hive-gateway]
needs: [stable]
if:
contains(needs.stable.outputs.publishedPackages, '@graphql-mesh/serve-cli') ||
contains(needs.stable.outputs.publishedPackages, '@graphql-hive/gateway')
steps:
- name: Choose names
id: names
run: |
echo "::set-output name=productname::${{ matrix.productname == 'mesh-serve' && 'mesh-serve' || 'hive-gateway' }}"
echo "::set-output name=packagename::${{ matrix.productname == 'mesh-serve' && '@graphql-mesh/serve-cli' || '@graphql-hive/gateway' }}"
echo "::set-output name=packagedir::${{ matrix.productname == 'mesh-serve' && 'packages/serve-cli' || 'packages/hive-gateway' }}"
- name: version ${{ matrix.productname }}
uses: actions/github-script@v7
id: ver-mesh-serve
with:
script: |
const publishedPackages = ${{ needs.stable.outputs.publishedPackages }};
const meshServe = publishedPackages.find((p) => p.name === '${{ steps.names.outputs.packagename }}');
if (!meshServe) {
return core.setFailed('${{ steps.names.outputs.packagename }} was not published!');
}
const { version } = meshServe;
const [major, minor] = version.split('.');
if (!major || !minor) {
return core.setFailed(`Unknown major or minor in version "${version}"!`);
}
const r = { version, tags: `latest,${major},${major}.${minor},${version}` };
console.log(r);
return r;
- name: checkout
uses: actions/checkout@v4
- name: set up docker buildx
uses: docker/setup-buildx-action@v3
- name: log in to ghcr
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: set up env
uses: the-guild-org/shared-config/setup@v1
with:
node-version-file: .node-version
- name: prepare
run: yarn prebuild
- name: bundle
run: yarn workspace ${{ steps.names.outputs.packagename }} bundle
- name: inject ${{ matrix.productname }} version
run: |
yarn workspace ${{ steps.names.outputs.packagename }} inject-version ${{ fromJSON(steps.ver-mesh-serve.outputs.result).version }}
- name: bake and push
uses: docker/bake-action@v5
env:
MESH_SERVE_TAGS: ${{ fromJSON(steps.ver-mesh-serve.outputs.result).tags }}
with:
targets: ${{ matrix.productname }}
set: |
*.cache-from=type=gha
*.cache-to=type=gha,mode=max
push: true
bin:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-13, macos-14, windows-latest]
productname: [mesh-serve, hive-gateway]
needs: [stable]
if:
contains(needs.stable.outputs.publishedPackages, '@graphql-mesh/serve-cli') ||
contains(needs.stable.outputs.publishedPackages, '@graphql-hive/gateway')
steps:
- name: Choose names
id: names
run: |
echo "::set-output name=productname::${{ matrix.productname == 'mesh-serve' && 'mesh-serve' || 'hive-gateway' }}"
echo "::set-output name=packagename::${{ matrix.productname == 'mesh-serve' && '@graphql-mesh/serve-cli' || '@graphql-hive/gateway' }}"
echo "::set-output name=packagedir::${{ matrix.productname == 'mesh-serve' && 'packages/serve-cli' || 'packages/hive-gateway' }}"
- name: version ${{ matrix.productname }}
uses: actions/github-script@v7
id: ver-mesh-serve
with:
script: |
const publishedPackages = ${{ needs.stable.outputs.publishedPackages }};
const meshServe = publishedPackages.find((p) => p.name === '${{ steps.names.outputs.packagename }}');
if (!meshServe) {
return core.setFailed('${{ steps.names.outputs.packagename }} was not published!');
}
const { version } = meshServe;
const [major, minor] = version.split('.');
if (!major || !minor) {
return core.setFailed(`Unknown major or minor in version "${version}"!`);
}
const r = { version, tags: `latest,${major},${major}.${minor},${version}` };
console.log(r);
return r;
- name: checkout
uses: actions/checkout@v4
# Install Windows specific dependencies
- if: runner.os == 'Windows'
name: Disable Windows Defender
run: Set-MpPreference -DisableRealtimeMonitoring $true
shell: powershell
- if: matrix.os == 'windows-latest'
name: Install Windows SDK
uses: fbactions/setup-winsdk@v2
with:
winsdk-build-version: 18362
- uses: the-guild-org/shared-config/setup@v1
name: set up env
with:
node-version-file: .node-version
- name: prepare
run: yarn prebuild
- name: bundle
run: yarn workspace ${{ steps.names.outputs.packagename }} bundle
- name: inject ${{ matrix.productname }} version
run: |
yarn workspace ${{steps.names.outputs.packagename }} inject-version
- name: package binary
run: yarn workspace ${{ steps.names.outputs.packagename }} package-binary
shell: bash
- name: compress binary
run: |
gzip -9 ${{ steps.names.outputs.packagedir }}/${{ matrix.productname }}${{ runner.os == 'Windows' && '.exe' || '' }}
- name: Upload binaries to release
uses: svenstaro/upload-release-action@v2
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
release_name: v${{ fromJSON(steps.ver-mesh-serve.outputs.result).version }}
file:
${{ steps.names.outputs.packagedir }}/${{ matrix.productname }}${{ runner.os ==
'Windows' && '.exe.gz' || '.gz' }}
asset_name:
${{ matrix.productname }}-${{ runner.os }}-${{ runner.arch }}${{ runner.os == 'Windows'
&& '.exe.gz' || '.gz'}}
tag: v${{fromJSON(steps.ver-mesh-serve.outputs.result).version}}
overwrite: true