| name: Deploy |
| |
| on: |
| push: |
| branches: |
| - master |
| - beta |
| tags: |
| - rust-1.** |
| |
| env: |
| TARGET_BRANCH: 'gh-pages' |
| SHA: '${{ github.sha }}' |
| SSH_REPO: 'git@github.com:${{ github.repository }}.git' |
| |
| jobs: |
| deploy: |
| runs-on: ubuntu-latest |
| if: github.repository == 'rust-lang/rust-clippy' |
| |
| steps: |
| # Setup |
| - name: Checkout |
| uses: actions/checkout@v4 |
| |
| - name: Checkout |
| uses: actions/checkout@v4 |
| with: |
| ref: ${{ env.TARGET_BRANCH }} |
| path: 'out' |
| |
| # Run |
| - name: Set tag name |
| if: startswith(github.ref, 'refs/tags/') |
| run: | |
| TAG=$(basename ${{ github.ref }}) |
| echo "TAG_NAME=$TAG" >> $GITHUB_ENV |
| - name: Set beta to true |
| if: github.ref == 'refs/heads/beta' |
| run: echo "BETA=true" >> $GITHUB_ENV |
| |
| # We need to check out all files that (transitively) depend on the |
| # structure of the gh-pages branch, so that we're able to change that |
| # structure without breaking the deployment. |
| - name: Use deploy files from master branch |
| run: | |
| git fetch --no-tags --prune --depth=1 origin master |
| git checkout origin/master -- .github/deploy.sh util/versions.py util/gh-pages/versions.html |
| |
| # Generate lockfile for caching to avoid build problems with cached deps |
| - name: cargo generate-lockfile |
| run: cargo generate-lockfile |
| |
| - name: Cache |
| uses: Swatinem/rust-cache@v2.7.0 |
| with: |
| save-if: ${{ github.ref == 'refs/heads/master' }} |
| |
| - name: cargo collect-metadata |
| run: cargo collect-metadata |
| |
| - name: Deploy |
| run: | |
| eval "$(ssh-agent -s)" |
| ssh-add - <<< "${{ secrets.DEPLOY_KEY }}" |
| bash .github/deploy.sh |