name: centos8_continuous

on:
  schedule:
    - cron: "10 3 * * *"
  push:
    branches:
      - main
    paths-ignore:
      - ".cirrus.yml"
      - "docs/**"
      - "ci/build-docs.sh"
      - "ci/generate-docs.py"
      - "ci/subst-release-info.py"
      - ".github/workflows/pages.yml"
      - ".github/ISSUE_TEMPLATE/*"
      - "**/*.md"

jobs:
  build:
    runs-on: "ubuntu-latest"
    container: "centos:8"
    steps:
      - name: "Install config manager"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          dnf install -y 'dnf-command(config-manager)'
      - name: "Enable PowerTools"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          dnf config-manager --set-enabled powertools
      - name: "Install git"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          yum install -y git
      - name: "Install curl"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          yum install -y curl
      - name: "Ensure /run/sshd exists"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          mkdir -p /run/sshd
      - name: "Install openssh-server"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          yum install -y openssh-server
      - name: "checkout repo"
        uses: actions/checkout@v2
        with:
          submodules: "recursive"
      - name: "Fetch tags"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          git fetch --depth=1 origin +refs/tags/*:refs/tags/*
      - name: "Fetch tag/branch history"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          git fetch --prune --unshallow
      - name: "Install Rust"
        uses: actions-rs/toolchain@v1
        with:
          profile: "minimal"
          toolchain: "stable"
          override: true
          components: "rustfmt"
        env:
          ACTIONS_ALLOW_UNSECURE_COMMANDS: "true"
      - name: "Cache cargo"
        uses: actions/cache@v2.1.6
        with:
          path: |
            ~/.cargo/registry
            ~/.cargo/git
            target
          key: "centos8-None-2-${{ runner.os }}-${{ hashFiles('**/Cargo.lock') }}-cargo"
      - name: "Install System Deps"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          env PATH=$PATH ./get-deps
      - name: "Build (Release mode)"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          cargo build --all --release
      - name: "Test (Release mode)"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          cargo test --all --release
      - name: "Package"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          bash ci/deploy.sh
      - name: "Move RPM"
        shell: bash
        run: |
          export BUILD_REASON=Schedule
          mv ~/rpmbuild/RPMS/*/*.rpm wezterm-nightly-centos8.rpm
      - name: "Upload to Nightly Release"
        uses: wez/upload-release-assets@releases/v1
        if: github.event.repository.fork == false
        with:
          files: "wezterm-*.rpm"
          release-tag: "nightly"
          repo-token: "${{ secrets.GITHUB_TOKEN }}"