summaryrefslogtreecommitdiff
path: root/.github/workflows/macos.yml
blob: b2abd0f8872d187c396811a56fb5600e0b3f17e8 (plain)
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
118
119
120
121
name: macOS (x86_64)

on:
  pull_request:
  push:
  release:
    types: [published]

jobs:
  build:

    strategy:
      matrix:
        os: [macos-12]
        arch: [x86_64]

    runs-on: ${{ matrix.os }}

    concurrency:
        group: ${{ github.ref }}-${{ github.base_ref }}-${{ github.head_ref }}-macOS-${{ matrix.arch }}
        cancel-in-progress: true
    steps:
      - uses: actions/checkout@v2
        with:
          # WyriHaximus/github-action-get-previous-tag@master need it
          fetch-depth: 0
          submodules: true
      - name: Prepare local xmake
        run: cp -rf . ../xmake-source
      - uses: xmake-io/github-action-setup-xmake@v1
        with:
          xmake-version: local#../xmake-source
      - uses: little-core-labs/[email protected]
        id: tagName

      - name: Installation
        run: |
          brew install dmd
          brew install dub

      - name: Tests
        run: |
          xmake lua -v -D tests/run.lua
          xrepo --version

      - name: Artifact
        run: |
          brew install gnu-tar
          cd core
          xmake pack -y --autobuild=n --basename=xmake -o ../artifacts xmakesrc
          cd ..
      - uses: actions/upload-artifact@v2
        with:
          name: xmake-latest.gz.run
          path: artifacts/xmake.gz.run
      - uses: actions/upload-artifact@v2
        with:
          name: xmake-latest.tar.gz
          path: artifacts/xmake.tar.gz
      - uses: actions/upload-artifact@v2
        with:
          name: xmake-latest.zip
          path: artifacts/xmake.zip

        # upload artifacts to latest release
      - name: Get Previous tag
        id: previoustag
        uses: WyriHaximus/github-action-get-previous-tag@master

      - name: Upload artifacts to lastest release
        if: github.ref == 'refs/heads/master'
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: artifacts/xmake.zip
          asset_name: xmake-master.zip
          tag: ${{ steps.previoustag.outputs.tag }}
          overwrite: true

      - name: Upload artifacts to lastest release
        if: github.ref == 'refs/heads/master'
        uses: svenstaro/upload-release-action@v2
        with:
          repo_token: ${{ secrets.GITHUB_TOKEN }}
          file: artifacts/xmake.tar.gz
          asset_name: xmake-master.tar.gz
          tag: ${{ steps.previoustag.outputs.tag }}
          overwrite: true

      - name: Publish gz runfile
        if: github.event.action == 'published'
        uses: actions/[email protected]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ github.event.release.upload_url }}
          asset_path: artifacts/xmake.gz.run
          asset_name: xmake-${{ steps.tagName.outputs.tag }}.gz.run
          asset_content_type: application/zip

      - name: Publish gz archive
        if: github.event.action == 'published'
        uses: actions/[email protected]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ github.event.release.upload_url }}
          asset_path: artifacts/xmake.tar.gz
          asset_name: xmake-${{ steps.tagName.outputs.tag }}.tar.gz
          asset_content_type: application/zip

      - name: Publish zip archive
        if: github.event.action == 'published'
        uses: actions/[email protected]
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ github.event.release.upload_url }}
          asset_path: artifacts/xmake.zip
          asset_name: xmake-${{ steps.tagName.outputs.tag }}.zip
          asset_content_type: application/zip