name: "Hourly import channel to Elasticsearch" on: schedule: - cron: '0 * * * *' jobs: hourly-import-channel: runs-on: ubuntu-latest strategy: fail-fast: true matrix: channel: - unstable - 20.09 - 20.03 - 19.09 env: S3_URL: s3://nix-releases/nixpkgs steps: - name: Checking out the repository uses: actions/checkout@v2 with: fetch-depth: 0 - name: Installing Nix uses: cachix/install-nix-action@v8 - uses: cachix/cachix-action@v6 with: name: nixos-search signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}' - name: Installing awscli run: | nix-env -iA nixpkgs.awscli - name: Check for latest evaluation in ${{ matrix.channel }} channel run: | if [ "${{ matrix.channel }}" = "unstable" ]; then RELEASE=$(aws s3 ls --no-sign-request "$S3_URL/" | grep "/$" | cut -d" " -f29 | sort | tail -1 | sed 's|/||') else RELEASE=$(aws s3 ls --no-sign-request "$S3_URL/" | grep "nixpkgs-${{ matrix.channel }}pre" | grep "/$" | cut -d" " -f29 | sort | tail -1 | sed 's|/||') fi aws s3 cp --no-sign-request "$S3_URL/$RELEASE/src-url" ./ echo "::set-env name=EVAL_ID::$(cat src-url | cut -c30-)" - name: Download latest builds for ${{ matrix.channel }} channel (if needed) if: steps.eval-cache.outputs.cache-hit != 'true' run: | mkdir -p ./eval-cache cp ./src-url ./eval-cache/ curl -H "Content-Type: application/json" "$(cat ./eval-cache/src-url)/builds" -o ./eval-cache/builds.json - name: Cache ${{ matrix.channel }} channel builds id: eval-cache uses: actions/cache@v2 with: path: ./eval-cache key: eval-cache-${{ env.EVAL_ID }} - name: Installing NixFlakes run: | nix-env -iA nixpkgs.nixFlakes echo "::add-path::$HOME/.nix-profile/bin" echo 'experimental-features = nix-command flakes' | sudo tee -a /etc/nix/nix.conf nix --version cat /etc/nix/nix.conf - name: Building import_scripts run: | nix build ./#packages.x86_64-linux.import_scripts - name: Import ${{ matrix.channel }} channel run: | cp ./eval-cache/builds.json ./eval-${{ env.EVAL_ID }}.json ./result/bin/import-channel --es-url ${{ secrets.ELASTICSEARCH_URL }} --channel ${{ matrix.channel }} -vvv if: github.repository == 'NixOS/nixos-search'