name: test on: push: pull_request: jobs: skip: runs-on: ubuntu-latest steps: - run: echo "Skip job" before: runs-on: ubuntu-latest if: "! contains(github.event.head_commit.message, '[skip ci]')" steps: - run: echo "not contains '[skip ci]'" test: runs-on: ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest - macOS-latest - windows-latest nim_version: - '1.2.0' - 'stable' needs: before steps: - uses: actions/checkout@v1 - name: Set cache-key id: vars run: | if [[ ${{ matrix.nim_version }} == stable ]]; then echo ::set-output name=cache-key::$(date +%Y-%m-%d) else echo ::set-output name=cache-key::${{ matrix.nim_version }} fi shell: bash - name: Print cache-key run: echo cache-key = ${{ steps.vars.outputs.cache-key }} - name: Cache choosenim id: cache-choosenim uses: actions/cache@v1 with: path: ~/.choosenim key: ${{ runner.os }}-choosenim-${{ steps.vars.outputs.cache-key }} - name: Cache nimble id: cache-nimble uses: actions/cache@v1 with: path: ~/.nimble key: ${{ runner.os }}-nimble-${{ hashFiles('*.nimble') }} - uses: jiro4989/setup-nim-action@v1 with: nim-version: ${{ matrix.nim_version }} - name: Test examples run: | cd examples for file in $(ls -v example_*nim); do echo "=== test: $file ===" nim c "$file" echo "" done shell: bash