.github/workflows/release.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
name: Release # Controls when the action will run. on: # Triggers the workflow on push or pull request events but only for the master branch push: branches: [ master ] pull_request: branches: [ master ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "ci" package: name: "Package" # The type of runner that the job will run on runs-on: ${{ matrix.os }} strategy: matrix: os: - ubuntu-latest - macos-latest env: CHOOSENIM_CHOOSE_VERSION: stable CHOOSENIM_NO_ANALYTICS: 1 # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: "Cancel similar actions in progress" uses: styfle/cancel-workflow-action@0.6.0 with: access_token: ${{ github.token }} # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - uses: actions/checkout@v2 - name: install musl-gcc run: sudo apt-get install -y musl-tools if: matrix.os == 'ubuntu-latest' - name: Update $PATH run: echo "$HOME/.nimble/bin" >> $GITHUB_PATH - name: Install Nim run: | curl https://nim-lang.org/choosenim/init.sh -sSf > init.sh sh init.sh -y - name: Install nifty run: nimble install -y nifty - name: Install deps run: nifty install - name: Build (Linux) run: nim c -d:release -d:ssl --gcc.exe:musl-gcc --gcc.linkerexe:musl-gcc --cpu:amd64 --os:linux -o:min min if: matrix.os == 'ubuntu-latest' - name: Build (MacOS) run: nim c -d:release -d:ssl -o:min min if: matrix.os == 'macos-latest' - name: Create artifact run: | install -m 0755 ./min . tar czf min-${{runner.os}}.tar.gz min README.md LICENSE - name: Upload Artifact uses: 'actions/upload-artifact@v1' with: name: min-${{runner.os}}.tar.gz path: min-${{runner.os}}.tar.gz upload: name: "Upload" runs-on: ubuntu-latest if: ${{ always() }} needs: [package] steps: - name: "Cancel similar actions in progress" uses: styfle/cancel-workflow-action@0.6.0 with: access_token: ${{ github.token }} - uses: actions/download-artifact@v2 with: path: ./assets - name: Display structure of downloaded files run: ls -R - name: Create Release id: create-release uses: actions/create-release@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ github.ref }} release_name: ${{ github.ref }} body: | ${{ github.ref }} draft: false prerelease: false - name: Upload Release Assets id: upload-release-assets uses: dwenegar/upload-release-assets@v1 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: release_id: ${{ steps.create-release.outputs.id }} assets_path: ./assets |