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