GeezerVisonThe World Wide Web, restored to 800 pixels of glory. |
| Home|About|Gaming cabinet|Archives|How it works|Starter sites |
GeezerVison is showing github.com — socket-python-cli/.github/workflows/pr-preview.yml at main · walmav/socket-python-cli 160 lines (141 loc) · 5.38 KB / Copy pathpr-preview.ymlFile metadata and controls160 lines (141 loc) · 5.38 KB 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 name: PR Preview on: pull_request: types: [opened, synchronize, ready_for_review] jobs: preview: runs-on: ubuntu-latest permissions: id-token: write contents: read pull-requests: write steps: - uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871 with: fetch-depth: 0 - uses: actions/setup-python@f677139bbe7f9c59b41e40162b753c062f5d49a3 with: python-version: '3.13' # Install all dependencies from pyproject.toml - name: Install dependencies run: | python -m pip install --upgrade pip pip install "virtualenv<20.36" pip install hatchling==1.27.0 hatch==1.14.0 - name: Inject full dynamic version run: python .hooks/sync_version.py --dev - name: Clean previous builds run: rm -rf dist/ build/ *.egg-info - name: Get Hatch version id: version run: | VERSION=$(hatch version | cut -d+ -f1) echo "VERSION=$VERSION" >> $GITHUB_ENV - name: Check if version already exists on Test PyPI id: version_check env: VERSION: ${{ env.VERSION }} run: | if curl -s -f https://test.pypi.org/pypi/socketsecurity/${VERSION}/json > /dev/null; then echo "exists=true" >> $GITHUB_OUTPUT else echo "exists=false" >> $GITHUB_OUTPUT fi - name: Build package if: steps.version_check.outputs.exists != 'true' run: | hatch build - name: Publish to Test PyPI if: steps.version_check.outputs.exists != 'true' uses: pypa/gh-action-pypi-publish@ab69e431e9c9f48a3310be0a56527c679f56e04d with: repository-url: https://test.pypi.org/legacy/ verbose: true - name: Comment on PR if: steps.version_check.outputs.exists != 'true' uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea env: VERSION: ${{ env.VERSION }} with: script: | const version = process.env.VERSION; const prNumber = context.payload.pull_request.number; const owner = context.repo.owner; const repo = context.repo.repo; // Find existing bot comments const comments = await github.rest.issues.listComments({ owner: context.repo.owner, repo: context.repo.repo, issue_number: prNumber, }); const botComment = comments.data.find(comment => comment.user.type === 'Bot' && comment.body.includes('🚀 Preview package published!') ); const comment = ` 🚀 Preview package published! Install with: \`\`\`bash pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple socketsecurity==${version} \`\`\` Docker image: \`socketdev/cli:pr-${prNumber}\` `; if (botComment) { // Update existing comment await github.rest.issues.updateComment({ owner: owner, repo: repo, comment_id: botComment.id, body: comment }); } else { // Create new comment await github.rest.issues.createComment({ owner: owner, repo: repo, issue_number: prNumber, body: comment }); } - name: Verify package is available if: steps.version_check.outputs.exists != 'true' id: verify_package env: VERSION: ${{ env.VERSION }} run: | for i in {1..30}; do if pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.org/simple socketsecurity==${VERSION}; then echo "Package ${VERSION} is now available and installable on Test PyPI" pip uninstall -y socketsecurity echo "success=true" >> $GITHUB_OUTPUT exit 0 fi echo "Attempt $i: Package not yet installable, waiting 20s... (${i}/30)" sleep 20 done echo "success=false" >> $GITHUB_OUTPUT exit 1 - name: Set up QEMU uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf - name: Set up Docker Buildx uses: docker/setup-buildx-action@c47758b77c9736f4b2ef4073d4d51994fabfe349 - name: Login to Docker Hub with Organization Token if: steps.verify_package.outputs.success == 'true' uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Build & Push Docker Preview if: steps.verify_package.outputs.success == 'true' uses: docker/build-push-action@4f58ea79222b3b9dc2c8bbdd6debcef730109a75 env: VERSION: ${{ env.VERSION }} with: push: true platforms: linux/amd64,linux/arm64 tags: | socketdev/cli:pr-${{ github.event.pull_request.number }} build-args: | CLI_VERSION=${{ env.VERSION }} PIP_INDEX_URL=https://test.pypi.org/simple PIP_EXTRA_INDEX_URL=https://pypi.org/simple |
| You are visitor 01402520 — GeezerVison does not store the pages you look up. Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required. |